java积累--获取客户端访问的url和域名--EL表达式获取地址栏地址以及jsp如何获取服务器信息
访问网页的主机ip为:123.10.23.12
部署网页的服务器ip为:10.0.4.214
JAVA获取域名或者ip相关信息的方法
request.getServerName()返回被请求服务器域名,如果没有域名则返回IP地址:10.0.4.214request.getServerPort()返回被请求服务器端口:8081request.getRemoteHost()返回远程主机(客户端)域名,没有域名就返回IP:123.10.23.12,如果服务端和客户端在同一台机子上且使用了localhost进行访问,那么此处得到的将是0:0:0:0:0:0:0:1,这是由于host文件导致的。request.getRemoteAddr()返回远程主机(客户端)IP地址:123.10.23.12,同上request.getLocalName()返回本地(服务端)域名,没有域名就返回IP:10.0.4.214,如果服务端和客户端在同一台机子上且使用了localhost进行访问,那么此处得到的将是0.0.0.0,这是由于host文件导致的。request.getLocalAddr()返回本地(服务端)域名,没有域名就返回IP:10.0.4.214,同上request.getLocalPort()返回本地(服务端)端口:8081InetAddress.getLocalHost().getAddress()返回本地(服务端)IP(数组形式):[10, 0, 2, 88] 此处需要注意:如果服务器用的是windows那么可以正确获取到IP,但,如果服务器是linux,则只能获取到[127, 0, 0, 1] 。request.getRequestURL()获取请求的网址全路径:https://10.0.4.214:8081/vasportal/index.actionrequest.getRequestURI()获取工程名和请求路径:vasportal/index.actionrequest.getContextPath()获取当前请求的上下文(可以理解为工程名): /vasportalrequest.getServletContext().getRealPath("/temp")获取项目中webapp下的temp文件夹request.getServletPath()得到当前服务器servlet映射的路径:index.actionrequest.getProtlcol()得到当前请求的协议版本:HTTP/1.1request.getScheme()得到当前请求的协议类型:https
使用方式--后端
@Controller
@RequestMapping(value="https://www.it610.com/test")
public class TestControllor {Logger logger = Logger.getLogger(TestControllor.class);
@ResponseBody
@RequestMapping(value="https://www.it610.com/blog", method=RequestMethod.GET)
public String operation(HttpServletRequest request){String url = "http://" + request.getServerName() //服务器地址+ ":" + request.getServerPort()//端口号+ httpRequest.getContextPath()//项目名称 + httpRequest.getServletPath()//请求页面或其他地址 + "?" + (httpRequest.getQueryString());
//参数System.out.println(url);
return "";
}
}
使用方式--前端
满足条件则显示本行文字
有时候我们需要在jsp页面获取当前地址。(非js获取)
获取浏览器地址栏输入的地址 EL表达式获取
${requestScope['javax.servlet.forward.request_uri']}
或者
${pageContext.request.getAttribute("javax.servlet.forward.request_uri")}
java脚本获取
ps注意事项 Tomcat和Was7对servlet标准的实现不尽相同的。差异很大,导致最终结果也有些差异了。本文中要说的request.getAttribute("javax.servlet.forward.request_uri")调用结果就是其中的一个差异。
在Tomcat环境下javax.servlet.forward.request_uri存放的是当前请求路径,但在was7下存放的却是上一个请求的路径。
获取浏览器地址栏输入地址的请求参数 例如:http://localhost:8080/test/hello?name=joe获取name
EL表达式获取
${param.name}
java脚本获取
获取当前页面绝对路径 java脚本
或者
Stringurl=request.getScheme()+"://";
url+=request.getHeader("host");
url+=request.getRequestURI();
if(request.getQueryString()!=null)
url+="?"+request.getQueryString();
EL表达式
${pageContext.request.requestURL}
获取服务器的相关信息 EL表达式
${pageContext.request}|取得请求对象
${pageContext.session}|取得session对象
${pageContext.request.queryString}|取得请求的参数字符串
${pageContext.request.requestURL}|取得请求的URL的服务器路径,但不包括请求之参数字符串
${pageContext.request.contextPath}|服务的web application的名称
${pageContext.request.method}|取得HTTP的方法(GET、POST)
${pageContext.request.protocol}|取得使用的协议(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser}|取得用户名称
${pageContext.session.new}|判断session是否为新的,所谓新的session,表示刚由server产生而client尚未使用
${pageContext.session.id}|取得session的ID
${header["User-Agent"]}|用户浏览器的版本
${header["Host"]}|IP
${pageContext.request.remoteAddr }|取得用户的IP地址
${pageContext.servletContext.serverInfo}|取得主机端的服务信息
${pageContext.request.serverPort}|端口信息
${pageContext.request.serverName}|服务器名称
${pageContext.request.remoteHost}|客户机名称
【java积累--获取客户端访问的url和域名--EL表达式获取地址栏地址以及jsp如何获取服务器信息】
java脚本
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- Java|Java基础——数组
- RxJava|RxJava 在Android项目中的使用(一)
- java之static、static|java之static、static final、final的区别与应用
- EditText默认不获取焦点弹出键盘