自定义过滤器(Filter)实现默认登录
package ecustom.ecology.servlet;
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 ecustom.ecology.commons.CustomUtil;
import weaver.general.GCONST;
import weaver.hrm.UserManager;
public class SessionFilter implements Filter {
private String defaultUserId;
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
Object user = req.getSession().getAttribute("weaver_user@bean");
if (user == null && CustomUtil.isNotBlank(defaultUserId)) {
int userId = Integer.parseInt(defaultUserId);
user = new UserManager().getUserByUserIdAndLoginType(userId, "1");
req.getSession().setAttribute("weaver_user@bean", user);
}
chain.doFilter(request, response);
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
this.defaultUserId = filterConfig.getInitParameter("defaultUserId");
if (CustomUtil.isBlank(GCONST.getServerName())) {
GCONST.setServerName("ecology");
}
if (CustomUtil.isBlank(GCONST.getRootPath())) {
GCONST.setRootPath(filterConfig.getServletContext().getRealPath("/"));
}
}
}
web.xml
配置默认登录用户
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<filter>
<filter-name>SessionFilter</filter-name>
<filter-class>ecustom.ecology.servlet.SessionFilter</filter-class>
<init-param>
<param-name>defaultUserId</param-name>
<param-value>1</param-value><!-- 默认登录用户的ID -->
</init-param>
</filter>
<filter-mapping>
<filter-name>SessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>