通过request对象获取客户端的相关信息

制作人:全心全意

通过request对象可以获取客户端的相关信息。例如HTTP报头信息、客户信息提交方式、客户端主机IP地址、端口号等等。

request获取客户端信息的常用方法
方     法 说     明
getHeader(String name) 获得HTTP协议定义的文件头信息
getHeaders(String name) 返回指定名字的request Header的所有值,其结果是一个枚举型的实例
getHeadersNames() 返回所有request Header的名字,其结果是一个枚举型的实例
getMethod() 获得客户端向服务器端传送数据的方法,如post、get、header、trace等
getProtocol() 获得客户端向服务器端传送数据所依赖的协议名称
getRequestURI() 获得发出请求字符串的客户端地址,不包括请求的参数
getRequestURL() 获得发出请求字符串的客户端地址
getRealPath() 返回当前请求文件的绝对路径
getRemoteAddr() 获取客户端的IP地址
getRemoteHost() 获取客户端的主机名
getServerName() 获取服务器的名字
getServerPath 获取客户端所请求的脚本文件的文件路径
getServerPort() 获取服务器的端口号

index.jsp:获取客户端信息的常用方法

<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>通过request对象获取客户端的相关信息</title>
</head>
<body>
获取客户端提交信息的方式:<%=request.getMethod() %>
<br>获取客户端使用的协议:<%=request.getProtocol() %>
<br>获取客户端请求字符串的地址(相对):<%=request.getRequestURI() %>
<br>获取客户端请求字符串的地址(绝对):<%=request.getRequestURL() %>
<br>获取客户端的IP地址:<%=request.getRemoteAddr() %>
<br>获取服务器端口号:<%=request.getServerPort() %>
<br>获取服务器的名称:<%=request.getServerName() %>
<br>获取客户端主机名:<%=request.getRemoteHost() %>
<br>获取客户端所请求脚本文件的文件路径:<%=request.getServletPath() %>
<br>获取HTTP协议定义的文件头信息Host的值:<%=request.getHeader("host") %>
<br>获取HTTP协议定义的文件头信息User-Agent的值:<%=request.getHeader("user-agent") %>
<br>获取HTTP协议定义的文件头信息accept-language的值:<%=request.getHeader("accept-language") %>
<br>获得请求文件的绝对路径:<%=request.getRealPath("index.jsp") %>
</body>
</html>

显示结果:

获取客户端提交信息的方式:GET
获取客户端使用的协议:HTTP/1.1
获取客户端请求字符串的地址(相对):/web/index.jsp
获取客户端请求字符串的地址(绝对):http://localhost:8080/web/index.jsp
获取客户端的IP地址:0:0:0:0:0:0:0:1
获取服务器端口号:8080
获取服务器的名称:localhost
获取客户端主机名:0:0:0:0:0:0:0:1
获取客户端所请求脚本文件的文件路径:/index.jsp
获取HTTP协议定义的文件头信息Host的值:localhost:8080
获取HTTP协议定义的文件头信息User-Agent的值:Mozilla/5.0 (Windows NT 6.2; Win64; x64; Trident/7.0; rv:11.0) like Gecko
获取HTTP协议定义的文件头信息accept-language的值:zh-CN
获得请求文件的绝对路径:F:\java工作目录\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\web\index.jsp

  

