Javaweb登录过滤器

1、登录过滤器”用途:

1)防止在用户未登录的情况下来访问网站。

2)举例:fire.html 这个网页是登录后才可以访问的,现在用户没有登录,直接可以访问fire.html。那么,这样的网站就存在安全问题?用户不用登录的情况下随随便便就访问。为了避免这样的情况,我们需要用过滤器来过滤一些需要登录后才可以访问的页面,可以理解为在门上加了一把锁。

2、实现操作:

1)简单一点,可以认定除了登录,注册页面,都需要过滤

2)判断用户有没有登录,已session为依据,来判断用户是否已登录。已登录,可以继续访问,没有登录返回到登录界面。

具体代码如下:

(1)LoginFilter.java

package com.filter;
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.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class LoginFilter implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response=(HttpServletResponse)servletResponse;
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpSession session=request.getSession(); 
Object object=session.getAttribute("currentUser");//获取session中作为判断的字段
String path=request.getServletPath();  //获取路径 request.getServletPath()返回:/main/list.jsp 
// String path = req.getRequestURI();// 获得用户请求的URI, request.getRequestURI() 返回:项目名/main/list.jsp 
            
if(object==null&&path.indexOf("login")<0){
//判断请求的 路径中是否包含了 登录页面的请求
               //如果包含了,那么不过滤 继续执行操作
//如果不是login.jsp进行过滤
response.sendRedirect("forlogin.jsp");
}else{

filterChain.doFilter(servletRequest, servletResponse); // 已经登陆,继续此次请求
}
}

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}

}

(2)web.xml

<filter>
  <filter-name>loginFilter</filter-name>
  <filter-class>com.filter.LoginFilter</filter-class>
  </filter>
  
  <filter-mapping>
  <filter-name>loginFilter</filter-name>

  <url-pattern>/*</url-pattern>

        <!-- <url-pattern>/*</url-pattern> 表示所有文件都需要过滤

        也可以写为--<url-pattern>/admin/*</url-pattern>这里的/admin/* 表示是指定路径下的文件需要过滤   >   

  </filter-mapping>



  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值