Javaweb入门笔记-3-Servlet

这一篇介绍servlet入门
API文档

Servlet API Document

servlet简介

servlet 是运行在 Web 服务器中的小型 Java 程序。servlet 通常通过 HTTP(超文本传输协议)接收和响应来自 Web 客户端的请求。
要实现此接口,可以编写一个扩展 javax.servlet.GenericServlet 的一般 servlet,或者编写一个扩展 javax.servlet.http.HttpServlet 的 HTTP servlet。
此接口定义了初始化 servlet 的方法、为请求提供服务的方法和从服务器移除 servlet 的方法。这些方法称为生命周期方法,它们是按以下顺序调用的:

  1. 构造 servlet,然后使用 init 方法将其初始化。
  2. 处理来自客户端的对 service 方法的所有调用。
  3. 从服务中取出 servlet,然后使用 destroy 方法销毁它,最后进行垃圾回收并终止它。

Servlet功能:
1、接受浏览器发送过来的消息。
2、给浏览器返回消息。浏览器认识html。可以动态去输出html

Servlet的生命周期

生命周期相关方法(life-cycle methods)
Servlet的生命周期通过java.servlet.Servlet接口中的init()service()、和destroy()方法表示。
Servlet的生命周期有四个阶段:加载并实例化初始化请求处理销毁

1.调用 init 方法 初始化Servlet
2.调用 Servlet中的service方法 处理请求操作
3.调用 destory方法 执行Servlet销毁的操作

  • init方法:当服务器创建一个serlvet的时候,会去调用init方法。当我们第一次去访问一个servlet的时候,会去创建这个servlet对象。并且只会创建一次。如果配置了load-on-startup 表示服务器启动的时候就创建servlet实例。
  • service方法:客户端每一次请求,tomcat都会去调用servcie方法。处理用户的请求。并且给其响应。每一次请求都会调用servcie方法。
  • destroy 方法:当服务器销毁一个servlet的时候,会调用里面的destory方法。当我们的web服务器,正常关闭的时候,会去调用destroy方法。否则不会调用destroy的方法。

servlet实现

开发步骤:

  • 编写一个java类,实现servlet接口
  • 把开发好的java类部署到web服务器

手动编写第一个servlet

  1. 实现servlet接口(javax.servlet.Servlet)
  2. 重写service方法(service方法每次请求都会调用一次),当浏览器输入地址,访问servlet的时候,servlet会执行servcie方法。
  3. WebContent/WEB-INF/web.xml配置servlet的访问路径 :浏览器访问servlet的路径
  4. 把项目部署到tomcat中,去启动tomcat。在地址栏中输入信息,访问servlet

Servlet实现跳转

  • 第一种情况:
    服务器调转/转发rd.forward(request, response);
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
        throws ServletException, IOException {  
    request.setAttribute("requestKey", "request值");  
    HttpSession session=request.getSession();  // 获取session  
    session.setAttribute("sessionKey", "session值");  
    ServletContext application=this.getServletContext(); // 获取application  
    application.setAttribute("applicationKey", "application值");  
    RequestDispatcher rd=request.getRequestDispatcher("target.jsp");  
    rd.forward(request, response); // 服务器调转/转发  
    }  
    
  • 第二种情况:
    客户端跳转/重定向response.sendRedirect("target.jsp");
    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
        throws ServletException, IOException {  
    request.setAttribute("requestKey", "request值");  
    HttpSession session=request.getSession();  // 获取session  
    session.setAttribute("sessionKey", "session值");  
    ServletContext application=this.getServletContext(); // 获取application  
    application.setAttribute("applicationKey", "application值");  
    response.sendRedirect("target.jsp"); // 客户端跳转/重定向  
    }  
    
-------------本文结束感谢您的阅读-------------