request对象与response对象

一.request对象

1.通过request对象可以获得客户端输入的信息。request对象包含了从客户端传来的请求信息。

请求的参数是一个请求的组成部分,它们被作为字符串从客户端传送到JSP/Servlet容器中,并被用于初始化request对象。

 

2.request对象是javax.Servlet.http.HttpServletRequest接口,它主要可用的方法如下:

1)getCookies()

该方法返回客户端的Cookie对象数组,这些Cookie对象是javax.servlet.http.Cookie的实例对象。

 

2)getHeader(String name)

该方法可以获取http协议所定义的特定的http头文件的信息。name可以使HTTP文件头的名字,例如User-Agent。

 

3)getAttribute(String name)

返回绑定在name属性上的值,如果没有,则返回null。

 

4)getAttributeNames()

返回和当前的request对象绑定在一起的所有的属性的名字。返回值是一个枚举对象。

 

5)getHeaderNames()

使用该方法返回一个枚举对象,包含当前request对象中包含着的每一个http的头文件的名字。

 

6)getMethod()

该方法可以返回当前客户端向服务器端传输协议的方式,可能的有POST,GET,PUT等等。

 

7)getParameter(String name)

可以获得客户端传输给服务器端得信息。

 

8)getParameterNames()

可以获取客户端传输给服务器端所有的参数名字。返回值是一个枚举类型。

 

9)getParameterValues(String name)

与getParameter(String name)的不同在于,使用getParameter(String name)只返回name当前的值,而之前的值都被忽略了,而getParameterValue(String name)则会返回所有的值。

 

10)getQueryString()

使用该方法可以获得请求字符串,该字符串由客户端以GET方式传向服务器端。

 

11)getRequestURL()

getRequestURL()方法可以获得和当前request对象相应的URL地址,有人就说客户端通过浏览器所请求的URL地址。

 

12)getServletPath()

该方法可以获得客户端所请求的servlet的地址。

 

13)setAttribute(String name,Java.lang.Object obj)

该方法可以将某个参数和目前的request对象绑定起来。

 

14)getServerName()

该方法返回服务器的名称。

 

15)getServerPort()

用于获取服务器提供的HTTP服务的端口。

 

16)getRemoteAddr()

该方法用于获得发送HTTP请求的客户端地址。利用这个方法,我们可以屏蔽来自某些IP地址的访问。

 

17)getRemoteHost()

该方法可以获取当前HTTP连接的客户端计算机名称,返回的是IP地址。

 

18)getProtocol()

可以获取客户端向服务器端发送信息所遵循的协议名称。

例如:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body bgcolor="white">
<h1>Request Information</h1>
<font size="4">
JSP Request Method: <%out.println(request.getMethod()); %>
<br>
Request URI: <%out.println(request.getRequestURI()); %>
<br>
Request Protocol: <%out.println(request. getProtocol()); %>
<br>
Servlet path: <%out.println(request.getServletPath ()); %>
<br>
Path info: <%out.println(request.getPathInfo()); %>
<br>
Path translated: <%out.println(request.getPathTranslated()); %>
<br>
Query string: <%out.println(request.getQueryString()); %>
<br>
Content length: <%out.println(request.getContentLength()); %>
<br>
Content type: <%out.println(request.getContentType()); %>
<br>
Server name: <%out.println(request.getServerName()); %>
<br>
Server port: <%out.println(request.getServerPort()); %>
<br>
Remote user: <%out.println(request.getRemoteUser()); %>
<br>
Remote address: <%out.println(request.getRemoteAddr()); %>
<br>
Remote host: <%out.println(request.getRemoteHost()); %>
<br>
Authorization scheme: <%out.println(request.getAuthType()); %>
<hr>
The browser you are using is: <%out.println(request.getHeader("User-Agent")); %>
<hr>
</font>
</body>
</html>

 

二.response对象

1.response对象的作用是处理HTTP连接信息,如cookie,HTTP文件头信息等,它有很多功能是和request对象相匹配的。

 

2.response对象的常用方法:

1)addCookie(Cookie cookie)

当用于访问某个站点时,我们可以用此方法添加一个cookie对象,并将它发送到客户端,保存到客户端操作系统的某个特定目录下,用来保存客户的特定信息。当用户再次访问浏览器时,浏览器会自动将这个Cookie对象发送会服务器端,调用request对象的getCookie()方法可以获得所有存在的Cookie对象,getCookie返回的是一个数组。Cookie对于不同的客户来说都是专有的。

 

2)addHeader(String name,String value)

