JSP隐含对象 request(2)

三.request隐含对象

客户端通过HTTP请求提交的信息会被servlet容器封装在request对象中,jsp页面程序通过request对象可操作客户端请求参数(parameter),属性(attribute)和客户端输入流等数据;

parameter参数一般是由客户端通过HTTP POST或GET方法提交过来的参数,一般来客来自客户端或有上一个程序转发;

attribute属性主要是服务器程序产生的数据产生的参数,一般不是来自客户端;

(1)客户端传递给服务器的参数最常见的是表单数据或附在URL中的参数,其中URL中的参数是指URL“?”后面的参数,称之为查询串(query string)参数,例如http://localhost/exam.jsp?name=tomcat中的“name=tomcat”。

(2)用request读取单值参数

所谓单值参数是指:一个变量最多有一个值。用request对象的getParameter()方法读取这些参数。getParameter()用于读取指定变量名的参数值,

方法的定义为:public java.lang.String getParameter(java.lang.String name)

方法的形参是参数的变量名,以String形式返回变量的值。如果request对象中没有指定的变量,则返回null。

(3) request作用范围变量

服务器端的两个JSP/Servlet程序间要交换数据时,可通过request作用范围变量来实现。request作用范围变量也叫request属性(attributes),

是类似于“name=value”的属性对,由属性名和属性值构成,属性值一般是一个Java对象,不是Java基本数据类型数据。Servlet程序A要把数据

对象传递给Servlet程序B时,程序A通过调用request.setAttribute()把数据对象写入request作用范围,并通过request转发跳转到程序B,程序A的

request对象被转发给程序B,在程序B中通过request.getAttribute()从request作用范围读取数据对象。

通过request.setAttribute()方法将一个属性值对象写入request对象中,或者说把一个属性值对象定义为request作用范围变量,实际上是把属性值对象与

request隐含对象绑定,使属性值对象本身的生命周期和request对象的生命周期直接相关,在当前request隐含对象有效的范围内,与之绑定的属性值对象也是有效的,可通过reuqest.getAttribute()方法读取这些有效的属性值对象,当request对象生命期结束时,与之绑定的request属性变量会变成垃圾对象而被回收。

request作用范围变量的变量名可以采用Java包的命名方式,例如:com.abc.mis.login.name、com.abc.mis.login.pw等,变量名尽可能唯一,并且

不要与Java/J2EE的包名/类名相同

在JSP中,除了request作用范围变量外,还有page、session和application作用范围变量,它们的基本含义都是把属性值对象与某个有生命周期的JSP隐含对象相绑定,使属性值对象有一定的生命周期,或者说使属性值对象在一定的作用范围内有效。定义作用范围变量一般是调用JSP隐含对象中的setAttribute()方法,读取作用范围变量一般是调用getAttribute()方法。

1、setAttribute()/getAttribute()方法

request.setAttribute()用于把一个属性对象按指定的名字写入request作用范围,它的语法为:

public void setAttribute(java.lang.String name, java.lang.Object o)

第一个形参是作用范围变量名,名字要唯一,第二个形参是属性值对象。

request.getAttribute()从request作用范围读出指定名字的属性对象,它的语法为:

public java.lang.Object getAttribute(java.lang.String name)

形参是属性值对象的变量名,方法返回的对象是Object类型,一般要进行强制类型转换,还原属性值对象的原本数据类型。

2.getRequestDispatcher()

两个Servlet程序间要利用request作用范围变量来传递数据时,要用转发跳转操作实现从第一个Servlet程序A跳转到第二个Servlet程序B,

跳转时,程序A中的request和response隐含对象会被自动转发给程序B。

request转发器(RequestDispatcher)的作用是获得目标资源的转发器,通过转发器将当前Servlet程序的request和response对象转发给目标资源,

并跳转至目标资源上运行程序,这样,目标资源就可通过request对象读取上一资源传递给它的request属性。

equest. getRequestDispatcher()的作用是返回目标资源的RequestDispatcher对象,

形参是当前Web应用目标资源的URI,可以使用相对路径或绝对路径。

RequestDispatcher中主要的方法有:

public void forward(ServletRequest request, ServletResponse response)

throws ServletException,java.io.IOException

该方法能够把当前Servlet程序的request和response隐含对象转发给目标资源,并跳转至目标资源运行代码。形参是当前Servlet程序的request和response隐含对象。

