spring拦截器之向页面传入项目地址

1.为啥向页面传入项目地址?
比如在引进css文件地址的时候通常是这样的
<link type="text/css" rel="stylesheet" href="http://localhost:8080/test/css/main.css">
或者
<link type="text/css" rel="stylesheet" href="./resource/css/main.css">
在页面中我们经常重复用到如:http://localhost:8080/test的地址,现在我们利用拦截器向页面传入项目地址
2.向spring配置文件中添加拦截器配置
<mvc:interceptors>
   <mvc:interceptor>
      <mvc:mapping path="/**" />  拦截器拦截哪些地址在此是拦截所有
      <bean class="cn.tsjcate.framework.web.interceptor.CtxInterceptor" />  拦截器所对应的bean
   </mvc:interceptor>
</mvc:interceptors>


3.拦截器
package cn.tsjcate.framework.web.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

/**
 *
 */
public class CtxInterceptor implements HandlerInterceptor {

	public static final String CONTEXT_NAME = "ctx";
	
	public static final String SCHEME_SUFFEX = "://";
	
	public static final String SEPARATE_SERVER_PORT = ":";
	
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object arg2, Exception e) throws Exception {
	}

	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object args, ModelAndView modelAndView) throws Exception {
		if (modelAndView == null || modelAndView.getModel() == null) {
			return;
		}
		StringBuffer ctx = new StringBuffer();
		ctx.append(request.getScheme());//  http
		ctx.append(SCHEME_SUFFEX);//      ://
		ctx.append(request.getServerName());// ip地址(域名)
		if (request.getServerPort() != 80) {
			ctx.append(SEPARATE_SERVER_PORT);
			ctx.append(request.getServerPort());
		}
		ctx.append(request.getContextPath());//添加站点的根目录
		//到这里就是(如)    http://localhost:8080/admin
		modelAndView.getModel().put(CONTEXT_NAME, ctx.toString());

		//重定向操作特殊处理
		if (modelAndView.getViewName().startsWith("redirect:")) {
			modelAndView.getModel().clear();
		}
	}

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object arg2) throws Exception {
		return true;
	}
	
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醒悟wjn

打赏可获取源码

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值