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对象就会被垃圾回收机制回收。