在过滤器中request.getRequestURI()不能取得当前访问的地址

redcola 2018-08-22 11:21:50
在过滤器中
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
request.getRequestURI();//此句取的是页面的元素JS路径、图片等,而不是我访问的地址。而且要执行过滤器好多次。
}
想请教高手 request.getRequestURI()怎么取实际地址?
...全文
3164 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
arsenal_zuoyu 2018-08-27
  • 打赏
  • 举报
回复
类型转换成其他的Request再试
lkf181 2018-08-24
  • 打赏
  • 举报
回复
顺序问题吧,我也遇到过
同学请坐の 2018-08-24
  • 打赏
  • 举报
回复
ServletActionContext.getRequest.getRequestUrl
redcola 2018-08-23
  • 打赏
  • 举报
回复
引用 12 楼 qq_15824553 的回复:
过滤器拦截了所有请求,配置一下只拦截 .do .action

请问一下如何配置拦截 .do .action?
RockeyCui 2018-08-23
  • 打赏
  • 举报
回复
过滤器拦截了所有请求,配置一下只拦截 .do .action
ladiesmansy 2018-08-23
  • 打赏
  • 举报
回复
Spring MVC
redcola 2018-08-23
  • 打赏
  • 举报
回复
引用 10 楼 verejava 的回复:
MVC 微框架

http://www.verejava.com/?section_id=1697715673191
这个是什么?
verejava 2018-08-23
  • 打赏
  • 举报
回复
redcola 2018-08-23
  • 打赏
  • 举报
回复
找到原因了,有好几个过滤器,把这个过滤器放第一个就好了。
redcola 2018-08-22
  • 打赏
  • 举报
回复
引用 1 楼 tianfang 的回复:
文件系统中的路径?

要用 HttpServletRequest 的 getPathInfo

你的方法取的值是NULL
tianfang 2018-08-22
  • 打赏
  • 举报
回复
文件系统中的路径?

要用 HttpServletRequest 的 getPathInfo
喵菌 2018-08-22
  • 打赏
  • 举报
回复
web.xml里肯定有这样的配置
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
你加一个
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
redcola 2018-08-22
  • 打赏
  • 举报
回复
引用 7 楼 u014146389 的回复:
那是在web.xml里配置的拦截器,以.do和.jsp会做拦截,想拦截.action的请求的话,配置上添加.action就可以了

根本就取不到.action的地址,无法拦。
redcola 2018-08-22
  • 打赏
  • 举报
回复
奇了怪了,我反复试验后,发现用request.getRequestURI()取地址。以.jsp结尾和.do结尾的都可以取到,就是以.action结尾的取不到。
喵菌 2018-08-22
  • 打赏
  • 举报
回复
那是在web.xml里配置的拦截器,以.do和.jsp会做拦截,想拦截.action的请求的话,配置上添加.action就可以了
redcola 2018-08-22
  • 打赏
  • 举报
回复
引用 3 楼 u014146389 的回复:
楼主debug模式,查看request的全部参数,不就可以看到全部信息了么, request.getRequestURI()得到的是拼接地址,很可能包名和图片/js
名称用的是一样的名字

是的,地址访问了所有的页面元素,偏偏我要访问的地址栏的地址取不到。
931828653 2018-08-22
  • 打赏
  • 举报
回复
// 获得请求方式
String method = request.getMethod();
System.out.println("method:" + method);
// 获得请求的资源
String uri = request.getRequestURI();
String url = request.getRequestURL().toString();
System.out.println("uri:" + uri);
System.out.println("url:" + url);

// 获得web应用名称
String contextPath = request.getContextPath();
System.out.println("contextPath:" + contextPath);

// 获得地址后的字符串参数
String queryString = request.getQueryString();
System.out.println("queryString:" + queryString);

// 获取客户机的信息(IP地址)
String remoteAddr = request.getRemoteAddr();
System.out.println("remoteAddr:" + remoteAddr);
喵菌 2018-08-22
  • 打赏
  • 举报
回复
楼主debug模式,查看request的全部参数,不就可以看到全部信息了么, request.getRequestURI()得到的是拼接地址,很可能包名和图片/js
名称用的是一样的名字

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