Servlet 的体系结构
1、implements Servlet 接口(大量方法实现)
init初始化
service服务--doGet doPost
destroy销毁
2、extends GenericServlet(不含协议)
运行 Servlet 构造
↓
Init(只调用一次)
↓
开启线程执行 Service 方法 常驻内存
...
...
↓
destroy
示例
import java.io.IOException;
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 HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
//初始化
@Override
public void init() throws ServletException {
System.out.println("servlet init!!");
};
//构造
public HelloServlet() {
System.out.println("helloServlet Constructor");
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("service method");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("service method");
}
//销毁
@Override
public void destroy() {
// TODO Auto-generated method stub
System.out.println("helloServlet destory");
super.destroy();
}
部署至 tomcat 运行 浏览器端登录 http://localhost:8080/demo/HelloServlet 查看控制台
关闭 tomcat 显示
Servlet 是线程不安全的
第一次请求来时 创建 HelloServlet 对象 并调用 Init 方法 创建一个线程执行 service 方法
第二次请求来时,开启一个线程 执行 service 方法
PS:Servlet 自动加载
load-on-startup 设置 Servlet 随服务器启动而启动,正数的值越小,该 servlet 的优先级越高,应用启动时就越先加载。当值相同时,容器就会自己选择顺序来加载。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于