struts2中怎么获取url啊,请求的地址

2025-05-11 05:16:42
推荐回答(2个)
回答1:

我当初在利用Struts2实现电子商务购物系统的时候,也遇到这个问题,想记录用户之前访问的URL,包括点击的所有参数信息,后面给我解决了。我是利用拦截器去做的,然后把用户的URL存到Session当中。这是我的源码,你可以按照这个思路去做,应该没有问题的,我的项目已经验收通过了。希望能够帮到你,谢谢
/**
* 方便用户返回上一个浏览界面
*/
import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.apache.struts2.ServletActionContext;

import leo.sd1006.gz.tarena.dang.global.GlobalField;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.MethodFilterInterceptor;

public class PreviousPathInterceptor extends MethodFilterInterceptor{

private static final long serialVersionUID = 6677300287776159679L;
private Logger logger=Logger.getLogger(CheckLoginInterceptor.class);

@Override
protected String doIntercept(ActionInvocation invocation)
throws Exception {
//设置用户当前访问的界面,方便用户登录后直接跳转到前一个页面
HttpServletRequest request=ServletActionContext.getRequest();
String path=request.getRequestURI();
String actionPath=".."+path.substring(9);
//访问服务器所带有的参数信息
String queryInfo=request.getQueryString();
if(queryInfo!=null&&(!queryInfo.equals(""))){
actionPath=actionPath+"?"+queryInfo;
}
logger.debug("用户访问的路径是:"+actionPath);
ActionContext.getContext().getSession().put(GlobalField.PRE_PATH, actionPath);
return invocation.invoke();
}

}

回答2:

ServletActionContext.getServletContext().getRealPath("")