文章目录
  1. 1. 1.Servlet需要容器——Tomcat等
  2. 2. 2.Servlet的作用
  3. 3. 3.实现Servlet的方式
  4. 4. 4.生命周期中的函数含义
  5. 5. 5.Servlet中的三个域(在Jsp中多出一个pageContext域)
    1. 5.1. request
    2. 5.2. session
    3. 5.3. application
  6. 6. 6.HTTPServlet中doPost( )方法的例子

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);
}
//其中用到了sendRedirect和RequestDispatcher
文章目录
  1. 1. 1.Servlet需要容器——Tomcat等
  2. 2. 2.Servlet的作用
  3. 3. 3.实现Servlet的方式
  4. 4. 4.生命周期中的函数含义
  5. 5. 5.Servlet中的三个域(在Jsp中多出一个pageContext域)
    1. 5.1. request
    2. 5.2. session
    3. 5.3. application
  6. 6. 6.HTTPServlet中doPost( )方法的例子