首页 > 代码库 > J2EE 13规范(3)-Java Servlet
J2EE 13规范(3)-Java Servlet
Servlet简介:
一个servlet就是Java编程语言中的一个类,它被用来扩展服务器的性能,服务器上驻留着可以通过“请求-响应”编程模型来访问的应用程序。虽然servlet可以对任何类型的请求产生响应,但通常只用来扩展Web服务器的应用程序。Java Servlet技术为这些应用程序定义了一个特定于HTTP的 servlet类。
javax.servlet和javax.servlet.http包为编写servlet提供了接口和类。所有的servlet都必须实现Servlet接口,该接口定义了生命周期方法。
当实现一个通用的服务时,您可以使用或扩展由Java Servlet API提供的GenericServlet类。HttpServlet类提供了一些方法,诸如doGet和doPost,以用于处理特定于HTTP的服务。
Servlet工作流程
在Web容器(这里的容器我们使用的是TomCat服务器)加载和实例化servlet类之后、servlet实例传递来自客户端的请求之前,TomCat容器对servlet进行初始化。用户可以自定义这个初始化过程,以允许servlet读持久的配置数据、初始化资源,并且忽略Servlet接口的init方法以执行任何其它的一次性的活动。servlet必须使用UnavailableException来完成初始化过程。请看Java代码:
import java.text.*; import java.util.*; import java.io.*; import javax.servlet.http.*; import javax.servlet.*; public class StudentServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doPost(request,response); } public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ doGet(request,response); String sBeginDate = request.getParameter("beginDate"); String sEndDate = request.getParameter("endDate"); Date beginDate = new Date(); Date endDate = new Date(); try{ beginDate = new SimpleDateFormat("yyyy-MM-dd").parse(sBeginDate); endDate = new SimpleDateFormat("yyyy-MM-dd").parse(sEndDate); }catch(Exception e){ e.printStackTrace(); } System.out.println("sBeginDate=" + sBeginDate); System.out.println("sEndDate=" + sEndDate); } }实例解析:
HTML代码:
<html> <head> <title>学生管理</title> </head> <body> <h1>根据出生日期段查询</h1> <form action="queryStudentServlet"> 出生日期:<input type="text" name="beginDate">至<input type="text" name="endDate"> <input type="submit" value=http://www.mamicode.com/"查询学生">> web.xml<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <servlet> <servlet-name>StudentMgrServlet</servlet-name> <servlet-class>StudentServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>StudentMgrServlet</servlet-name> <url-pattern>/queryStudentServlet</url-pattern> </servlet-mapping> </web-app>Servlet生命周期生命的全过程,加载Servlet并实例化,初始化init,处理请求,退出服务。
注意:Servlet只实例化一次,init方法也只执行一次,Servlet不是线程安全的。
最后还有一点关于Cookies和Session的说明: Cookies存到自身客户端中,但是Session存入服务器。
J2EE 13规范(3)-Java Servlet