【java】js、java获取URL请求路径信息

    有时候,我们需要对请求路径做处理,例如url重定向,或者为url追加参数,我们可以使用js在前端对请求路径做处理, 也可以使用java在后端对请求路径做处理。

  • js获取请求路径信息

  • js有个全局变量location,操作这个对象就等于操作浏览器的地址栏,下面我们观察一下location对象可以获取到什么url信息

    //测试的请求url, get方法
    //"http://localhost:8080/struts2/user/login.action?userid=1000#topic1"
     
    //获取请求协议
    location.protocol;    //返回"http:"
     
    //获取请求服务器域名(IP地址), 
    location.hostname;    //返回"localhost"
     
    //获取请求服务器端口号
    location.port;        //返回"8080"
     
    //获取请求服务器的域名(IP地址)和端口号
    location.host;        //返回"localhost:8080"
     
    //获取请求资源名
    location.pathname;    //返回"/struts2/user/login.action"
     
    //获取锚点
    location.hash;        //返回"#topic1"
     
    //获取请求参数
    location.search;      //返回?userid=1000", 注意: 如果请求地址只有"?"后面却没有请求参数, 则返回空字符串
     
    //返回整个url地址, 包含以上所有信息
    location.href;        //返回"http://localhost:8080/struts2/user/login.action#topic1?userid=1000#topic1"
 
  • java获取请求路径信息

  • 开发javaweb项目时,  需要web容器,  例如tomcat是一个常用的javaweb容器, 该容器会为我们的servlet(假如没有使用mvc框架, 如struts2、springmvc)提供一个HttpServletRequest对象, 通过访问该对象, 我们可以获取到请求路径信息, 示例如下:
        //测试的请求url, get方法
        //"http://localhost:8080/struts2/user/login.action?userid=1000"
         
        //获取请求方法
        request.getMethod();        //返回"GET"
         
        //获取请求协议
        request.getScheme();        //返回"http"
         
        //获取请求域名(IP地址);
        request.getServerName();    //返回"localhost"
         
        //获取请求端口号
        request.getServerPort();    //返回"8080"
         
        //获取请求URL, 不包括请求参数
        request.getRequestURL();    //返回"http://localhost:8080/struts2/user/login.action"
         
        //获取请求URI, 也不包括请求参数, 相当于contextPath + servletPath
        request.getRequestURI();    //返回"/struts2/user/login.action"
         
        //获取请求参数, 不带问号"?"
        request.getQueryString();   //返回"userid=1000" 
         
        //获取请求协议
        request.getProtocol();      //返回"HTTP/1.1"
         
        //获取Web应用程序路径
        request.getContextPath();   //返回"/struts2"
         
        //获取请求资源路径
        request.getServletPath();   //返回"/user/login.action"

猜你喜欢

转载自lizhuquan0769.iteye.com/blog/2230749