• Filter练习一


    1.创建两个Filter过滤器UserNameFilter/PassWordFilter

    2.进行Filter的注册和配置

    3.Filter初始化参数和web应用的初始化参数

    4.在Filter中完成信息比较

    实现效果:

     

    实现代码:

    UserNameFilter

    package com.demo.filter;
    
    import javax.servlet.*;
    import java.io.IOException;
    
    public class UserNameFilter  implements Filter {
    
        private FilterConfig filterConfig;
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            this.filterConfig = filterConfig;
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
           String initUser = filterConfig.getInitParameter("username");
           String username = servletRequest.getParameter("username");
    
           if (!initUser.equals(username)){
               servletRequest.setAttribute("message","用户名不正确");
               servletRequest.getRequestDispatcher("login.jsp").forward(servletRequest,servletResponse);
               return;
           }
           filterChain.doFilter(servletRequest,servletResponse);
        }
    
        @Override
        public void destroy() {
    
        }
    }
    

      

    PassWordFilter

    package com.demo.filter;
    
    import javax.servlet.*;
    import java.io.IOException;
    
    public class PassWordFilter implements Filter {
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            this.filterConfig = filterConfig;
        }
    
        private FilterConfig filterConfig;
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            String initPassword = filterConfig.getServletContext().getInitParameter("password");
            String password = servletRequest.getParameter("password");
            if (!initPassword.equals(password)){
                servletRequest.setAttribute("message","密码不正确");
                servletRequest.getRequestDispatcher("login.jsp").forward(servletRequest,servletResponse);
                return;
            }
            filterChain.doFilter(servletRequest,servletResponse);
        }
    
        @Override
        public void destroy() {
    
        }
    }
    

      

    web.xml

        <filter>
            <filter-name>UserNameFilter</filter-name>
            <filter-class>com.demo.filter.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>/filter/hello.jsp</url-pattern>
        </filter-mapping>
    
        <filter>
            <filter-name>PassWordFilter</filter-name>
            <filter-class>com.demo.filter.PassWordFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>PassWordFilter</filter-name>
            <url-pattern>/filter/hello.jsp</url-pattern>
        </filter-mapping>
    
        <context-param>
            <param-name>password</param-name>
            <param-value>1234</param-value>
        </context-param>
    

      

    login.jsp

    <%--
      Created by IntelliJ IDEA.
      User: dell
      Date: 2019/7/16
      Time: 14:54
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <font color="red">
        ${message}
    </font>
    <br><br>
    <form action="hello.jsp" method="post">
        username: <input type="text" name="username" value="${param.username}">
        password: <input type="password" name="password">
    
        <input type="submit" value="Submit">
    </form>
    </body>
    </html>
    

      

    hello.jsp

    <%--
      Created by IntelliJ IDEA.
      User: dell
      Date: 2019/7/16
      Time: 14:57
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    
    
        Hello:${param.username}
    </body>
    </html>
    

      

  • 相关阅读:
    HttpService与WebService的差异
    在oracle中varchar和varchar2有什么区别?
    物联网项目的思考
    配置JDK-Java运行环境
    浅谈DDD
    参数化SQL语句
    OneNote无法同时设置中英文字体设置解决办法
    Oracle OCI-22053:溢出错误解决方法
    oracle 日期格式
    Visual Studio 2017各版本安装包离线下载
  • 原文地址:https://www.cnblogs.com/yangHS/p/11195149.html
Copyright © 2020-2023  润新知