1.Servlet需要容器——Tomcat等
- 通信支持:轻松让servlet与Web服务器对话
- 生命周期管理:控制servlet的实例化、初始化、生与死
- 多线程支持:自动为每个servlet请求创建新的java线程
- 声明方式实现安全:使用XML描述文件配置和修改安全性
- JSP支持:将JSP翻译成JAVA
2.Servlet的作用
3.实现Servlet的方式
- 实现javax.servlet.Servlet接口;
- 继承javax.servlet.GenericServlet类;
- 继承javax.servlet.http.HttpServlet类;
一般以继承HttpServlet类为主。以下是Servlet接口源代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import javax.servlet.ServletConfig; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import java.io.IOException; public abstract interface Servlet { public abstract void init(ServletConfig paramServletConfig) throws javax.servlet.ServletException; public abstract ServletConfig getServletConfig(); public abstract void service(ServletRequest paramServletRequest, ServletResponse paramServletResponse) throws javax.servlet.ServletException, IOException; public abstract String getServletInfo(); public abstract void destroy(); }
|
4.生命周期中的函数含义
- Init( ):一生调用一次,可能有初始化代码(获得数据库连接等),此时覆写
- service( ):在service( )中处理用户请求,覆盖其中的doPost( )或者doGet( ),每次有客户请求容器就开启一个线程,生成请求和响应
- destory( )
- ServletConfig:每个servlet拥有一个;用于向servlet传递部署信息;用于访问ServletContext;参数在部署描述文件中配置
- ServletContext:每个web应用拥有一个;用于访问web应用参数;相当于公告栏;得到服务器信息
5.Servlet中的三个域(在Jsp中多出一个pageContext域)
request
在Servlet中直接用,因为实现的doPost()方法中有request这个参数。
session
通过HttpSession session=request.getSession();得到。
application
通过ServletContext application=this.getServletContext();得到。
6.HTTPServlet中doPost( )方法的例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { int id=Integer.parseInt(request.getParameter("id")); if (new problemservice().delProblemById(id)) { response.sendRedirect("../success.jsp?state=delete"); } else { response.sendRedirect("../modifyinfo.jsp"); } request.setAttribute("name", bieming); RequestDispatcher view = request.getRequestDispatcher("result.jsp"); view.forward(request, response); }
|