为了防止通过地址栏直接访问后台,写了个过滤器,接口和后台在一起,接口不过滤,只过滤后台。
package com.enway.util;
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 UserFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 设置请求的字符编码
request.setCharacterEncoding("UTF-8");
// 设置返回请求的字符编码
response.setCharacterEncoding("UTF-8");
// 转换ServletRequest为 HttpServletRequest
HttpServletRequest req = (HttpServletRequest) request;
// 转换ServletResponse为HttpServletRequest
HttpServletResponse res = (HttpServletResponse) response;
// 获取Session
HttpSession session = req.getSession();
// 获取Session中存储的对象
Object o = session.getAttribute("bean");
// 获取当前请求的URI
String url = req.getRequestURI();
System.out.println("url----------------"+url);
// 判断Session中的对象是否为空;判断请求的URI是否为不允许过滤的URI
if(url.indexOf("parentscircle/group") < 0
&&url.indexOf("parentscircle/info") < 0
&&url.indexOf("parentscircle/user") < 0
){
if (o == null
&& url.indexOf("index") < 0 // 对URL地址中包含此字符串的文件不过滤
&& url.indexOf("login") < 0 // 对URL地址中包含此字符串的文件不过滤
&& url.indexOf("static") < 0 // 对URL地址中包含此字符串的文件不过滤
&& !url.endsWith("index.jsp") // 对URL地址为此结尾的文件不过滤
&& !url.endsWith("image.jsp") // 对URL地址为此结尾的文件不过滤
) {
//res.sendRedirect(req.getContextPath() + "/admin/index");
res.sendRedirect(req.getContextPath()+"/index.jsp");
} else {
chain.doFilter(request, response);
res.setHeader("Cache-Control","no-store");
res.setDateHeader("Expires",0);
res.setHeader("Pragma","no-cache");
res.flushBuffer();
}
}else{
chain.doFilter(request, response);
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}