通过request对象获取客户端的相关信息的更多相关文章

  1. ASP.NET获取客户端的相关信息

    /// <summary>        /// 获取远程浏览器端 IP 地址        /// </summary>        /// <returns> ...

  2. asp.net 获取服务器及客户端的相关信息

    1. 在ASP.NET中专用属性:获取服务器电脑名:Page.Server.ManchineName获取用户信息:Page.User获取客户端电脑名:Page.Request.UserHostName ...

  3. 通过HttpservletRequest对象获取客户端的真实IP地址

    这篇文章主要介绍了Java中使用HttpRequest获取用户真实IP地址,使用本文方法可以避免Apache.Squid.nginx等反向代理软件导致的非真实IP地址,需要的朋友可以参考下 在JSP里 ...

  4. Go语言之进阶篇http服务器获取客户端的一些信息

    1.http服务器获取客户端的一些信息 示例: package main import ( "fmt" "net/http" ) //w, 给客户端回复数据 / ...

  5. C#获取电脑的相关信息

    /* 创建者:菜刀居士的博客  * 创建日期: 2014年08月31号  * 功能:获取电脑的相关信息  *  */ namespace Net.String.ConsoleApplication { ...

  6. NX二次开发-UF_ASSEM_ask_component_data获取装配部件的相关信息

    NX9+VS2012 #include <uf.h> #include <uf_ui.h> #include <uf_assem.h> ], void* user_ ...

  7. 获取Java系统相关信息

    package com.test; import java.util.Properties; import java.util.Map.Entry; import org.junit.Test; pu ...

  8. .Net中获取打印机的相关信息

    原文:.Net中获取打印机的相关信息 新项目中牵涉到对打印机的一些操作,最重要的莫过于获取打印机的状态,IP等信息,代码量不大,但是也是自己花了一点时间总结出来的,希望能帮助需要的朋友. Printe ...

  9. Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息

    详情请看:Cordova各个插件使用介绍系列(六)—$cordovaDevice获取设备的相关信息 在项目中需要获取到当前设备,例如手机的ID,联网状态,等,然后这个Cordova里有这个插件可以用, ...

随机推荐

  1. Python Tricks(十九)—— switch 的实现

    python 原生语法不支持 switch,体现了 Python 大道至简的设计思路,有时为了避免啰嗦的 if elif等判断语句,我们可以用字典来代替 switch 的各分支,也即建立表达式和操作的 ...

  2. luogu3942将军令

    https://www.zybuluo.com/ysner/note/1302132 题面 在大小为\(n\)的树上选择尽量少的点,使得所有未选择的点距离选择了的点小于等于\(k\). \(n\leq ...

  3. ODB——基于c++的ORM映射框架尝试(使用)

    摘要: 2.使用 首先,需要定义一个对象,用来和数据库字段对应: [cce lang=”cpp”] #ifndef VOLUME_H #define VOLUME_H #include #includ ...

  4. 测试-Swagger:Swagger

    ylbtech-测试-Swagger:Swagger The Best APIs are Built with Swagger Tools. Swagger 是一款RESTFUL接口的文档在线自动生成 ...

  5. Rails5 任务注释

     任务注释  格式  # TODO: ...  # FIXME: ...  # OPTIMIZE ...  查看   rails notes  个别查看  rails notes:todo  rail ...

  6. 清北考前刷题da7下午好

    三向城 /* 原图一定是一棵完全二叉树. 根节点是x,左节点是x*2,右节点是x*2+1 转化为二进制往左右走就很明显了. */ #include<iostream> #include&l ...

  7. 慕课网4-2 编程练习:jQuery祖先后代选择器小案例

    4-2 编程练习 结合所学的祖先后代选择器,实现如下图所示效果 任务 (1)使用祖先后代选择器将第二段文字背景色变成红色 (2)使用jQuery的.css()方法设置样式,语法css('属性 '属性值 ...

  8. 1.2Hello, World!的大小

    描述 还记得在上一章里,我们曾经输出过的“Hello, World!”吗? 它虽然不是本章所涉及的基本数据类型的数据,但我们同样可以用sizeof函数获得它所占用的空间大小. 请编程求出它的大小,看看 ...

  9. 四种IO模型

    四种 IO 模型:       首先需要明确,IO发生在 用户进程 与 操作系统 之间.可以是客户端IO也可以是服务器端IO. 阻塞IO(blocking IO):     在linux中,默认情况下 ...

  10. 一个Velocity Template Language学习的框架

    Velocity Template Language(VTL)使得数据展示和后台代码的开发分离开来,最初用在基于servlet的网站开发上,它的这一特性使得它在应付MVC Web开发模式时显得尤其合适 ...