📄 authorityfilter.java
字号:
package jdbcbook.msgboard;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.IOException;
import jdbcbook.pub.util.*;
public class AuthorityFilter implements Filter
{
FilterConfig filterConfig = null;
String logon = "logon.jsp";
String[] ignoreuri = null;
// 读取初始化配置参数
public void init(FilterConfig config) throws ServletException
{
this.filterConfig = config;
// 读取登录页面连接(在用户没有登录的时候会跳转到该页面)
String logon = filterConfig.getInitParameter( "logonpage" );
if( !StringUtil.isEmptyString( logon ) )
this.logon = logon;
// 读取不需要登录的连接
String ignoreuri = filterConfig.getInitParameter( "ignoreuri" );
this.ignoreuri = StringUtil.strTokenizer( ignoreuri, "," );
}
// 处理操作
public void doFilter( ServletRequest request,
ServletResponse response,
FilterChain chain )
throws IOException, ServletException
{
HttpServletRequest req = (HttpServletRequest)request;
HttpServletResponse res = (HttpServletResponse)response;
// 判断当前请求是否为不需要登录的请求
if( this.ignoreuri!=null )
{
String requri = req.getRequestURI();
for( int i=0; i<ignoreuri.length; i++ )
{
if( requri.indexOf( ignoreuri[i] ) > 0 )
{
chain.doFilter( request, response );
return;
}
}
}
// 判断用户是否登录(通过Session中是否有session_userinfo属性来判断)
HttpSession session = req.getSession();
UserInfo user = (UserInfo)session.getAttribute( "session_userinfo" );
if( user!=null && user.isLogon() )
{
// 用户已经登录
chain.doFilter( request, response );
}
else
{
// 用户没有登录,跳转到登录页面
RequestUtil.setMsg( this, req, "notlogon" );
RequestDispatcher dispatcher = request.getRequestDispatcher( logon );
dispatcher.forward( request, response );
}
}
public void destroy()
{
this.filterConfig = null;
this.ignoreuri = null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -