Servlet
1.开发Servlet的三种模式
第一种
servlet是运行在服务器中的一个程序
1.需要新建一个应用
2.按照web项目的目录结构,放置class文件
3.在web.xml中配置如下代码
先手写一段servlet并编译
完成编译,生成class字节码文件,然后配置xml文件
就可通过http://localhost:8080/first/first访问该页面
1.请求被connnector接收到,然后将请求报文转成request对象
2.将request对象和生成的新的response对象一起传给engine
3.engine根据url选择交给哪个host来处理----localhost
4.host接着选取哪个context来处理----first这个应用来处理
5.context的职责是什么?如果这个时候你搜索的是1.txt,那么它就在当前应用下寻找一个叫1.txt的文件;如果你搜索的是/first,那么这个时候怎么做呢?根据web.xml中配置的信息,找到该url-pattern对应的servlet-class
6.找到以后,调用当前servlet的service方法
7.request和response对象返回----connector
8.connector读取response里面的数据,然后生成响应报文,做出响应。
第二种
借助IDEA开发
第三种
4.执行过程
- 客户端发出请求http://localhost:8080/servlet/first
- 服务器对应的应根据web.xml文件的配置,找到< url-pattern>子元素的值“/first”的< servlet-mapping>元素
- 读取< servlet-mapping>元素的< servlet-name>子元素的值,由此确定Servlet的名字为”first”
- 找到< servlet-name>值为HelloServlet的< servlet>元素
- 读取< servlet>元素的< servlet-class>子元素的值,由此确定Servlet的类名为cn.cskaoyan.HelloServlet。
- 到Tomcat安装目录/webapps/Demo1/WEB-INF/classes/cn/cskaoyan目录下查找到HelloServlet.class文件
- 初始化,并执行这个类的 service方法。
5.Servlet运行过程
- Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:
- Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。
- 装载并创建该Servlet的一个实例对象。
- 调用Servlet实例对象的init()方法。
- tomcat创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。
- WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。