什么是servlet及其生命周期

Serlets是java类,是为http请求做应用服务,实现javax。servlet。Servlet接口的java类。Web开发的时候,继承HttpSerlet类,HttpSerlet是一个实现了Servlet的抽象类。专门用于处理http请求。

1进行serlet开发

1)将继承httpservlet的HelloWorld类,进行编译,生成的。class文件放在tomcat的安装目录的/webapps/ROOT/WEB-INF/classes

// Import required java libraries
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

// Extend HttpServlet class
public class HelloWorld extends HttpServlet {
 
   private String message;

   public void init() throws ServletException {
      // Do required initialization
      message = "Hello World";
   }

   public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
      
      // Set response content type
      response.setContentType("text/html");

      // Actual logic goes here.
      PrintWriter out = response.getWriter();
      out.println("<h1>" + message + "</h1>");
   }

   public void destroy() {
      // do nothing.
   }
}


2)在tomcat安装目录的/webapps/ROOT/WEB-INF/下创建一个web.xml,在<web-app>...</web-app>标签里写

<servlet>
   <servlet-name>HelloWorld</servlet-name>
   <servlet-class>HelloWorld</servlet-class>
</servlet>

<servlet-mapping>
   <servlet-name>HelloWorld</servlet-name>
   <url-pattern>/HelloWorld</url-pattern>
</servlet-mapping>

3)启动tomcat服务器,windows下点击\bin\startup.bat,linux下点击/bin/startup.sh,最后在浏览器输入http://localhost:8080/HelloWorld,打印出message

2 servlet的生命周期

1)init()方法

该方法只被调用一次,当服务器开启,servlet被加载,用户首次调用与该servlet对应的url时创建serlet,调用init().

当用户调用serlet,每个servlet的单个实例被创建,用户的每一个请求都开启一个线程,将请求传递给doGet或者doPost处理。the insit()用来创建一些整个生命周期都要用到的东西

2)service()方法

servlet容器(tomcat服务器)会调用service()方法,处理从客户端传来的请求,并返回格式化的response给客户。

服务器每次收到servlet请求,就会开启一个线程,核对该请求时get,post,put等哪一种请求,然后调用对应得doGet,doPost,doPut,doDelete

public void service(ServletRequest request, ServletResponse response) 
   throws ServletException, IOException {
}
容器调用service()方法,service()调用doGet等方法,我们不用关心service是怎么写的,只需要复写doGet等方法。

3)doGet(),后端获取的数据来源于浏览器的url

public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   // Servlet code
}
4)doPost方法,后端数据来源于表单

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   // Servlet code
}
5)destroy方法,结束servlet生命,让servlet关闭数据库连接,后台线程,写cookie列表或者命中数到磁盘,当destroy被调用,servlet对象就会被垃圾回收机制回收。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值