Servlet的基本概念

Servlet的概念

http协议作用于客户端-服务端。由客户端发送请求(Request),服务器端接收到数据之后,向客户端发送响应(Response),这就是请求-响应模式。但是请求响应必须要有一个中介来处理,这个中介就是服务器端小程序叫做servlet。

 

Servlet的开发使用

创建servlet必须使用一个抽象类HttpServlet,而抽象类HttpServlet没有抽象方法,是一个模板设计模式的类,模板方法是service()。使用该类必须要导入Tomcat服务器提供的包(我使用的是Tomcat8 导入的包是mysql-connector-java-5.1.25),具体的导入方式

导入了就可以正常写servlet。

不过这里只是能正常写servlet的代码而已,当然代码作用时,需要有请求响应的数据交流,所以这里还必须设置好处理路径,处理路径配置在web.xml文件中进行,该文件在“webContent/WEB-INF”目录下,具体配置:

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 3   <display-name>MvcPro</display-name>
 4   <welcome-file-list>
 5     <welcome-file>index.html</welcome-file>
 6     <welcome-file>index.htm</welcome-file>
 7     <welcome-file>index.jsp</welcome-file>
 8     <welcome-file>default.html</welcome-file>
 9     <welcome-file>default.htm</welcome-file>
10     <welcome-file>default.jsp</welcome-file>
11   </welcome-file-list>
12   <!-- 在容器中配置出路径对应的servlet -->
13   <servlet>
14   <!-- 配置名称-->
15   <servlet-name>empServlet</servlet-name>
16   <!-- 配置指定的路径,对应的servlet实现类的文件所在位置 -->
17   <servlet-class>com.testmvc.pro.empServlet.EmpServlet</servlet-class>
18   </servlet>
19   <!-- 定义empServlet的映射路径 -->
20   <servlet-mapping>
21   <!-- 要定义的路径的配置名称,必须一致 -->
22   <servlet-name>empServlet</servlet-name>
23   <!-- 映射路径的名称编码的时候就使用emp代替 com.testmvc.pro.empServlet.EmpServlet-->
24   <url-pattern>/emp/*</url-pattern>
25   </servlet-mapping>
26 </web-app>
View Code

 

 Servlet的生命周期

    servlet的生命周期有5个阶段:加载-->实例化-->初始化-->请求处理-->销毁,其中加载阶段不可见,初始化的时候会调用init方法,服务阶段调用service方法,销毁阶段调用destroy方法。

 Servlet的运行机制

    因为servlet继承了没有抽象方法的HttpServlet类(没有抽象方法,但是有很多其他方法),可以通过调用对应的service()模板方法来判断客户端的请求,从而调用对应的方法(doget、dopost、dodelete...等方法)。当然我们也可自己重写父类的方法,这里必须注意,重写了父类的方法之后,将不会调用父类模板里面的方法。所以在没有特殊需求的情况之后一般不要去重写。当然如果你想添加一点小的判定可以重写的时候通过super调用父类的同名方法。

 

内容来源于网络如有侵权请私信删除
你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!