Servlet3.0生命周期,使用注解自动加载
2017-06-17 14:37
316 查看
Servlet生命周期:
0--调用构造方法
构造方法获得一个Servlet实例
1--调用初始化方法init();
整个生命周期中,init()方法只被调用一次
2--调用service决定使用doGet()还是doPost()
3--调用销毁destroy()方法
关闭服务器时执行销毁方法。
1.index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Servlet生命周期</h1>
<hr>
<a href="TestServlet1">以Get方式请求TestServlet1</a>
</body>
</html>
2.TestServlet1.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestServlet1
*/
@WebServlet(name="TestServlet1",asyncSupported = true ,urlPatterns ="/TestServlet1",loadOnStartup=2)
public class TestServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet1() {
System.out.println("TestServlet1构造方法被执行...");
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("TestServlet1的初始执行方法");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("TestServlet1销毁方法被执行...");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("TestServlet1doGet()方法被执行...");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<h1>你好,我是TestServlet1</h1>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//让doPost()执行doGet()相同的操作
System.out.println("TestServlet1的doPost()方法被执行...");
doGet(request, response);
}
}
3.TestServlet2.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestServlet2
*/
@WebServlet(name="TestServlet2",asyncSupported = true,urlPatterns = "/TestServlet2", loadOnStartup=1)
public class TestServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet2() {
System.out.println("TestServlet2构造方法被执行...");
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("TestServlet2的初始执行方法");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("TestServlet2销毁方法被执行...");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("TestServlet2doGet()方法被执行...");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<h1>你好,我是TestServlet2</h1>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//让doPost()执行doGet()相同的操作
System.out.println("TestServlet2的doPost()方法被执行...");
doGet(request, response);
}
}
0--调用构造方法
构造方法获得一个Servlet实例
1--调用初始化方法init();
整个生命周期中,init()方法只被调用一次
2--调用service决定使用doGet()还是doPost()
3--调用销毁destroy()方法
关闭服务器时执行销毁方法。
1.index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Servlet生命周期</h1>
<hr>
<a href="TestServlet1">以Get方式请求TestServlet1</a>
</body>
</html>
2.TestServlet1.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestServlet1
*/
@WebServlet(name="TestServlet1",asyncSupported = true ,urlPatterns ="/TestServlet1",loadOnStartup=2)
public class TestServlet1 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet1() {
System.out.println("TestServlet1构造方法被执行...");
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("TestServlet1的初始执行方法");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("TestServlet1销毁方法被执行...");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("TestServlet1doGet()方法被执行...");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<h1>你好,我是TestServlet1</h1>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//让doPost()执行doGet()相同的操作
System.out.println("TestServlet1的doPost()方法被执行...");
doGet(request, response);
}
}
3.TestServlet2.java
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class TestServlet2
*/
@WebServlet(name="TestServlet2",asyncSupported = true,urlPatterns = "/TestServlet2", loadOnStartup=1)
public class TestServlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public TestServlet2() {
System.out.println("TestServlet2构造方法被执行...");
}
/**
* @see Servlet#init(ServletConfig)
*/
public void init(ServletConfig config) throws ServletException {
System.out.println("TestServlet2的初始执行方法");
}
/**
* @see Servlet#destroy()
*/
public void destroy() {
System.out.println("TestServlet2销毁方法被执行...");
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("TestServlet2doGet()方法被执行...");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<h1>你好,我是TestServlet2</h1>");
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//让doPost()执行doGet()相同的操作
System.out.println("TestServlet2的doPost()方法被执行...");
doGet(request, response);
}
}
相关文章推荐
- Servlet生命周期,Servlet3.0使用注解自动加载
- JAVAWEB开发之Servlet3.0新特性的使用以及注解的详细使用和自定义注解的方法、动态代理的使用、利用动态代理实现细粒度的权限控制以及类加载和泛型反射
- Servlet3.0学习总结(一)——使用注解标注Servlet
- Servlet3.0学习总结(四)——使用注解标注监听器(Listener)
- Servlet3.0学习总结(二)——使用注解标注过滤器(Filter)
- Servlet3.0学习总结(四)——使用注解标注监听器(Listener)
- Servlet3.0学习总结(一)——使用注解标注Servlet
- Servlet3.0学习总结(二)——使用注解标注过滤器(Filter)
- Servlet3.0学习总结(一)——使用注解标注Servlet
- Servlet3.0学习总结(四)——使用注解标注监听器(Listener)
- Servlet3.0学习总结(四)——使用注解标注监听器(Listener)
- Servlet3.0学习总结(一)——使用注解标注Servlet-2
- 启动网页时候自动加载servlet如果不使用strus最常用的两种方式
- Spring 3.0 学习-DI 依赖注入_创建Spring 配置-使用一个或多个XML 文件作为配置文件,使用自动注入(byName),在代码中使用注解代替自动注入,使用自动扫描代替xml中bea
- 使用UI-Tag的注意点: 请确定/WEB-INF/web.xml文件中的ServletDispatcher 设定为自动加载
- Servlet3.0学习总结(一)——使用注解标注Servlet
- servlet3.0 使用注解
- Servlet3.0学习总结(一)——使用注解标注Servlet
- 第10天(就业班) servlet的映射路径、生命周期、自动加载+init方法+线程并发安全、servletconfig对象+servletcontext对象入门、servletcontext对象的使