本章大纲
1.什么是容器
2.web容器的作用
3.servlet的生命周期
4.容器如何处理请求
5.servlet的配置
6.MVC模式
1.什么是容器
servlet没有main()方法,它们受控于另一个java应用,这个java应用就是容器
2.web容器的作用
- 实现Servlet与web服务器的对话。
例如监听端口
- 负责Servlet的整个生命周期。
Servlet被服务器实例化后,web容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。
- 多线程支持。
请求到来时,至少要创建一个线程来处理这个请求。
- 声明式使用安全。
web容器采用xml配置来保障安全。
- jsp支持。
3.servlet的生命周期
加载servlet类文件 servlet实例化 init() service() destroy()
4.容器如何处理请求
工作流程:
- 用户点击一个链接,其url指向一个servlet而不是静态页面;
- 容器判断出来这个请求需要servlet,创建两个对象HttpServletResponse和HttpServletRequest;
- 容器一句请求的url找到正确的url,创建和分配一个线程,并把请求和响应对象传递给这个servlet;
- 容器调用service()方法,依据种类不同调用doGet和doPost()方法;
- doGet方法生成动态页面,并把这个页面填入响应对象;
- 线程结束,容器将响应对象转换为HTTP响应,返还给客户,然后删除请求和响应对象。
5.servlet的配置
<servlet> <servlet-name>Chapter1 Servlet</servlet-name> <servlet-class>cn.servlet.Ch1Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Chapter1 Servlet</servlet-name> <url-pattern>/Servlet</url-pattern> </servlet-mapping>
6.MVC模式
模型 -- 视图 -- 控制器(MVC)就是把业务逻辑从servlet中抽出来,把它放在一个“模型”中。