当然 当时 也是百度出来的 呵呵
我的springMVC 全是在 /control/下的
在web.xml 中添加
<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>com.spring.filter.SessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>sessionFilter</filter-name>
<url-pattern>/control/*</url-pattern>
</filter-mapping>
然后添加 com.spring.filter.SessionFilter 类需要继承 OncePerRequestFilter
复写 protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain arg2)
throws ServletException, IOException {
这个方法最后 如果没有特殊处理则 执行 super.doFilter(request, response, arg2); 或者用 response 还回
我在写这个的时候 有一个问题 就是 用ip来判断是否在别的地方登陆了 我发现有些地区登陆ip不断变化
使用的方法是
public static String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
后来使用 String SessionID = request.getSession().getId(); 来判断是否有别人登陆
全局变量的添加 在启动的时候 执行一次
在web.xml中加入
<servlet>
<servlet-name>global</servlet-name>
<servlet-class>com.spring.global.global</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
再加入代码
package com.spring.global;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import com.application.factory.BaseManagerFactory;
import com.ssc.pojo.SysConfig;
@SuppressWarnings("serial")
public class global extends HttpServlet {
@Override
public void init() throws ServletException {
List<SysConfig> sys = BaseManagerFactory.getSysConfigDAO().findAll();
for ( SysConfig sysConfig : sys) {
this.getServletContext().setAttribute(sysConfig.getKey(),sysConfig.getValue());
}
}
}