addHeader是添加HTTP文件头信息,这些信息将会传到客户端,发送特定的HTTP文件头信息,可以控制客户端和服务器端的连接。

 

3)containsHeader(String name)

该方法用于判断指定名字的HTTP文件头是否存在,返回值是布尔类型。

 

4)sendError(int sc)

该方法用于向客户端发送错误消息,例如505:服务器内部消息。

 

5)sendRedirect(String url)

和<jsp:forward>动作指令的功能一模一样,但是向目标程序传递HTTP参数不是很方便,在使用此方法之前,必须保证JSP程序没有任何可见的输出被送往客户端。

 

6)setHeader()

是一个通用的标头设定方法,您可以用它来设定任何「名称/值」的标头.

7)setIntHeader()

专门用来设定整数值标头的版本.


8)setDateHeader()

是setHeader()的Date设定版本,第二个参数是设定Date的Long数值,0表示GMT 1970/1/1 00:00。

 

9)setStatus()

是用来设定回应的状态码,例如404 Not Found,HttpServletResponse类中提供了一些助忆常数设定,例如SC_NOT_FOUND就是表示404状态码(可以在Servlet API文件中查询相关的助忆常数)

文章来源:http://www.cnblogs.com/karying/archive/2009/10/21/2015408.html

转载于:https://www.cnblogs.com/asher/archive/2012/12/17/2821211.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/386343.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯,字节,阿里,小米,京东大厂Offer拿到手软!讲的明明白白!

缘起 随着Android开发行业逐渐饱和&#xff0c;对Android开发者的面试要求也越来越高&#xff0c;是否掌握底层源码&#xff0c;是面试官衡量一名Android开发者的重要依据。有没有读过源码也可以很大程度上判断你这个人的学习能力和思维方式。无论你开发经验几年&#xff0c;面…

HTML div 滚动条样式设计

