发表于: 2017-10-10 17:27:30
1 721
今天完成的事:
1.了解了如何通过jsp来编写mvc的视图层
客户端发送一个请求给web服务器,web服务器找到servlet的实例(没有就自动创建一个实例,servlet都是单例模式),开启一个新的线程并生成请求和响应对象后调用servlet的init()方法,随后直接调用service方法。根据请求方法类型调用相应的servlet的方法,然后servlet解析参数并让model层进行处理数据逻辑和对数据库进行操作,然后在model层中将处理结果添加到请求对象中,并将请求分发给相应的jsp文件去处理
1.1请求分发就是当前的model不处理响应,分发给其他组件去处理响应。
1.2使用请求对象的setAttribute来为请求对象添加一个属性(键值对,一个name,一个object)
1.3使用请求对象的getRequestDispatcher来获得一个请求分发器,如该方法的参数是一个jsp那么就是分发给jsp,如果是servlet就是分发给.拿到请求分发器后使用forward方法来进行分发两个参数分别是请求对象和响应对象
具体的jsp如何编写还没学。
2.对于web应用的体系结构有了更进一步的了解
2.1昨天日报中有些理解错误的地方:每次请求都实例化一个servlet,这是错的。当第一个请求特定的servlet时才会进行实例化(每个servlet都是单例模式),其后对该servlet的所有请求都是创建一个或者分配一个新的线程来调用已经存在的servlet实例的service方法。目前了解的就是当web容器关闭时servlet的实例才有被销毁
2.2学会了如何配置初始化参数,以及上下文初始化参数。初始化参数主要是用来定义一些servlet需要的相关信息(可能是数据库用户名及密码等),正常来讲只能是在定义的servlet中获取这些参数,其他的servlet无法获取。
上下文初始化参数是给整个servlet及jsp使用的一些基本的参数(可能包含数据库的连接的引用,也可能包含其他一些东西)
2.3学会了关于监听器的相关概念,监听器最基本的会监听web容器启动或关闭的状态,当启动或关闭时可定定义要做什么样的工作,比如监听到web容器启动时可以将数据库的连接拿到设置为初始化参数。监听到web容器关闭时做一些清理工作。
明天计划的事:
1.看看web应用的会话管理,对于web应用的整个体系以及流程了解的差不多了,看完会话管理就转向学习spring-mvc
2.如果时间够的话看看spring-mvc
遇到的困难:
今天在编写监听器时候遇到一个问题,找了很多资料都无法解决。目前已经知道的就是web容器在启动时不会实例化任何一个servlet对象,只有当产生第一个请求时才会去实例化这个servlet。我出现的问题只需要指定web容器启动完毕后自动的去实例化一个指定的servlet而不是等首个请求时才进行实例化。
收获:
对于web应用有了的结构,各个部分的作用,以及流程有了更清晰的理解和认识。
评论