您的位置:首页 > 其它

什么是servlet及其生命周期

2017-12-25 23:41 435 查看
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对象就会被垃圾回收机制回收。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: