JSP request对象功能详解说明

2023-11-06

转自:

JSP request对象功能详解说明

下文笔者讲述request对象的功能简介说明,如下所示:

 request的功能:
    request是HttpServletRequest类的实例
    request对象中封装了客户端请求的数据信息,通过获取request对象中的信息,我们可获取客户端的请求信息  

request对象中的方法

string getProtocol() 返回请求用的协议类型及版本号 request.getProtocol() 输出:HTTP/1.1
getServletConfig().getServletContext().getServerInfo() 服务器信息 输出:JavaServer Web Dev Kit/1.0 EA (JSP 1.0; Servlet 2.1; Java 1.2; Windows NT 5.0 x86; java.vendor=Sun Microsystems Inc.)
String getRemoteAddr() 返回发送此请求的客户端IP地址 request.getRemoteAddr() 输出:192.168.8.8
String getRemoteHost() 返回发送此请求的客户端主机名
String getCharacterEncoding() 返回字符编码方式 request.getCharacterEncoding() 输出:GB2312
int getContentLength() 返回请求体的长度(以字节数)
String getContentType() 得到请求体的MIME类型 8. string getAuthType() 获取Authorization头 request.getContentType() 输出:basic或者digest
string getMethod() 获取请求类型 输出:通常是GET或者POST。但偶尔也会出现HEAD,PUT, Delete,OPTIONS,或者 TRACE.
string getPathInfo() 获取URL中的附加路径信息 输出:URL中Servlet路径之后、查询字符串之前的那部分
string getPathTranslated() 映射到服务器实际路径之后的路径信息
string getQueryString() 这是字符串形式的附加到URL后面的查询字符串,数据仍旧是URL编码的。
string getRemoteUser() 如果提供了Authorization头,则代表其用户部分。它代表发出请求的用户的名字。
string getRequestedSessionId() 输出SessionId
string getRequestURI() 请求URL
string getServletPath() URL中调用Servlet的那一部分,不包含附加路径信息和查询字符串
string getHeader() 获取请求头部信息 getHeader("Accept") //访问Accept的HTTP头。 getHeader("Host") //输出:192.168.8.8:8080
String getServerName() 返回接受请求的服务器主机名 request.getServerName() 输出:192.168.8.8
int getServerPort() 返回服务器接受此请求所用的端口号 request.getServerPort() 输出:8080
ServletInputStream getInputStream() 得到请求体中一行的二进制流
String getScheme() 返回请求用的计划名,如:http.https及ftp等
BufferedReader getReader() 返回解码过了的请求体
void setAttribute(String key,Object obj) 设置属性的属性值
String getRealPath(String path) 返回一虚拟路径的真实路径
String getParameter(String name) 返回name指定参数的参数值
Enumeration getParameterNames() 返回可用参数名的枚举
String[] getParameterValues(String name) 返回包含参数name的所有值的数组

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> 
<%@ page import="java.util.*" %> 
<htm> 
<head> 
</head>
<body> 
客户使用的协议是: 
<% 
    String strProtocol = request.getProtocol(); 
    out.print(strProtocol); 
%> 
<br/> 
获取客户提交信息的页面: 
<% 
    String strPath = request.getServletPath(); 
    out.print(strPath); 
%> 
<br/> 
接受客户提交信息的长度 
<% 
    int intLength = request.getContentLength(); 
    out.print(intLength); 
%> 
<br/> 
客户提交信息的方式: 
<% 
    String strMethod = request.getMethod(); 
    out.print(strMethod); 
%> 
<br/> 
获取HTTP头文件中User-agent的值 
<% 
    String strUserAgent = request.getHeader("User-Agent"); 
    out.print(strUserAgent); 
%> 
<br/> 
获取HTTP头文件中的accept值 
<% 
    String strAccept = request.getHeader("accept"); 
    out.print(strAccept); 
%> 
<br/> 
获取HTTP头的Host的值 
<% 
    String strHost = request.getHeader("Host"); 
    out.print(strHost); 
%> 
<br/> 
获取HTTP头文件中accept-encoding的值 
<% 
    String strAcceptEncoding = request.getHeader("accept-encoding"); 
    out.print(strAcceptEncoding); 
%> 
<br/> 
获取客户的IP地址 
<% 
    String strIP = request.getRemoteAddr(); 
    out.print(strIP); 
%> 
<br/> 
获取客户机的名称 
<% 
    String strClientName = request.getRemoteHost(); 
    out.print(strClientName); 
%> 
<br/> 
获得服务器的名称 
<% 
    String strServerName = request.getServerName(); 
    out.print(strServerName); 
%> 
<br/> 
获得服务器端口号 
<% 
    int strServerPort = request.getServerPort(); 
    out.print(strServerPort); 
%> 
<br/> 
获取客户端提交的所有参数名字:<br/> 
<% 
    Enumeration<String> enumer = request.getParameterNames(); 
    while(enumer.hasMoreElements()) 
    { 
        String s = (String) enumer.nextElement(); 
        out.print(s); 
        out.print("<br/>"); 
    } 
%> 
<br/> 
获取头名字的一个枚举:<br/> 
<% 
    Enumeration<String> enumHead = request.getHeaderNames(); 
    while(enumHead.hasMoreElements()) 
    { 
        String s = (String) enumHead.nextElement(); 
        out.print(s); 
        out.print("<br/>"); 
    } 
%> 
<br/> 
获取头文件中指定头名字的全部值的一个枚举<br/> 
<% 
    Enumeration<String> enumCookies = request.getHeaders("cookie"); 
    while(enumCookies.hasMoreElements()) 
    { 
        String s = (String)enumCookies.nextElement(); 
        out.print(s); 
        out.print("<br/>"); 
    } 
%> 
<br/> 
</body> 
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSP request对象功能详解说明 的相关文章

随机推荐

  • js预编译习题解题思路

    js预编译习题解题思路 function fn a c console log a function a var a 123 console log a 123 console log c function c function a if
  • Linux知识概括

    Linux知识概括 Linux介绍 VMware工具与远程登录 Linux目录结构 Vi和Vim编辑器 开关机与登录注销与用户管理 Linux常用系统文件 实用指令 其他常用指令 帮助指令 文件目录类 时间日期类 搜索查找类 压缩和解压类
  • Spring AOP如何使用AspectJ注解进行开发呢?

    转自 Spring AOP如何使用AspectJ注解进行开发呢 下文讲述Spring AspentJ中采用注解的方式定义切面 切入点和增强处理的示例 Annotation注解 注解名称 备注 Aspect 用于定义一个切面 Pointcut
  • 字节跳动P0级事故:实习生删除GB以下所有模型,直接上了今日头条......

    大家好 我是小猿 曾经我招过一个实习生 他曾经干过一件让我感到匪夷所思的事 我当时忙 让他把服务器重启 他直接来了个电源重启 最近脉脉上有网友爆料 字节跳动一位实习生删除了公司所有轻量级别的机器学习模型 什么是lite模型 该楼主表示 li
  • mysql优化之为什么我limit10也会全表扫描

    先上结果 优化前 优化后 工作中有一个业务场景一条命中记录会存储到一张命中记录A表 并且推送给用户 每一条推送记录存储到B表 AB是一对多的关系 现在一条sql语句是用户查看命中记录列表 按照命中的时间倒序排序 表结构如下 A表 CREAT
  • 上传大文件(文件流分段上传、base64分段转码)

    java http方式上传大文件 文件流分段上传 base64分段转码 李梦成的博客 CSDN博客 java 分块上传
  • 哪些因素影响阻抗控制?网格铜的妙用

    原文来自微信公众号 工程师看海 前文介绍了传输线 特性阻抗以及信号的反射概念 如果阻抗不连续信号会发生反射严重时将会导致系统不能正常工作 都有哪些参数会影响阻抗呢 了解相关参数后我们就可以知道有哪些方法来控制阻抗了 线宽W 走线加宽 则单位
  • sizeof笔试题

    http www xici net b700278 d44576087 htm 1 常规 char str1 Hello char str2 5 H e l l o char str3 6 H e l l o 0 char p1 Hello
  • Android有线IPV6总结(二):内核中RS与RA的一点学习

    RS Router Solicitation路由器请求 RA Router Advertisement路由器公告 在Android系统中我们想要打开一个网络接口 比如eth0 的ipv6功能 用命令的话我们有如下两种办法 1 echo 0
  • vscode ( Visual Studio Code )设置中文、字体和字号

    全拼是 Visual Studio Code 简称 VS Code 是由微软研发的一款免费 开源的跨平台代码编辑器 目前是前端 网页 开发使用最多的一款软件开发工具 下载网址 https code visualstudio com Down
  • WeChat结合文档开发

    1 获取accessToken 2 根据测试号给的ID和秘钥 生成accessToken 3 拿到accessToken之后 尝试使用其中的某一个接口 比如说消息推送 创建模板 生成模板ID 生成之后会产生模板ID 4 根据openID 模
  • 网络通信深入解析:探索TCP/IP模型

    http协议访问web 你知道在我们的网页浏览器的地址当中输入url 未必是如何呈现的吗 web浏览器根据地址栏中指定的url 从web服务器获取文件资源 resource 等信息 从而显示出web页面 web使用HTTP 超文本传输协议
  • linux bitcoin-qt程序运行时 缺少 libboost.so 动态库

    这是因为该程序在系统变量的路径下未找到自己的依赖库 所以就启动不了 执行将缺省的依赖库补上 能让程序搜索的到就可以了 bitcoin可执行程序的运行错误截图 执行打开后发生的错误提示 bitcoin qt home cly project
  • Linux epoll 详解

    最近 异想天开 想用D实现一个web服务器 似乎已经想这件事好久了 只不过之前是C 自然而然得开始研究epoll 早就听说过epoll的大名 只不过网上的教程似乎没多少 并且感觉也没怎么把用法给讲完整 好在 通过几天的学习 也算是有所积累
  • 解决使用InfluxDBClient报错influxdb.exceptions.InfluxDBClientError: 401 unauthorized

    解决方案 查看自己的InfluxDB数据库版本 如果版本是1 8 或是2 x 则 首先卸载influxdb pip uninstall influxdb 然后安装 pip install influxdb client ciso 后续使用i
  • K8S-微服务组件

    微服务组件包括哪些 一个完整的微服务包括的组件 注册中心 配置中心 熔断 限流 链路跟踪 路由 在微服务中 有些组件为必须组件 必须启动存在 客户端才能正常调用 必须组件 注册中心 后台服务 Provider 非必须组件 配置中心 熔断 限
  • select poll epoll

    Select select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理 用Select就可以完成非阻塞 所谓非阻塞方式non block 就是进程或线程执行此函数时不必非要等待事件的发生 select在socket编程中
  • xcodebuild使用

    转自 xcodebuild命令简单使用 简书 流程 build archive IPA teamid xcodebuild命令简单使用 前提准备证书并熟悉xcodebuild介绍 以及官方文档 xcodebuild showsdks查看可用
  • vue2安装ant-design UI报错 ERR! peer vue@“>=3.2.0“ from ant-design-vue@3.2.15

    npm install ant design vue save 安装报错 使用的是vue2 如图 npm ERR code ERESOLVE npm ERR ERESOLVE unable to resolve dependency tre
  • JSP request对象功能详解说明

    转自 JSP request对象功能详解说明 下文笔者讲述request对象的功能简介说明 如下所示 request的功能 request是HttpServletRequest类的实例 request对象中封装了客户端请求的数据信息 通过获