2022年Servlect课时十七——什么是监听器@@回顾过滤器@@Servlect(二)

简介: 2022年Servlect课时十七——什么是监听器@@回顾过滤器@@Servlect(二)

运行界面

代码

package com.Listener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class MyServlectListener implements ServletContextListener  {
  public MyServlectListener() {
    // TODO Auto-generated constructor stub
    System.out.println("MyServlectListener的构造方法");
  }
  @Override
  public void contextInitialized(ServletContextEvent sce) {
    System.out.println("Listener程序初始化程序开启");
    System.out.println("WEB ServletContextListener程序初始化程序开启ServletContext"
        + "Listener开始@@程序开始运行@@");
  }
  @Override
  public void contextDestroyed(ServletContextEvent sce) {
    System.out.println("Listener程序初始化程序结束");
    System.out.println("WEB contextDestroyed==程序初始化程序in the endontextDestroyed程序结束"
        + "程序在结束中");
  }
}
package com.Listener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class MySessionListener implements  HttpSessionListener {
  private static int count=0;
  public MySessionListener() {
    // TODO Auto-generated constructor stub
    System.out.println("MySessionListener()   构造方法");
  }
  @Override
  public void sessionCreated(HttpSessionEvent se) {
    // TODO Auto-generated method stub
    System.out.println("当sesssion创建时执行程序 sessionCreated()构造方法");
    se.getSession().getServletContext().setAttribute("count", ++count);
  }
  @Override
  public void sessionDestroyed(HttpSessionEvent se) {
    System.out.println("当sesssion销毁时执行程序  sessionDestroyed()构造方法");
  }
}
package com.Listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
public class User  implements HttpSessionBindingListener{
   @Override
      public void valueBound(HttpSessionBindingEvent event) {
          System.out.println("HttpSession 与 User 绑定");
          // 有用户登陆成功
          // 判断是否是第一个登陆的人
          ServletContext servletContext = event.getSession().getServletContext();
          Integer count = (Integer) servletContext.getAttribute("count");
          // 第一个登陆为1,非第一个则++
          count = null == count ? 1 : (count += 1);
          servletContext.setAttribute("count", count);
      }
      @Override
      public void valueUnbound(HttpSessionBindingEvent event) {
          System.out.println("HttpSession 与 User 解绑");
          // 有用户注销登陆
          ServletContext servletContext = event.getSession().getServletContext();
          Integer count = (Integer) servletContext.getAttribute("count");
          // count--是因为在同浏览器下重复登陆时session.setAttribute(name, value)
          // 每次会覆盖value值进而触发监听器valueBound()的count++
          servletContext.setAttribute("count", count);
      }
      //定义三个数据类型 
      private int id;
      private String username;
      private String password;
      public User() {
      }
      public User(int id, String username, String password) {
          this.id = id;
          this.username = username;
          this.password = password;
      }
      public int getId() {
          return id;
      }
      public void setId(int id) {
          this.id = id;
      }
      public String getUsername() {
          return username;
      }
      public void setUsername(String username) {
          this.username = username;
      }
      public String getPassword() {
          return password;
      }
      public void setPassword(String password) {
          this.password = password;
      }
      @Override
      public String toString() {
          return "User{" +
                  "id=" + id +
                  ", username='" + username + '\'' +
                  ", password='" + password + '\'' +
                  '}';
}
}
package com.Servlect;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.Listener.User;
/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String username = request.getParameter("username");
          String password = request.getParameter("password");
          if ("root".equals(username) && "1234".equals(password)) {
              // 登陆成功,修f改登陆状态,转发到showIndex页
              User user = new User();
              user.setUsername(username);
              user.setPassword(password);
              request.getSession().setAttribute("existUser", user);
              // 转发会导致每次刷新页面都会重新登陆,然后被统计新新用户中
              //request.getRequestDispatcher("/showIndex").forward(request, response);
              response.sendRedirect("ServlectA");
          } else {
              // 登陆失败,转发到login.html
              request.getRequestDispatcher("ServlectB").forward(request, response);
          }
  }
}
package com.Servlect;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class LogoutServlet
 */
@WebServlet("/LogoutServlet")
public class LogoutServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LogoutServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 注销登陆:将existUser从session域中移除 或 销毁session
        //request.getSession().removeAttribute("existUser");
        request.getSession().invalidate();
        // 注销成功
        request.getRequestDispatcher("/ShowIndexServlect").forward(request, response);
    }
  }
package com.Servlect;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
 * Servlet Filter implementation class MyFilter1
 */
//你要阻止Servlect2
@WebFilter("/Servlect2")
public class MyFilter1 implements Filter {
    /**
     * Default constructor. 
     */
    public MyFilter1() {
        // TODO Auto-generated constructor stub
      System.out.println("构造方法");
    }
  /**
   * @see Filter#destroy()
   */
  public void destroy() {
    // TODO Auto-generated method stub
    System.out.println("销毁数据");
  }
  /**
   * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
   */
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    System.out.println("我是myfilter1开始拦截请求地址哦哦");
    //实施访问
    chain.doFilter(request, response);
  }
  /**
   * @see Filter#init(FilterConfig)
   */
  public void init(FilterConfig fConfig) throws ServletException {
    // TODO Auto-generated method stub
    System.out.println("加载数据");
  }
}
package com.Servlect;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
 * Servlet Filter implementation class MyFilter2
 */
