Servlet基础回顾--Servlet创建,配置和访问

Servlet 是服务器端运行的程序,其优点在于它们的执行速度更快于 CGI 程序。各个用户请求被激活成单个程序中的一个线程,而无需创建单独的进程,这意味着服务器端处理请求的系统开销将明显降低。

创建Servlet

简单例子

// 导入必需的 java 库
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;


// 继承 HttpServlet 类
public class HelloWorld extends HttpServlet {
 
  private String message;


  public void init() throws ServletException
  {
      // 初始化
  }


  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // 设置响应内容类型
      response.setContentType("text/html");


      // 
      PrintWriter out = response.getWriter();
      out.println("

" + message + "

");
  }
  
  public void destroy()
  {
       //服务器关闭时调用,生命周期结束
  }
}

配置和映射Servlet

在WEB-INF的lib目录下的web.xml中配置和映射Servlet

简单例子


    hello
    com.testServlet.Test2    
 
 
 
    hello
    /hello

 

其中指定Servlet类的路径

指定Servlet类的别名

是路径映射

在JSP中访问Servlet,Tomcat服务器作为Servlet容器创建实例并调用其生命周期

通过超链接访问

点击访问Servlet

通过表单访问


       

       

       

Servlet对象的生命周期的3个组成(3个HttpServlet类中的方法)

  1、init方法完成初始化Servlet对象

    init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它是用于一次性初始化,就像 Applet 的 init 方法一样。
Servlet 创建于用户第一次调用对应于该 Servlet 的 URL 时,但是您也可以指定 Servlet 在服务器第一次启动时被加载。
当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,每一个用户请求都会产生一个新的线程,适当的时候移交给 doGet 或 doPost 方法。init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。
init 方法的定义如下:
public void init() throws ServletException {
  // 初始化代码...
}

  2、service方法响应用户请求

    service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。
每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。
下面是该方法的特征:
public void service(ServletRequest request, 
                    ServletResponse response) 
      throws ServletException, IOException{
}

  3、destroy方法在服务器关闭时调用,消灭Servlet对象,生命周期结束

doGet和doPost方法 用于处理用户请求并作出响应

GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。
public void doGet(HttpServletRequest request,
                  HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码

}

POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。
public void doPost(HttpServletRequest request,
                   HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}

重定向与转发

sendRedirect

例子:response.sendRedirect("index.jsp");

forward

你可能感兴趣的:(开发笔记,Java基础回顾)