关于servlet的学习日志

           servlet是使用Java servlet应用程序设计接口(API)及相关类和方法的Java程序,除了Java servlet  API,它还可以用于扩展和添加API的Java类软件的包。servlet主要用于处理客户端传来的HTTP请求,并返回一个响应。通常所说的servlet就是指httpservlet,能够处理的请求有doGet()、doPost()和service()等方法。

实现过程

         最早支持 Servlet 技术的是 JavaSoft 的 Java Web Server。此后,一些其它的基于 Java 的 Web Server 开始支持标准的 Servlet API。Servlet 的主要功能在于交互式地浏览和修改数据,生成动态 Web 内容。这个过程为:

1) 客户端发送请求至服务器端;

2) 服务器将请求信息发送至 Servlet;

3) Servlet 生成响应内容并将其传给服务器。响应内容动态生成,通常取决于客户端的请求;

4) 服务器将响应返回给客户端。

servlet的生命周期

  1. 加载

  2. 实例化

  3. 调用init()方法初始化该 Servlet

  4. 提供服务。service()根据请求方法不同调用doGet() 或者 doPost()

  5. 销毁。

    destroy():当web服务器和容器关闭时会自动调用HttpServlet.destroy()方法关闭所有打开的资源,并执行一些关闭前的处理。

servlet的配置

在web.xml文件中进行配置:

使用<servlet-name>、<servlet-class>、<servlet-mapping>等标签来进行配置

doGet()和doPost()

 
 public void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
  System.out.println("This is doGet");
  resp.setContentType("text/html;charset=UTF-8");
  String loginId = req.getParameter("loginId");
  req.setAttribute("loginId", loginId);
  req.setAttribute("loginName", "nttdata");
  req.getRequestDispatcher("/response.jsp").forward(req, resp);
 }
public void doPost(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
  doGet(req, resp);
 }

       web容器会自动按照请求类型调用servlet提供的方法,若是GET类型的请求就将分给doGet()方法处理,同理若是POST类型就发给doPost()处理,但是一般多是用doGet()方法,如上,即使是使用了doPost()但是最终还是调用上面的doGet()。

页面转发

      servlet中实现页面转发只要是利用RequestDispatcher接口实现的。其包括forward()的方法:

       forward()方法用于将请求转发到服务器上的另一个资源

      如上代码,用forward()方法将页面请求转发到了response.jsp页面

 

你可能感兴趣的:(servlet,doGet(),doPost(),destroy(),forward())