美文网首页
JavaWeb基础之Filter

JavaWeb基础之Filter

作者: 在error边缘疯狂试探 | 来源:发表于2020-04-11 16:32 被阅读0次

    编写一个过滤器

    • 实现Filter接口
      //利用过滤器实现中文乱码问题
    public class encodingFilter implements Filter {
    
        //初始化过滤器
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
    
        }
    
        @Override
        public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
            //设置编码,防止中文乱码
            servletRequest.setCharacterEncoding("utf-8");
            servletResponse.setCharacterEncoding("utf-8");
            servletResponse.setContentType("text/html");
            System.out.println("doFilter启动前...");
            //固定写法,必须要让过滤器继续同行
            filterChain.doFilter(servletRequest,servletResponse);//让我们的程序继续走,如果不写程序到这会停止 
            System.out.println("doFilter执行后...");
        }
        //销毁过滤器,在服务器关闭的时候才销毁
        @Override
        public void destroy() {
    
        }
    }
    
    • 配置拦截的URL路径:在web.xml中填写
    <filter>
    <filter-naem>encodingFilter</filter-name>
    <filter-class>实现Filter类的路径</filter-class>
    </filter>
    
    <filter-mapping>
    <filter-name>encodingFilter</filter-name>
    <filter-pattern>拦截的URL路径</filter-pattern>
    </filter-mapping>
    

    过滤器的常见应用

    • 实现用户登录、注销功能
      • 登录页面中输入用户名和密码,若数据库中存在,则将数据存在Session中
      • 在进入主页的时候,过滤器需要判断Session中是否有相关数据,没有就重定向到错误页面(防止直接使用URL地址进主页)
      • 进入主页时要判断Session是否有相关数据
      • 若数据库中没有则重定向到错误页面
      • 若选择注销,则将Session的相关数据清除,一般不要去销毁Session,重复创建Session很消耗资源。

    Java懒加载

    //用户的服务层
    public class UserServiceImpl implments IUserService{
        private IUserDao userDao;//dao层是对数据库进行操作的,(pojo)entity实体类是与数据库对应的
        public UserServiecImpl{
          userDao = new UserDaoImpl();//这种方式就是懒加载的方式,如果后面用了框架,就直接使用@Autowrite注解
    }
      ...  //具体的业务方法
    }
    

    相关文章

      网友评论

          本文标题:JavaWeb基础之Filter

          本文链接:https://www.haomeiwen.com/subject/yujymhtx.html