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

📄 encodingfilter.java

📁 一个jsp的oa系统,里面有很多亮点学习!
💻 JAVA
字号:
package com.oa.lp.util;

import java.io.IOException;
import java.util.List;

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;

import com.oa.lp.model.Power;

public class EncodingFilter implements Filter {

	public void destroy() {
		

	}

	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest request = (HttpServletRequest)servletRequest;
		HttpServletResponse response = (HttpServletResponse)servletResponse;
		
		StringBuffer path = new StringBuffer();
		//字符编码设定
		request.setCharacterEncoding("GB2312");
		String uri = request.getRequestURI();
		path.append(uri);
		
		//验证用户是否已经登录
		HttpSession session = request.getSession();
		Object obj = session.getAttribute("emp");
		
		if(uri.endsWith("login.jsp")||uri.endsWith("LoginServlet")||
				uri.endsWith(".gif")||uri.endsWith(".jpg")||uri.endsWith("mid.html")||
				uri.endsWith(".css")||uri.endsWith(".js")||uri.endsWith(".swf")||uri.endsWith(".GIF")){
			chain.doFilter(request, response);
			return;
		}
		if(obj!=null){
			
				String method = request.getParameter("method")==null?"":request.getParameter("method");
				path.append("?method=");
				//如果要请求更新,我们判断是否具有编辑权限
				if(method.equals("update")){
					path.append("edit");
				}else{
					path.append(method);
				}
				boolean allowAccess = false;
				if(path.indexOf("index.html")>-1||path.indexOf("top.jsp")>-1
						||path.indexOf("left.jsp")>-1||path.indexOf("noPower.html")>-1
						||path.indexOf("LogoutServlet")>-1||path.indexOf("main.html")>-1){
					
					chain.doFilter(request, response);
				}else{
					//非公共页面,要判断相应权限
					//获取用户所有权限
					List powers = (List)session.getAttribute("powers");
					//在用户所有权限中查找是否拥有当前URL的访问权限
					for(int i=0;i<powers.size();i++){
						Power power = (Power)powers.get(i);
						String powerURL = power.getPowerUrl();
						if(powerURL==null||powerURL.length()<=0){
							continue;
						}
						if(path.indexOf(powerURL)>-1){
							//有权限
							allowAccess=true;
							break;
						}
					}
					
					if(allowAccess){
						//有权限,继续执行请求
						chain.doFilter(request, response);
					}else{
						//没有权限,显示无权限页面
						response.sendRedirect(request.getContextPath()+"/noPower.html");
					}										
					
				}			

			}else{
			//未登录
			response.sendRedirect(request.getContextPath()+"/login.jsp");
		}		
		
	}

	public void init(FilterConfig arg0) throws ServletException {
		
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -