通过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. 【BJOI 2018】 求和

    [题目链接] 点击打开链接 [算法] 预处理i^k的前缀和,对于每次询问,树上倍增即可 时间复杂度 : O(nk + mlog(n)) [代码] #include<bits/stdc++.h&g ...

  2. bzoj 1854: [Scoi2010]游戏【匈牙利算法】

    没啥可说的,就是一边属性一边道具建二分图,把两个属性都连到道具上,然后枚举匹配,如果无法匹配就输出,时间戳优化 #include<iostream> #include<cstdio& ...

  3. bzoj 1833: [ZJOI2010]count 数字计数【数位dp】

    非典型数位dp 先预处理出f[i][j][k]表示从后往前第i位为j时k的个数,然后把答案转换为ans(r)-ans(l-1),用预处理出的f数组dp出f即可(可能也不是dp吧--) #include ...

  4. 最近我总结的常用mate标签-常用mate标签

    昨天开始上班  ,今天晚上不是太忙 ,来写篇博客了 meta元素共有三个可选属性(http-equiv.name和scheme)和一个必选属性(content),content定义与 http-equ ...

  5. RabbitMq安装成功后执行命令报错(Error: unable to connect to node 'rabbit@DESKTOP-LPKSION': nodedown)

    我们直接来看解决方案吧.首先打开服务,找到RabbitMq服务. 双击打开后选择登陆选项卡: 点选此账户,输入你计算机的登录名称.点击浏览: 在这里输入你的用户名,点检索: 这里的密码输入你电脑开机登 ...

  6. (DP)51NOD 1118 机器人走方格

    M * N的方格,一个机器人从左上走到右下,只能向右或向下走.有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果. Input 第1行,2个数M,N,中间用空格隔开.( ...

  7. 64位linux安装wine等软件

    我的系统是centos7 64位的,安装wine的时候以为和32位的一样,结果执行./configure的时候,出现错误(无法建立一个32位程序,您需要安装32位的开发库) configure: er ...

  8. 重新学习Java——对象和类(二)

    上一节回归了如何以面向对象的思想去使用一些Java中的公共类,也设计了一些自己的类并介绍了设计类的基本方法和技巧,这一节我们将继续回顾这些内容,并争取从中获得新的体验和感受. 1. 静态域与静态方法 ...

  9. BPI-M1P(全志A20)刷Android启动卡之后启动的过程

    http://blog.csdn.net/wb4916/article/details/78031511BPI-M1P(全志A20)刷Android启动卡之后启动的过程 BPI-M1P(全志A20)刷 ...

  10. 北大ACM(POJ1015-Jury Compromise)

    Question:http://poj.org/problem?id=1015 问题点:DP. Memory: 1352K Time: 94MS Language: C++ Result: Accep ...