::-webkit-scrollbar-track-piece{ background-color:#fff;/*滚动条的背景颜色*/ -webkit-border-radius:0;/*滚动条的圆角宽度*/ } ::-webkit-scrollbar{ width:8px;/*滚动条的宽度*/ height:8px;/*滚动条的高度*/ } ::-webkit-scrollbar-thumb:vertical{/*垂直滚动条的样式*/…

膜拜大佬!5年经验Android程序员面试27天,高级面试题+解析

前言 网上关于启动优化的文章多不胜数&#xff0c;内容千篇一律&#xff0c;大都是列举一些耗时操作&#xff0c;采用异步加载、懒加载等。 而在面试过程中&#xff0c;关于启动优化的问题&#xff0c;如果只是很表面地回答耗时操作应该放在子线程&#xff0c;显然太过于普通…

膜拜大佬!不同层级的Android开发者的不同行为,社招面试心得

都说Android最近行情不好&#xff0c;很多人都遇到瓶颈或放弃或转行。其实这种情况17年18年也是如此&#xff0c;相对比之下&#xff0c;个人认为今年比去年好多了&#xff0c;Android接下来将会走向复苏的春天。 自从Google开始推出AMP项目已经有一年了。除此之外&#xff0c;…

zookeeper的四种类型的节点

znode创建类型(CreateMode),有以下四种&#xff1a; PERSISTENT 持久化节点PERSISTENT_SEQUENTIAL 顺序自动编号持久化节点&#xff0c;这种节点会根据当前已存在的节点数自动加 1EPHEMERAL 临时节点&#xff0c; 客户端session超时这类节点…

膜拜大牛!Android开发最佳实践手册全网独一份,终获offer

前言 首先介绍一下自己&#xff0c;计算机水本&#xff0c;考研与我无缘。之前在帝都某公司算法部实习&#xff0c;公司算大公司吧&#xff0c;然而个人爱好偏开发&#xff0c;大二的时候写个一个app&#xff0c;主要是用各种框架。 学习路径&#xff1a;如何循序渐进、阶段性…

英语每日一句

从今天开始学英语了&#xff1a;还蛮重要的。 It s not what I ask for.这不是我要的那样。 你能写出&#xff0c;你第一时间想到的一句英语吗&#xff1f; 转载于:https://www.cnblogs.com/igouz/archive/2008/11/28/1343014.html

膜拜大牛!HTTPS面试常问全解析,吊打面试官系列!

写在前面 1月初失业&#xff0c;找了近2个多月的工作了&#xff0c;还没找到心仪的工作&#xff0c;感觉心好慌&#xff0c;不知道该怎么办了&#xff1f;找不到工作的时候压力很大&#xff0c;有人说自信会很受打击&#xff0c;还有人说会很绝望&#xff0c;是人生的低谷………

vSphere HA 原理与配置

内容预览&#xff1a; 1. vSphere HA 概述 2. vSphere HA 提供的保护级别 3. vSphere HA运行原理 4. vSphere HA 故障支持场景 5. vSphere HA接入控制策略 6. 如何选择vSphere HA 的接入控制策略 7. 配置vSphere HA的基础条件 8. 虚拟机组件保护 9. 开启vSphere HA功能 1. v…

自学Android!Android高级工程师面试题-字节跳动,附答案

前言 大厂面试一直都是程序员圈内摸鱼时间津津乐道的话题&#xff0c;进大厂想必也是无数程序员的梦想。 关于“原理”的问题&#xff0c;几乎是现如今Android开发岗必问的问题&#xff0c;尤其在大厂面试中更为突出。有过大厂面试经验的小伙伴应该知道&#xff1a;大厂的面试…

WEB可以调节的框架页

<html> <head><meta HTTP-EQUIV"Content-Type" CONTENT"text/html; charsetgb2312"><title>主框架[www.tecsoon.com]</title></head><frameset cols"30%,*"> <frame name"dir" target&…

被面试官问的Android问题难倒了,成功入职字节跳动

感悟 这个世界有一个“二八原则”在好多地方都发挥着作用&#xff0c;在Android开发上我认为也一样有用。做一个Android开发&#xff0c;你也许只会用到Android开发知识中的20%&#xff0c;有80%其实你学了也不一定会用。 而面试官也一样&#xff0c;他也可能只掌握了20%的知…

PANEL中显示窗体

var frm: TForm2;//定义窗口类begin PageControl1.activepage:tabsheet1; if Panel1.ControlCount 0 then begin frm : Tform2.Create(self); frm.Parent : Panel1; frm.BorderStyle : bsnone; frm.WindowState : wsmaximized; if skindata1.active…

被面试官问的Android问题难倒了,系列篇

本篇将由 环境搭建、实现原理、编程开发、插件开发、编译运行、性能稳定、发展未来 等七个方面&#xff0c;对当前的 React Native 和 Flutter 进行全面的分析对比&#xff0c;希望能给你更有价值的参考。 前言 移动端跨平台在经历数年沉浮之后&#xff0c;如今还能在舞台聚光…

使用screen管理后台程序

我们常需要SSH 或者telent 远程登录到Linux 服务器&#xff0c;经常运行一些需要很长时间才能完成的任务&#xff0c;在此期间不能关掉窗口或者断开连接&#xff0c;否则这个任务就会被杀掉&#xff0c;一切半途而废了。这时&#xff0c;我们可以用screen命令解决这个问题。 Sc…

被面试官问的Android问题难倒了,面试必会

开头 1、一定要把基本的数据结构&#xff0c;经典的算法&#xff0c;Unix编程&#xff0c;程序编译链接及计算机原理等基础知识扎牢&#xff0c;这些会长远影响你的职业发展。 2、 推荐从C语言入门&#xff0c;不单是因为很多操作系统、网络协议栈开源代码由C/C实现&#xff…

jquery checkbox 实现单选

最近在用javascript的时候发现网上实现checkbox单选的代码都已经过时了。 用着几年前的代码发现根本不行了 原因是jquery api已经更改 http://api.jquery.com/prop/ 这里是新的代码 $(function(){$(":checkbox").each(function(){$(this).click(function () {if ($(t…

覆盖所有面试知识点,建议收藏

一、前言 刚拿到字节offer&#xff0c;经历了5次面试&#xff0c;其中4轮技术面&#xff0c;1轮HR面试。在这里分享一下自己的面试经验和学习心得。希望能够帮助更多的小伙伴。 我本科毕业于四川师范学院计算机系&#xff0c;刚毕业时也是小白&#xff0c;也是一步步成成起来…

Codeforces- Educational Codeforces Round 69

A题 DIY Wooden Ladder 签到题&#xff0c;求n-2和第二大的最小值 #include<bits/stdc.h> using namespace std; int arr[100020]; int main() {int t,n;cin>>t;while(t--){cin>>n;for(int i0;i<n;i)cin>>arr[i];sort(arr,arrn);cout<<min(ar…

覆盖所有面试知识点,持续更新中

我所接触的Android开发者&#xff0c;百分之九十五以上 都遇到了以下几点致命弱点&#xff01; 如果这些问题也是阻止你升职加薪&#xff0c;跳槽大厂的阻碍。 那么我确信可以帮你突破瓶颈&#xff01; 应届坎坷求职路 一个广州非985/211普通本科生&#xff0c;计算机科学…