Servlet的配置和生命周期

1.jsp中可写java代码
<%    
Person person=new Person();
System.out.println(person.getInfo());
%>
2.Servlet的 HelloWorld
1)创建一个Servlet接口的实现类
public class HelloServlet implements Servlet
2)在web.xml 文件中配置和映射这个Servlet
<servlet> 
		<!--Servlet 注册的名字-->
			<servlet-name>helloServlet</servlet-name>
		<!--Servlet全类名-->
			<servlet-class>com.zc.javaweb.HelloServlet</servlet-class>  
		</servlet>
		<servlet-mapping>
		<!--需要和某一个Servlet节点的Servlet-name子节点的文本节点一致-->
			<servlet-name>helloServlet</servlet-name>
		<!--映射具体的访问路径:“/”代表当前WEB应用的根目录-->
			<url-pattern>/hello</url-pattern>
		</servlet-mapping>
访问的地址
http://localhost:8080/Servlet/hello
/hello
一个Servlet可以有多个Servlet-mapping为其映射。
3.Servlet容器:运行Servlet,Jsp,Filter等的软件环境
1)可以创建Servlet,并调用Servlet的相关生命周期方法

2).JSP,Filter,listener,Tag。。。


4.Servlet 生命周期的方法:以下方法都是由Servlet容器负责调用
1).构造器:只有第一次请求Servlet时,创建Servlet的实例。调用构造器。
这说明Servlet是单实例的!
关乎线程安全,不推荐在里边写全局变量,因为每次都会在Service里面改变!!
2).init方法:只被调用一次,在创建好实例后立即被调用。用于初始化当前Servlet。
3).service:被多次调用,每次请求都会调用service方法。实际用于响应请求的。
4).destroy:只被调用一次,在当前Servlet所在的WEB应用被卸载前调用。
用于释放Servlet所占用的资源。

5.load-on-startup 参数:
1).配置在servlet节点中:
<servlet> 
		<!--Servlet 注册的名字-->
			<servlet-name>secondServlet</servlet-name>
		<!--Servlet全类名-->
			<servlet-class>com.zc.javaweb.SecondServlet</servlet-class> 
		<!--可以指定Servlet 被创建的时机--> 
			<load-on-startup>0</load-on-startup>
		</servlet>

2).load-on-startup:可以指定Servlet被创建的时机。若为负数,则在第一次请求时再被创建,。若为0或正数,则在当前WEB应用被
Servlet容器加载时创建实例,且数值越小越早被创建,先创建的后销毁,后创建的先销毁。

6.Servlet-mapping:
1)同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个
Servlet注册名
2).再Servlet映射到的URL中也可以使用* 通配符,但是只能有两种固定的格式:
一种是“*.扩展名”(如*.html) 
另一种是“/*” 
<servlet-mapping>
			<!--需要和某一个Servlet节点的Servlet-name子节点的文本节点一致-->
			<servlet-name>secondServlet</servlet-name>
		<!--映射具体的访问路径:“/”代表当前WEB应用的根目录-->
			<url-pattern>*.html</url-pattern>
			<!--或者 <url-pattern>/*</url-pattern> -->
		</servlet-mapping>
		
注意:以下方式不合法
<servlet-mapping>
			<!--需要和某一个Servlet节点的Servlet-name子节点的文本节点一致-->
			<servlet-name>secondServlet</servlet-name>
		<!--映射具体的访问路径:“/”代表当前WEB应用的根目录-->
			<url-pattern>/*.action</url-pattern>
		</servlet-mapping>

RyanJJ_署名


阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页