forward()方法在response信息提交前调用。如果在调用forward()之前已经刷新了response输出缓冲区,那么转发会引发异常。在执行跳转动作前,当前response对象输出缓冲区中的信息将被清空。

3、removeAttribute()

此方法的作用是从request作用范围中删除指定名字的属性,它的语法为:

public void removeAttribute(String name)

形参是属性名。例如:request.removeAttribute(“name”);

4、setCharacterEncoding()

定义request对象中的parameter参数的字符编码标准。例如,parameter参数如果有中文,在读取参数前调用此方法,设置参数的编码标准为GB2312,可以解决以POST方式提交参数的中文乱码问题。

时间: 2024-10-17 12:29:27

JSP隐含对象 request(2)的相关文章

JSP简明教程(三):JSP隐含对象

所谓隐含对象就是已经被系统定义好的一些对象,可以直接使用.JSP中有以下几个隐含对象: request response out 可以使用out.flush来将缓冲区中的数据全都发送到客户端. session application 与整个应用的上下文有关. config pageContext 与JSP页面的上下文有关. page 在JSP页面中相当于this指针. exception 这个对象中包含了从先前页面中包含的异常信息. 下面请看一个使用隐含对象的例子: <% out.println

JSP隐含对象(1)

一.JSP隐含对象初见: (1)面试的时候总会有9大隐含对象,下边就详细介绍一下: (2)在JSP页面中,经常要处理request请求.response响应等信息,为了简化程序设计,JSP规范定义了常用的9个隐含对象(implicit objects), 这些隐含对象不需要在JSP页面中用new关键字来创建,而是由Servlet容器来创建与管理,并传递给JSP页面的Servlet实现类使用. (如下图) (3)在JSP页面Servlet实现类的_jspService()方法内部,自动初始化JSP

JSP隐含对象response实现文件下载的两种方式

一.JSP隐含对象response实现文件下载的介绍 (1)在JSP中实现文件下载最简单的方法是定义超链接指向目标资源,用户单击超链接后直接下载资源,但直接暴露资源的URL 也会带来一些负面的影响,例如容易被其它网站盗链,造成本地服务器下载负载过重. (2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存 为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,这种下载方法的优点是服 务器端资源路径的

学习笔记(三)GenericServlet HttpServlet 转发和重定向 JSP及隐含对象 域对象

7. MVC 设计模式. 6. 和属性相关的方法: 1). 方法 void setAttribute(String name, Object o): 设置属性  Object getAttribute(String name): 获取指定的属性 Enumeration getAttributeNames(): 获取所有的属性的名字组成的 Enumeration 对象removeAttribute(String name): 移除指定的属性 2). pageContext, request, se

JSP的9个隐含对象

JSP的9个隐含对象内置对象,不需要预先声明就可以在jsp或表达式中随意使用. requestjavax.servlet.ServletRequest的子类型  HttpServletRequest封装了由WEB浏览器或者其他客户端成成的Http请求的细节(参数,属性,消息头,数据) 作用范围:用户请求期 responsejavax.servlet.ServletResponse的子类型  HttpServletResponse此对象封装了返回到Http客户端的输出,提供设置响应消息头( 200

JSP中九个隐含对象

JSP中9个隐含对象 隐含对象 所属的类 说明 request javax.servlet.http.HttpServletRequest 客户端的请求信息 response javax.servlet.http.HttpServletResponse 网页传回客户端的响应 session javax.servlet.http.HttpSession 与请求有关的会话 out javax.servlet.jsp.JSPWriter 向客户端浏览器输出数据的数据流 application java

[原创]java WEB学习笔记14:JSP的9 个隐含对象 及 JSP 的基本语法

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

Jsp的九个隐含对象

JSP的9个隐含对象(内置对象) 不需要预先声明,就可以在jsp或者表达式中随意使用 out javax.servlet.jsp.JspWriter类型,代表输出流的对象.作业域:页面的执行期. request javax.servlet.ServletRequest的子类型 HttpServletRequest 封装了由web浏览器或者其他客户端生成的Http请求的细节(参数,属性,消息头,数据)作用域:用户请求期 response javax.servlet.ServletResponse的

JSP中的隐含对象

什么是JSP中隐含对象:容器自动创建,在JSP文件中可以直接使用的对象. 作用:JSP预先创建的这些对象可以简化对HTTP的请求,响应信息的访问. JSP中的隐含对象: 输入输出对象:request.response.out 作用域通信对象:session.application.pageContext Servlet对象:page.config 异常对象:Exception 隐含对象                           类型