servlet学习2

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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引擎做一些额外

相关文档
最新文档