springMVC 中使用 filter过滤 和 global 启动的时候 添加全局变量


当然  当时 也是百度出来的 呵呵  


我的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());
		}
	}

}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值