67,513
社区成员
发帖
与我相关
我的任务
分享
<!-- URL重写 -->
<filter>
<filter-name>UrlRewriteFilter</filter-name>
<!-- 过滤器类所在的路径: -->
<filter-class>com.jorke.base.filter.UrlRewriteFilter</filter-class>
<!-- 日志级别(可以不配置) -->
<init-param>
<param-name>logLevel</param-name>
<param-value>WARN</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>UrlRewriteFilter</filter-name>
<!-- 拦截所有url -->
<url-pattern>*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<!-- 请求过滤器 -->
<filter>
<filter-name>requestFilter</filter-name>
<filter-class>com.jorke.base.filter.RequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>requestFilter</filter-name>
<url-pattern>*.htm</url-pattern>
</filter-mapping>
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
AppContext.setRequest(request);
try {
//String header = request.getHeader("REFERER");//请求的完整地址
String url = request.getRequestURI();
if(url.endsWith("!save.htm")){
Object obj = request.getSession().getAttribute(JorkeConstant.USER_SESSION_KEY);
if(obj == null) {
response.sendRedirect(request.getContextPath() + "/view/login/login.jsp");
}else{
filterChain.doFilter(servletRequest, servletResponse);
}
}else{
filterChain.doFilter(servletRequest, servletResponse);
}
} catch (Exception e) {
Logger.getLogger().error(e, e);
}finally{
}
}
public class AppContext {
/**
* 当前线程中的用户信息
*/
private final static ThreadLocal<HttpServletRequest> currentRequest = new ThreadLocal<HttpServletRequest>();
/**
* 设置用户信息
*
* @param userInfo
* 用户信息
*/
public static void setRequest(HttpServletRequest request) {
currentRequest.set(request);
}
/**
* 返回当前登陆用户
*
* @return
*/
public static BaseEntity getUserInfo() {
BaseEntity currentuser;
try {
currentuser = (BaseEntity)currentRequest.get().getSession().getAttribute(JorkeConstant.USER_SESSION_KEY);
return currentuser;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void cleanRequest() {
currentRequest.set(null);
}
}