servlet学习2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
servlet学习2
一、servlet容器如何处理请求资源地址
比如,在浏览器地址栏输入http://ip:port/appname/abc.html
那么,浏览器会将/appname/abc.html放入请求数据包,该地址称为请求资源地址。
1 、依据/appname找到应用文件夹(对于tomcat,就是webapps下面的文件夹)。接下来,会比较<url-pattern>中的配置与/abc.html。
2 、比较过程:
1、精确匹配: /abc.html与url-pattern中的配置完全一致,包括大小写。
2、通配符匹配: 即使用"*"代表任意的字符串。比如在<url-pattern>中,配置:/abc/* 此时,请求地址是/abc/dd,是匹配的。
3、后缀匹配:使用“*.”开头,后接任意的字符串,比如在<url-pattern>中,配置:*.do 此时,任意的以.do结尾的请求都是匹配的。
注意,不能够以"/"开头,即"/*.do"是错误的!
4、如果以上都不匹配,则会当作一个静态资源,去服务器上查找,如果找到,则返回,否则,返回404。
5、如何让一个servlet处理多个不同的请求。
1、在<url-pattern>中,使用后缀匹配。
2、在servlet类里面,分析请求资源地址
二、servlet的生命周期
1、生命周期是什么?
servlet容器如何创建servlet对象、并对servlet对象进行
初始化操作、调用其方法完成客户端请求及销毁servlet
对象的整个过程。
2、生命周期的四个阶段。
阶段一:servlet容器创建servlet对象。
情况1:客户端发送请求。服务器会依据请求地址,查找该地址对应的servlet对象存不存在,若存在,则不创建新的servlet对象,只有不存在,才
会创建该servlet对象。也就是说:在默认情况下,一个servlet对象可以为多个不同的客户端服务。服务器只会为某个servlet维护一个实例。
情况2:如果某个servlet,配置了load-on-starup参数,则即使客户端没有发送请求,容器也会创建该servlet对象。
load-on-startup参数,参数值越小,优先级越高。也就是说,容器会先创建该对象。
阶段二:servlet容器对创建好的对象进行初始化。
容器会调用servlet对象的init(ServletConfig config)
方法。容器会先创建好ServletConfig对象。该对象提供了一些方法,比如访问servlet的配置参数等等(
String config.getInitParameter(String name))。
注意,ServletConfig只是一个接口。init(ServletConfig config)方法,只会执行一次。如果子类要实现自已的初始化逻辑,最好override init()方法。
阶段三:就绪,即可以接受客户端的请求,如果有请求,容器会调用servlet对象的service(HttpServletRequest
req,HttpServletResponse res)方法。
阶段四:销毁,即容器依据算法,会在销毁servlet对象之间,调用该对象的destroy()方法。
三、servlet基础类与接口
1 Servlet接口
init(ServletConfig config)
destroy()
service(ServletRequest req,ServletResponse res)
2、ServletRequest接口
它是HttpServletRequest父接口
3、ServletResponse接口
它是HttpServletResponse父接口
4、GenericServlet抽象类
实现了Servlet接口中的init(ServletConfig config)和destroy()方法。
5、HttpServlet抽象类
继承了GenericServlet类,实现了
service(HttpServletRequest req,HttpServletResponse res);
该方法依据客户端请求方式的不同,调用不同的do***方法来处理。
比如,客户端采用get方式发送请求,则会调用doGet()方法来处理。
一般,我们在写自己的servlet时,建议直接override service()方法。
6、ServletConfig接口
String getInitParameter(String paraName);
四、servlet中的jsp
4.1、什么是jsp
java server page:java服务器端页面技术。由sun公司制订的一种服务器端动态页面的生成技术的规范。
因为直接使用servlet来生成动态页面,虽然可行,但是,
过于繁琐,并且,代码很难维护(比如页面发生改变,需要修改servlet),所以,为了更方便生成动态页面,sun开发了jsp技术。即在html文件当中,添加少量的java代码,来实现动态页面。
4.2、如何写一个jsp文件。
写一个以.jsp为后缀的文件,该文件不需要编译。也不需要在web.xml中配置。
4.3、jsp文件的组成部分。
1、html(包括css,javascript)
2、java代码
情形一:java代码片断: <% java代码 %>
情形二:jsp表达式: <%=java表达式%>
当需要使用out.print()时,可以直接使用jsp表达式更方便。
4.4、指令
在jsp引擎将.jsp文件转换成.java文件时,让jsp引擎做一些额外