如题,不是获取请求的地址,request的都不是,我是要获取当前浏览器地址栏的全部字符串,注意不是用js获取。求解啊,网上全部没答案,我就不信csdn没人能帮我解决。谢谢
解决方案 »
- jsonplugin的includeProperties不起作用!
- 有没有会弄OpenCms的啊?神啊.救命.
- 紧急求救!!! tomcat 64位问题 window 2008 64bit
- 有谁用过 Google Map 的哦?
- struts分页代码(能运行的)给100分
- 在框架网页中当session过期后,如何强制调用login.jsp进行登陆
- 为什么用Jspsmartupload下载不了txt文件啊?
- 高手帮忙,把数据库封装在一个javabean里,请问其他bean如何访问(在线等)
- FireFox下button无反应
- [求助]在jdk+tomcat环境下如何添加Java Mail API的问题?
- 关于session
- 请问如何取到jsp上表格指定行的值
//比如地址为:http://localhost:8080/project/index.jsp
String uri = request.getRequestURI();获取//http://localhost:8080/project/index.jspString contextPath = request.getContextPath();//获取出http://localhost:8080/project
String actionPath = uri.substring(contextPath.length());// 获取/index.jsp
String ac = actionPath.substring(1,actionPath.lastIndexOf("."));//获取出index
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
这个url其实就是document.forms[0].action
不知道jsp如何获取呢。
顶。
LS正解……LS可以多多的测试一番,就知道了……
可以这样,在项目中增加一个过滤器,使其先用struts的过滤器工作,这个过滤器只做一件事,就是把客户端发出的请求URL记录一下,如: public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;
String guestRequest = req.getRequestURL().toString()+ "?" + req.getQueryString();
request.setAttribute("guestRequest", guestRequest);//如实记录客户端请求URL
System.out.println(guestRequest);
在项目中,不确切知道客户端请求的URL的原因就在于struts的转发(foward ,不是resend)。在JSP页面,或者具体处理的action中,获取上面存放的变量guestRequest,<%
out.println("<br/>客户端请求");
String guestRequest = request.getAttribute("guestRequest").toString();
out.println(guestRequest);
out.println("<br/>处理的请求请求");
String URL = request.getRequestURL().toString() + "?" + request.getQueryString();
out.println(URL);
%>
如果两个变量guestRequest 与URL相等,说明客户端直接请求的这个地址。否则,是经过转发的
ActionContext ac = ActionContext.getContext(); //获取当前action的上下文
RequestMap reqMap = (RequestMap)ac.get("request"); //获取请求Map
String acPath = (String)reqMap.get("javax.servlet.forward.servlet_path"); //获取跳转的action路径
String queryString = (String)reqMap.get("javax.servlet.forward.query_string"); //获取跳转的action请求参数
System.out.println(acPath);
System.out.println(queryString);
%>
使用Spring的org.springframework.web.util.UrlPathHelper类如下
<%@ page import="org.springframework.web.util.UrlPathHelper" %>
<%= new UrlPathHelper().getOriginatingRequestUri(request) %>
我说下我的思路:
①通过request.getRequestURL().toString()得到一个上面的真实的地址对应的真实地址,即http://localhost:8080/LDCity1/diaryWall.jsp
②有了http://localhost:8080/LDCity1/diaryWall.jsp 就好办了,一个地址中总有不变的地方,于是我就想到用字符串分割的方式将http://localhost:8080/LDCity1/diaryWall.jsp 按照 / 分割,并将结果存储在一个String[] data中,以下是打印出的数组结果:
http:localhost:8080
LDCity1
diaryWall.jsp
③再由request.getQueryString()可以获取到目标地址?后面的内容,即maxRowNumber=1
④最后,我用一个String url=data[0]+"//"+data[2]+"/"+data[3]+"/DiaryWallServlet?"+request.getQueryString();
这样就可以在需要的时候自由组合出当前的浏览器地址了.本人新手一枚,以上是本人愚见,希望可以帮到大家.....