@WebFilter("/Servlect2")
public class MyFilter2 implements Filter {
    /**
     * Default constructor. 
     */
    public MyFilter2() {
        // TODO Auto-generated constructor stub
    }
  /**
   * @see Filter#destroy()
   */
  public void destroy() {
    // TODO Auto-generated method stub
  }
  /**
   * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
   */
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    // place your code here
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    System.out.println("我是myfilter2开始拦截请求地址哦哦");
    //实施访问
    chain.doFilter(request, response);
  }
  /**
   * @see Filter#init(FilterConfig)
   */
  public void init(FilterConfig fConfig) throws ServletException {
    // TODO Auto-generated method stub
  }
}
package com.Servlect;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
 * Servlet Filter implementation class MyFilter3
 */
@WebFilter("/Servlect2")
public class MyFilter3 implements Filter {
    /**
     * Default constructor. 
     */
    public MyFilter3() {
        // TODO Auto-generated constructor stub
    }
  /**
   * @see Filter#destroy()
   */
  public void destroy() {
    // TODO Auto-generated method stub
  }
  /**
   * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
   */
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    // TODO Auto-generated method stub
    // place your code here
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    System.out.println("我是myfilter3开始拦截请求地址哦哦");
    //实施访问
    chain.doFilter(request, response);
  }
  /**
   * @see Filter#init(FilterConfig)
   */
  public void init(FilterConfig fConfig) throws ServletException {
    // TODO Auto-generated method stub
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlect1
 */
@WebServlet("/Servlect1")
public class Servlect1 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlect1() {
        super();
        // TODO Auto-generated constructor stub
        System.out.println("Servlext构造方法");
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //response.getWriter().append("Served at: ").append(request.getContextPath());
      PrintWriter pw =response.getWriter();
      pw.print("<h1>我是第一个servlect</h1>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlect2
 */
@WebServlet("/Servlect2")
public class Servlect2 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlect2() {
        super();
        System.out.println("这是Servlect2的抽象方法");
        // TODO Auto-generated constructor stub
    }
    @Override
    public void init() throws ServletException {
      // TODO Auto-generated method stub
      System.out.println("Servlect2加载数据");
      super.init();
    }
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      // TODO Auto-generated method stub
      System.out.println("这里开始运行Servlect的方法");
      super.service(req, resp);
    }
    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      // TODO Auto-generated method stub
      super.doDelete(req, resp);
      System.out.println("Servlect2的删除方法");
    }
   @Override
    public void destroy() {
  // TODO Auto-generated method stub
  super.destroy();
  System.out.println("Servlect2销毁数据");
}
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
  //response.getWriter().append("Served at: ").append(request.getContextPath());
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter pw =response.getWriter();
    pw.print("<h1>我是第一个servlect2</h1>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlect2
 */
@WebServlet("/Servlect4")
public class Servlect4 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlect4() {
        super();
        System.out.println("这是Servlect4的抽象方法");
        // TODO Auto-generated constructor stub
    }
    @Override
    public void init() throws ServletException {
      // TODO Auto-generated method stub
      System.out.println("Servlect4加载数据");
      super.init();
    }
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      // TODO Auto-generated method stub
      System.out.println("这里开始运行Servlect4的方法");
      super.service(req, resp);
    }
    @Override
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
      // TODO Auto-generated method stub
      super.doDelete(req, resp);
      System.out.println("Servlect4的删除方法");
    }
   @Override
    public void destroy() {
  // TODO Auto-generated method stub
  super.destroy();
  System.out.println("Servlect4销毁数据");
}
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
  //response.getWriter().append("Served at: ").append(request.getContextPath());
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter pw =response.getWriter();
    pw.print("<h1>我是第一个servlect4</h1>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class Servlect3
 */
@WebServlet("/Servlect3")
public class Servlect3 extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Servlect3() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    //response.getWriter().append("Served at: ").append(request.getContextPath());
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter pw =response.getWriter();
    pw.print("<h1>我是第一个servlect3</h1>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectA
 */
@WebServlet("/ServlectA")
public class ServlectA extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServlectA() {
        System.out.println("ServlectA的创建过程");
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter pw =response.getWriter();
    pw.append("<h1>---A-------session---------Servlect-----</h1>");
    pw.append("<h1>----------欢迎光临--------------</h1>");
    request.getSession();
    Integer count =(Integer)request.getServletContext().getAttribute("count");
    pw.append("<hr>");
    pw.append("<h1>-----欢迎光临----你是第《"+count+"》----为客人----</h1>");
    pw.append("<hr>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ServlectB
 */
@WebServlet("/ServlectB")
public class ServlectB extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ServlectB() {
        super();
        System.out.println("ServlectB的创建过程");
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter pw =response.getWriter();
    pw.append("<h1>---ServlectB-------session---------Servlect-----</h1>");
    pw.append("<h1>----------欢迎下次光临--------------</h1>");
    pw.append("<hr>");
    request.getSession();
    Integer count1 =(Integer)request.getServletContext().getAttribute("coun");
    pw.append("<hr>");
    pw.append("<h1>-----欢迎光临----你是第《"+count1+"》----退出的客人----</h1>");
    pw.append("<h1 >----------欢迎下次光临--------------</h1>");
    pw.append("<hr>");
     request.getSession().invalidate(); 
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
package com.Servlect;
import java.io.IOException;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.User;
/**
 * Servlet implementation class ShowIndexServlet
 */
@WebServlet("/ShowIndexServlet")
public class ShowIndexServlet extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ShowIndexServlet() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.getWriter().append("Served at: ").append(request.getContextPath());
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("text/html;charset=utf-8");
        response.getWriter().write(response.toString());
    User existUser = (User) request.getSession().getAttribute("existUser");
          StringBuffer responseBody = new StringBuffer();
          if (null == existUser) {
              // 不在登陆状态
              responseBody.append("您还没有登陆,<a href='/demo/login.html'>请登录</a>");
          } else {
              // 在登陆状态
              responseBody.append("欢迎回来,").append(existUser.getUsername()).append("  <a href='/demo/logout'>注销</a>");
          }
          // 获取在线人数
          ServletContext servletContext = getServletContext();
          Integer count = (Integer) servletContext.getAttribute("count");
          System.out.println("<h1>在线人数:<h1>" + count);
          if (null == count) {
              // 没有人登陆时,0人
              count = 0;
          }
          responseBody.append("<br>在线人数为:").append(count).append("人");
  }
}
package com.Servlect;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * Servlet implementation class ZhuJie
 */
@WebServlet("/ZhuJie")
public class ZhuJie extends HttpServlet {
  private static final long serialVersionUID = 1L;
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ZhuJie() {
        super();
        // TODO Auto-generated constructor stub
    }
  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
    PrintWriter pw =response.getWriter();
    pw.append("<div align='center'>");
    pw.append("<form>");
    pw.append("<h1 style='color: lightskyblue;\r\n" + 
        "            background-color: #0066CC;'>"
        + "欢迎进入统计登录人数的主界面</h1>");
    pw.append("<hr>");
    pw.append("<h1 ><a href='ServlectA' style='color:red'>TEST@SessionA创建</a></h1>");
    pw.append("<hr>");
    pw.append("<h1 ><a href='ServlectB'  style='color:red'>TEST@SessionB销毁</a></h1>");
    pw.append("</form>");
    pw.append("</div>");
  }
  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  }
}
相关文章
|
23天前
|
Java Spring 容器
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
[JavaWeb]——过滤器filter与拦截器Interceptor的使用、执行过程、区别
|
10月前
|
XML Java 数据格式
【spring源码系列-05】refresh中prepareRefresh方法的执行流程
【spring源码系列-05】refresh中prepareRefresh方法的执行流程
110 0
|
23天前
|
Java 程序员 应用服务中间件
JavaWeb之过滤器(Filter)与监听器(Listener)
本文介绍了JavaWeb中的过滤器(Filter)和监听器(Listener)概念及其使用。过滤器主要用于拦截和处理Web资源请求,如进行编码设置、权限验证等,它在Servlet之前和之后执行。监听器则监听域对象(如ServletRequest、HttpSession、ServletContext)状态变化,分为创建/销毁监听和属性变化监听。监听器在Web.xml中注册后会在相应事件发生时自动执行,例如用于统计网站访问人数或初始化配置。
|
23天前
|
Java Spring
Javaweb之SpringBootWeb案例之AOP通知顺序的详细解析
Javaweb之SpringBootWeb案例之AOP通知顺序的详细解析
11 0
|
11月前
|
存储 Java 对象存储
2022年Servlect课时十七——什么是监听器@@回顾过滤器@@Servlect(一)
2022年Servlect课时十七——什么是监听器@@回顾过滤器@@Servlect(一)
37 0
|
23天前
|
XML 缓存 Java
Spring5源码(7)-lookup-method和replace-method注入
Spring5源码(7)-lookup-method和replace-method注入
37 0
|
10月前
|
设计模式 监控 前端开发
JavaWeb中的Filter过滤器和Listener监听器
JavaWeb中的Filter过滤器和Listener监听器
|
12月前
|
人工智能 安全 Java
Java里面的过滤器Filter,监听器Listener和拦截器Interceptor的区别
Java里面的过滤器Filter,监听器Listener和拦截器Interceptor的区别
|
存储 前端开发 Java
【JavaWeb】快速学习Filter&Listener(一)
【JavaWeb】快速学习Filter&Listener(一)
|
应用服务中间件
【JavaWeb】快速学习Filter&Listener(二)
【JavaWeb】快速学习Filter&Listener(二)