Servlet介绍
概念: sun公司提供的一门开发动态WEB资源的技术.开发步骤:1.创建一个Servlet1)自定义一个类,实现Servlet接口2)自定义一个类,继承HttpServlet. 重写doGet()或doPost()方法,提供应答逻辑2.在WEB应用的web.xml中进行配置<servlet> ------- <servlet-name> <servlet-class&
[基于达内教育的学习,总结提炼]
概念: sun公司提供的一门开发动态WEB资源的技术.
开发步骤:
1.创建一个Servlet
方法1)自定义一个类,实现Servlet接口
方法2)自定义一个类,继承HttpServlet. 重写doGet()或doPost()方法,提供应答逻辑
2.在WEB应用的web.xml中进行配置
<servlet>
<servlet-name>TestServlet</servlet-name>
<servlet-class>servlet.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/servlet/TestServlet</url-pattern>
</servlet-mapping>
其中, servlet-class 中为配置servlet类的全路径名. servlet-name 为该servlet配置的名称. url-pattern 为该servlet配置对外的访问路径,浏览器可以通过此路径进行访问此servlet.
Servlet的继承结构
1.Servlet接口
init(), destory(), service(), getServletConfig(), getServletInfo()
2.GenericServlet
1) 实现了Servlet接口
2) 提供了除service()方法以外的其他方法的实现
3) 降低了程序员的编程门槛
3.HttpServlet
1) 继承了GenericServlet
2) 提供了基于Http协议的相关支持
3) 实现了service方法 ---- 在方法中将ServletRequest和ServletResponse强转换为HttpServletRequest和HttpServletResponse. 调用了自己提供的一个service(HttpServletRequest req,HttpServletResponse resp)方法
4) 自己提供了一个service方法 --- 通过req对象,获取了用户的请求方式(get/post/put...), 根据用户的请求方式,调用对应的doXXX方法
5) 进一步降低了程序员的编程门槛,程序员仅需要重写doXXX方法,提供应答逻辑即可
Servlet映射的虚拟路径
1) 映射一个虚拟路径
2) 通过*通配符,映射多个虚拟路径. 需要注意的是: 哪个最像找哪个, *.后缀的优先级永远最低.
Servlet1 映射到 /abc/*
Servlet2 映射到 /*
Servlet3 映射到 /abc
Servlet4 映射到 *.do
当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个servlet响应
Servlet引擎将调用Servlet1。
当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个servlet响应
Servlet引擎将调用Servlet3。
当请求URL为“/abc/a.do”时,“/abc/*”和“*.do”都匹配,哪个servlet响应
Servlet引擎将调用Servlet1。
当请求URL为“/a.do”时,“/*”和“*.do”都匹配,哪个servlet响应
Servlet引擎将调用Servlet2。
Servlet的调用过程和生命周期
Servlet调用过程
在浏览器中输入http://localhost/test/servlet/TestServlet
1) 首先浏览器先去寻找Hosts文件, 并将主机名翻译为IP地址, 若没有没有找到, 则在dns服务器将主机名翻译为IP地址.
2) 浏览器根据IP地址和端口号访问服务器,组织http请求信息发送给服务器.
3) 服务器收到请求后, 根据Host请求头判断当前访问是哪台虚拟主机. ----> 当前访问的是localhost虚拟主机
4) 服务器根据http请求头中的请求URL判断当前访问的是哪个Web应用 ----> 当前访问的是test应用.
5) 服务器根据http请求头中的请求URL判断当前访问的是哪个Web应用中的哪个Web资源. ----> 当前访问的是/servlet/TestServlet资源
6) 检查Web应用的web.xml文件,如果根据路径找到具体的servlet处理类的全路径名交给该servlet处理. 如果未找到, 则交给缺省的serlvet处理.
7) 此过程中,浏览器只需要发出自己的http请求,之后就收到了服务器发来的http响应, 浏览器不需要知道服务器内部如何处理. 浏览器和服务器两者只存在HTTP协议.
8) 开发者只需要把写好的servlet配置放入容器中即可, 其他操作服务器自动运行.
Servlet生命周期
Servlet在第一次被访问时创建, 创建后init方法执行进行初始化操作, 从此以后这个servlet一直驻留在内存中为后续的对这个servlet的请求服务, 每次请求都会导致service方法执行, 直到服务器停止或web应用从服务器中移除, 随着web应用的销毁, servlet对象跟着被销毁, 在销毁之前, 服务器调用destroy方法执行一些善后的操作
更多推荐
所有评论(0)