⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 authorityfilter.java

📁 JDBC数据库高级编程源代码
💻 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 + -