欢迎来到天天文库
浏览记录
ID:44716065
大小:28.01 KB
页数:5页
时间:2019-10-25
《Servlet的注意事项》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Servlet的一些注意事项(1)由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界使用,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。元素用于注册Servlet。它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的一个队外向访问路径,它包含有两个子元素:2、let-name>和,分别用于指定servlet的注册名称和Servlet的对外访问路径。Servlet的一些注意事项(2)同一个Servlet可以被映射到多个URL上,即多个元素的子元素的设置值可以是同一个Servlet的注册名。在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾3、let-mapping>AnyNameAnyName*.do/action/*Servlet的一些注意事项(3)对于如下一些映射关系:lServlet1映射到/abc/*lServlet2映射到/*lServlet34、映射到/abclServlet4映射到*.do问题:l当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个Servlet响应Servlet引擎调用Servlet1.l当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个Servlet响应Servlet引擎调用Servlet3.l当请求URL为“/abc/a.do”时,“/abc/*”和“/*.do”都匹配,哪个Servlet响应Servlet引擎调用Servlet1.l当请求URL为“/a.do”时,“/*”和5、“/*.do”都匹配,哪个Servlet响应Servlet引擎调用Servlet2.l当请求URL为“/xxx/yyy/a.do”时,“/*”和“*.do”都匹配,哪个Servlet响应Servlet引擎调用Servlet2.Servlet的一些注意事项(4)lServlet是一个供其他Java程序(Servlet引擎)调用Java类,它不能独立运行,它的运行完全有Servlet引擎来控制和调度。l针对客服端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servle6、t实例对象一旦创建,它就会驻留在内存中,为后继的其他请求服务,直至web容器退出,Servlet实例对象才会销毁。l在Servlet的整个生命周期内,Servlet的init方法只被调用一次,而对一个Servlet的每次访问请求都导致Servlet引擎调用一次Servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletRequest响应对象,然后将这个对象作为参数传递给它调用的Servlet的servic7、e()方法,service方法再根据请求方式分别调用doXXX方法。Servlet的一些注意事项(5)如果在元素中配置了一个元素,那么WEB应用程序启动时,就会封装并创建Servlet的实例对象,以及调用Servlet实例对象的init()方法。举例:invokerorg.apache.catalina.servlet.InvokerServlet8、servlet-class>2用途:为web应用写一个InitServlet,这个Servlet配置为启动时装载,为整个web应用创建必要的数据库和数据。Servlet的一些注意事项(6)如果某个Servlet的映射路径仅仅为一个正斜杠(/),那么这个Servlet就成为当前web应用的缺省Servlet。凡是在web.xm
2、let-name>和,分别用于指定servlet的注册名称和Servlet的对外访问路径。Servlet的一些注意事项(2)同一个Servlet可以被映射到多个URL上,即多个元素的子元素的设置值可以是同一个Servlet的注册名。在Servlet映射到的URL中也可以使用*通配符,但是只能有两种固定格式:一种格式是“*.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾3、let-mapping>AnyNameAnyName*.do/action/*Servlet的一些注意事项(3)对于如下一些映射关系:lServlet1映射到/abc/*lServlet2映射到/*lServlet3
3、let-mapping>AnyNameAnyName*.do/action/*
4、映射到/abclServlet4映射到*.do问题:l当请求URL为“/abc/a.html”,“/abc/*”和“/*”都匹配,哪个Servlet响应Servlet引擎调用Servlet1.l当请求URL为“/abc”时,“/abc/*”和“/abc”都匹配,哪个Servlet响应Servlet引擎调用Servlet3.l当请求URL为“/abc/a.do”时,“/abc/*”和“/*.do”都匹配,哪个Servlet响应Servlet引擎调用Servlet1.l当请求URL为“/a.do”时,“/*”和
5、“/*.do”都匹配,哪个Servlet响应Servlet引擎调用Servlet2.l当请求URL为“/xxx/yyy/a.do”时,“/*”和“*.do”都匹配,哪个Servlet响应Servlet引擎调用Servlet2.Servlet的一些注意事项(4)lServlet是一个供其他Java程序(Servlet引擎)调用Java类,它不能独立运行,它的运行完全有Servlet引擎来控制和调度。l针对客服端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servle
6、t实例对象一旦创建,它就会驻留在内存中,为后继的其他请求服务,直至web容器退出,Servlet实例对象才会销毁。l在Servlet的整个生命周期内,Servlet的init方法只被调用一次,而对一个Servlet的每次访问请求都导致Servlet引擎调用一次Servlet的service方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletRequest响应对象,然后将这个对象作为参数传递给它调用的Servlet的servic
7、e()方法,service方法再根据请求方式分别调用doXXX方法。Servlet的一些注意事项(5)如果在元素中配置了一个元素,那么WEB应用程序启动时,就会封装并创建Servlet的实例对象,以及调用Servlet实例对象的init()方法。举例:invokerorg.apache.catalina.servlet.InvokerServlet
8、servlet-class>2
此文档下载收益归作者所有