美文网首页
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