📄 encodingfilter.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 + -