zoukankan      html  css  js  c++  java
  • 过滤器Filter(拦截jsp页面的跳转)案例:

     创建一个 Filter , class类: 其继承于 接口 Filte(接口导包:import javax.servlet.Filter;)

    在 web.xml 文件中配置并映射该 Filter. 其中 url-pattern 指定该 Filter 可以拦截哪些资源, 即可以通过哪些 url 访问到该 Filter,并进行拦截;

    案例:username=Tom,password=1234,设计Filter类,及jsp页面实现,输入username和password是否等于Tom和1234,不等拦截index.jsp页面跳转到hello.jsp页面,等的或,在在hello,显示;

    1.建立UserNameFilter类:继承于接口Filter(接口导包:import javax.servlet.Filter;)

    package com.lanqiao.javatest;
    
    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 org.apache.catalina.connector.Request;
    
    public class UserNameFilter implements Filter{
    
        //构造方法
        public UserNameFilter(){
            
        }
        public void destroy() {
            
            
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            String initUser=filterConfig.getInitParameter("username");
            String username=request.getParameter("username");
            
            if(!initUser.equals(username)){
                request.setAttribute("message", "用户名不正确!!!");
                request.getRequestDispatcher("/login.jsp").forward(request, response);
                return ;
            }
            chain.doFilter(request, response);
            
        }
    
        private FilterConfig filterConfig;
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            this.filterConfig=filterConfig;
            
        }
    
    
    }

    2.建立PasswordFilter类:继承于接口Filter(接口导包:import javax.servlet.Filter;)

    package com.lanqiao.javatest;
    
    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;
    
    public class PasswordFilter implements Filter {
    
        public PasswordFilter() {
            // TODO Auto-generated constructor stub
        }
        @Override
        public void destroy() {
            
            
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            String initPassword=filterConfig.getServletContext().getInitParameter("password");
            String password=request.getParameter("password");
            if(!initPassword.equals(password)){
                request.setAttribute("message", "密码不正确!!!");
                request.getRequestDispatcher("/login.jsp").forward(request, response);
                return ;
            }
            chain.doFilter(request, response);
            
        }
    
        private FilterConfig filterConfig;
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            this.filterConfig=filterConfig;
            
        }
    
        
    
    }

    3.在WEB-FIN下的web.xml文件下的配置和映射:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>day-12</display-name>
      
      <filter>
          <filter-name>UserNameFilter</filter-name>
          <filter-class>com.lanqiao.javatest.UserNameFilter</filter-class>
          <init-param>
              <param-name>username</param-name>
              <param-value>Tom</param-value>
          </init-param>
      </filter>
      
      <filter-mapping>
          <filter-name>UserNameFilter</filter-name>
          <url-pattern>/hello.jsp</url-pattern>
      </filter-mapping>
      
      <filter>
          <filter-name>password</filter-name>
          <filter-class>com.lanqiao.javatest.PasswordFilter</filter-class>
      </filter>
      <filter-mapping>
          <filter-name>password</filter-name>
          <url-pattern>/hello.jsp</url-pattern>
      </filter-mapping>
      <context-param>
          <param-name>password</param-name>
          <param-value>1234</param-value>
      </context-param>
      
    </web-app>

    4.index.jsp页面:输入username和password;

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <font color="red">${message }</font>
        <br><br>
        <form action="hello.jsp" method="post">
            username:<input type="text" name="username" /><br>
            password:<input type="password" name="password"/><br>
            <input type="submit" value="Submit"/>
        </form>
        
    </body>
    </html>

    5.hello.jsp页面:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        Hello:${param.username }
    </body>
    </html>

      

  • 相关阅读:
    关于点击率模型,你知道这三点就够了
    【AI】Computing Machinery and Intelligence
    MATLAB 的函数句柄
    MATLAB 的unique函数——数组矩阵的唯一值
    MATLAB 的数据导入与导出
    MATLAB 的函数
    MATLAB 向量
    MATLAB 的break语句和continue语句
    MATLAB 的循环语句
    MATLAB 的条件分支语句
  • 原文地址:https://www.cnblogs.com/lxnlxn/p/5833648.html
Copyright © 2011-2022 走看看