jsp中的隐含对象(内置对象)
JSP 隐含对象

数据类型则要进行对象数据类型的转换。如整数1,则转换为 new Integer(1); •获得属性 – 当我们使用getAttribute(String name)取得name 属性的值时, 它返回一个ng.Object类型的对象,因此,还必须根据 name 属性值的类型进行类型转换 (Casting)工作。 – 例如,如果要取得String 类型的Name 属性时: String userName = (String)pageContext.getAttribute(“userName”); 或者String userName = pageContext.getAttribute(“userName”).toString();
• 3 、JSP中的隐含对象
• 4、错误处理
3 Sept. 2008 Confidential
JSP中隐含对象的概念
一. 什么是JSP的隐藏对象 二. JSP中有哪些隐藏对象
3 Sept. 2008 Confidential
JSP隐藏对象的由来
下面是一个普通的jsp页面文件helloworld.jsp
对当前JSP页面的引用,即 Java中的this
JSP页面的ServletConfig对象 响应信息 JSP的数据输出对象 异常处理
3 Sept. 2008 Confidential
主要内容
• 1 、JSP中隐含对象的定义 • 2 、属性(Attribute) 与范围
• 3 、JSP中的隐含对象
• 4、错误处理
Object getAttribute(String name)
void removeAttribute(String name)
取得name属性的值
删除名称为name的属性
内置对象的概念

内置对象的概念内置对象是指在编程语言中提供的一组已定义好的对象,可以直接使用而无需再进行额外的定义或实现。
这些内置对象具有常用的属性和方法,以便开发人员更加便捷地进行编程和开发。
在不同的编程语言中,内置对象的具体名称和功能可能会有所不同,但它们的作用是非常相似的。
内置对象的存在,为开发人员提供了许多常用功能的实现,大大简化了开发流程,提高了开发效率。
在JavaScript中,常见的内置对象包括全局对象、数学对象、数组对象、字符串对象、日期对象等。
全局对象包括全局变量和函数,如window、document 等。
数学对象提供了一系列数学计算相关的函数和常量,如Math.PI、Math.abs()等。
数组对象提供了对数组进行操作的方法和属性,如push()、pop()、length 等。
字符串对象则提供了对字符串的操作方法和属性,如indexOf()、substring()等。
日期对象则提供了对日期的操作和处理方法,如getFullYear()、getTime()等。
这些内置对象为开发人员提供了丰富的功能,可以用于完成各种复杂的编程任务。
比如,在JavaScript中,我们可以使用内置对象Math来进行常用的数学计算。
例如,要计算一个数的绝对值,可以调用Math对象的abs()方法。
除此之外,Math对象还提供了许多其他常用的数学计算方法,如对数、三角函数等等。
通过利用这些内置对象,开发人员可以更加方便地进行数学计算,避免了自己手动编写复杂的数学计算代码。
另一个例子是数组对象,在JavaScript中,数组对象提供了一组用于操作和处理数组的方法和属性。
通过这些方法和属性,开发人员可以很方便地对数组进行添加、删除、修改等操作。
比如,可以使用数组对象的push()方法向数组中添加一个元素,使用pop()方法删除数组的最后一个元素。
通过使用这些方法,开发人员可以轻松地处理数组,并且无需再编写繁琐的数组操作代码。
chap4-JSP内置对象

request对象的常用方法举例
getProtocol(): 获取请求使用的通信协议,如 http/1.1等。
getServletPath(): 获取请求的JSP页面所在的路 径。
getContentLength(): 获取HTTP请求的长度。 getMethod(): 获取表单提交信息的方式,如POST
example4_8.jsp、example4_8_play_mp4.jsp
22
4.1.5处理超链接
超链接标记 <a href ="example4_9_receive.jsp>购买</a> 使用超链接标记时还可以增加参数: <a href
="example4_9_receive.jsp?id=A1001&price=876 5">购买</a> 获取参数: String idStr = request.getParameter("id");
algin= "top" checked="ok" />男生 (3)复选框checkbox <input type="checkbox" name= "item"
value="A" algin= "top" checked="ok" />足球 (4)口令框password <input type= "password" name= "me" size=
"12" maxlength="30" />
15
JSP中的内置对象详解

JSP中的内置对象<j s p:f o r w a r d><jsp:forward>是把一个请求转发到另一个JSP或Servlet或者其他的静态资源(HTML)特点:被forward转发的资源必须与发出请求的页面处于相同的上下文环境中,每当遇到此标签时,容器就会停止执行当前的JSP,转而执行被转发的资源<j s p:p a r a m>l当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给的资源是一个能动态执行的程序时,例如Servlet和JSP页面,那么,还可以使用<jsp:param>标签向这个程序传递参数信息。
l语法1:<jsp:include page="relativeURL | <%=expression%>"><jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include>l语法2:<jsp:forward page="relativeURL | <%=expression%>"><jsp:param name="parameterName" value="parameterValue|<%= expression %>" /> </jsp:include>l<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。
在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。
第4章 JSP内置对象

P
例:input1.html
J
s
如何接收多个同名参数?
P
例:request02.html
J
s
P
原因:在整个操作过程中复选框的内容只能得到一个,因 为getParameter()方法,只能接收一个参数的内容,如 果想要接收多个参数,则必须使用: public String[] getParameterValues(String name) 此方法返回一个数组,表示接收同名的一组参数。
§4.1 request对象
J 在JSP中,内置对象request封装了用户请求页面时所提 交的信息,该对象调用相应的方法可以获取封装的信息.即
s
request对象可以获取用户提交的信息。
用户在请求JSP页面时,通常会使用HTML表单提交信息,表 单的一般格式是:
<FORM method=get|post action="提交信息的目的地页面"> 提交手段
J
getParameterNames()方法
此方法可以取得表单提交的所有参数名称
例:request04.html
s
P
思考:如何同时显示复选框的全部内容?
request05.jsp
4.1.5
处理HTML标记_<Select>、<Option>格式
J
下拉式列表和滚动列表通过<Select>和<Option>标记来定义。基本格式 为:
4.1.3
J
常用方法举例
可以用内置对象request对象来获取请求所提交的各类信 息,request对象的常用方法如下:
getProtocol():获取请求使用的通信协议,如http/1.1等。 getServletPath():获取请求的JSP页面所在的目录。 getContentLength():获取HTTP请求的长度。 getMethod():获取表单提交信息的方式,如POST或GET。
第5单元 JSP内置对象

Enumeration getAttributeNamesInScope(int scope )
取得所有scope范围的属性名称组成的列举表
void removeAttribute(String name[, int scope])
内置(又称隐含)对象是特定Java类的实例, 它们由JSP引擎在运 行时根据情况自动创建并管理,在JSP页面中可以直接使用。
能实现很多功能, 如: 从客户端获得数据、向客户端发回数据、控制 传输数据的有效域和异常处理等。
对象的名称是JSP的保留字, 使用内置对象可简化应用开发。
隐含对象功能:
不必使用表达式, 直接使用out对象向客户端输出信息。
getParameter() :读取请求参数 getParameterNames():获取指定范围内的请求参数名的集合; getParameterValues():读取指定参数的所有值; getHeader():读取指定字段名的请求头信息。
此外该接口还包含大量的方法, 概括起来分为四类。
请求对象reques
在错误页面中显示出错信息。
<% String st=exception.getMessage();%>
等等… …
9种隐含对象
2
JSP内置对象的由来
3
转译为Servlet
编写jsp页面可 使用隐含对象 注意: 它们在 _jspService() 方法中定义,故 只能在脚本和 表达式中使用
页面对象: page
page对象代表当前JSP页面, 即代表转译后的Servlet
4
JSP容器将JSP页面转译成Servlet后, 将指针this赋给了page对象
jsp九大内置对象

jsp九⼤内置对象什么是内置对象 可以在JSP⽂件中直接拿来使⽤的对象 JSP⽂件翻译后⽣成的⽂件:在service⽅法中就引⼊了9个对象,所以在jsp⽂件中才可以直接使⽤九⼤内置对象有哪些四个范围对象的范围从⼩到⼤是什么: 从⼩范围到⼤范围:pageContext、request、session、applicationpageContext对象是什么 pageContext对象代表jsp页⾯上下⽂对象pageContext对象可以⼲什么 通过pageContext对象可以获取整个JSP页⾯环境中的所有数据: 获取当前JSP页⾯中的请求对象:pageContext.getRequest()。
获取当前JSP页⾯中的会话对象:pageContext.getSession()。
获取ServletContext对象:pageContext.getServletContext()。
通过pageContext对象传递数据(只能存储⼀个页⾯中的数据,⽆法跨页⾯。
可以获取include指令包含的jsp页⾯中存储的数据,但是不能获取include动作包含的jsp页⾯中存储的数据): pageContext.setAttribute(“username”,jack); //存 pageContext.getAttribute(“username”); //取 通过pageContext对象往request,session,application对象中存储数据: 向request范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.REQUEST_SCOPE); 向session范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.SESSION_SCOPE); 向application范围存储数据:pageContext.setAttribute(“username”,”jack”,PageContext.APPLICATION_SCOPE);。
第三章:JSP内置对象 (request对象、response对象session对象、application对象、cookie)

第三章:Jsp隐式对象(request对象、response对象session对象、application对象、cookie)Jsp隐式对象概述:由JSP规范提供,不用编写者实例化。
通过Web容器实现和管理。
所有JSP页面均可使用。
只有在脚本元素的表达式或代码段中才可使用(<%=使用内置对象%>或<%使用内置对象%>)。
常用九大内置对象的作用和方法1、out对象:代表提供输出流的访问。
2、request对象:request对象是从客户端向服务器端发出请求,包括用户提交的信息以及客户端的一些信息。
常用方法:getparameter()getParameterValues()setAttribute() getAttribute()3、response对象:允许直接访问HttpServletResponse对象常用方法:sendRedirect()4、session对象:允许直接访问HttpServletResponse对象常用方法:setAttribute()、getAttribute()5、application对象:用于多个程序或者多个用户之间共享数据。
常用方法:setAttribute()、getAttribute()6、config :将初始化数据传递给一个JSP页面7、page :代表JSP页面对应的Servlet类实例8、exception:针对错误网页,未捕捉的例外9、pageContext :管理网页的属性内置对象的作用域:◆application:服务器启动到停止这段时间◆session:HTTP会话开始到结束这段时间◆request:HTTP请求开始到结束这段时间◆page:当前页面从打开到关闭这段时间对于每一个用户都共享同一个对象的是:application对象,而每个用户分别使用不同对象实例的是:session对象forword和sendRedirect的区别:forword仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;sendRedirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接getParameter(String name);例题一:文件名:input.html<html>< body bgcolor="white"><font size=1><form action="requestdemo1.jsp" method=post name=form><input type="text" name="boy"><input type="submit" value="Enter" name="submit"></form></font></body></html>文件名:requestDemo1.jsp:<%@ page contentType="text/html;charset=GB2312" %><html><body bgcolor="white"><font size=4><p>获取文本框提交的信息:<%String strContent=request.getParameter("boy");%><%=strContent%> // 输出文本框boy提交的信息<p> 获取按钮的名字:<%String strButtonName=request.getParameter("submit");%><%=strButtonName%> // 输出按钮的value名字</font></body></html>例题二:设计一个简单的“JSP程序设计网上测试系统”,如下图所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
九个隐含对象(内置对象)Config request response application page pageContext out exception sessionpage对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet 类所定义的方法。
二、config 对象config 对象里存page对象代表JSP本身,更准确地说它代表JSP被转译后的Servlet,它可以调用Servlet类所定义的方法。
二、config 对象config 对象里存放着一些Servlet 初始的数据结构。
config 对象实现于javax.servlet.ServletConfig 接口,它共有下列四种方法:public String getInitParameter(name)public java.util.Enumeration getInitParameterNames( )public ServletContext getServletContext( )public Sring getServletName( )三、request 对象request 对象包含所有请求的信息,如:请求的来源、标头、cookies和请求相关的参数值等等。
request 对象实现javax.servlet.http.HttpServletRequest接口的,所提供的方法可以将它分为四大类:1.储存和取得属性方法;void setAttribute(String name, Object value)设定name属性的值为valueEnumeration getAttributeNamesInScope(int scope)取得所有scope 范围的属性Object getAttribute(String name)取得name 属性的值void removeAttribute(String name)移除name 属性的值2.取得请求参数的方法String getParameter(String name) 取得name 的参数值Enumeration getParameterNames( ) 取得所有的参数名称String[]getParameterValues(String name) 取得所有name 的参数值Map getParameterMap( )取得一个要求参数的Map3.能够取得请求HTTP 标头的方法String getHeader(String name)取得name 的标头Enumeration getHeaderNames()取得所有的标头名称Enumeration getHeaders(String name)取得所有name 的标头int getIntHeader(String name)取得整数类型name 的标头long getDateHeader(String name) 取得日期类型name 的标头Cookie [] getCookies( ) 取得与请求有关的cookies4.其他的方法String getContextPath( )取得Context 路径(即站台名称)String getMethod( )取得HTTP 的方法(GET、POST)String getProtocol( )取得使用的协议 HTTP/1.1、HTTP/1.0 )String getQueryString( )取得请求的参数字符串,不过,HTTP的方法必须为GETString getRequestedSessionId( ) 取得用户端的Session IDString getRequestURI( )取得请求的URL,但是不包括请求的参数字符串String getRemoteAddr( )取得用户的IP 地址String getRemoteHost( )取得用户的主机名称int getRemotePort( )取得用户的主机端口String getRemoteUser( ) 取得用户的名称void etCharacterEncoding(String encoding)设定编码格式,用来解决窗体传递中文的问题四、response 对象response 对象主要将JSP 处理数据后的结果传回到客户端。
response 对象是实现javax.servlet.http.HttpServletResponse 接口。
response对象所提供的方法。
1.设定表头的方法void addCookie(Cookie cookie)新增cookievoid addDateHeader(String name, long date)新增long类型的值到name标头void addHeader(String name, String value)新增String类型的值到name标头void addIntHeader(String name, int value)新增int类型的值到name标头void setDateHeader(String name, long date)指定long类型的值到name标头void setHeader(String name, String value)指定String类型的值到name标头void setIntHeader(String name, int value)指定int类型的值到name标头2.设定响应状态码的方法void sendError(int sc)传送状态码(status code)void sendError(int sc, String msg)传送状态码和错误信息void setStatus(int sc)设定状态码3.用来URL 重写(rewriting)的方法String encodeRedirectURL(String url)对使用sendRedirect( )方法的URL予以编码五、out 对象out 对象能把结果输出到网页上。
out主要是用来控制管理输出的缓冲区(buffer)和输出流(output stream)。
void clear( )清除输出缓冲区的内容void clearBuffer( )清除输出缓冲区的内容void close( )关闭输出流,清除所有的内容int getBufferSize( )取得目前缓冲区的大小(KB)int getRemaining( )取得目前使用后还剩下的缓冲区大小(KB)boolean isAutoFlush( )回传true表示缓冲区满时会自动清除;false表示不会自动清除并且产生异常处理六、session 对象session对象表示目前个别用户的会话(session)状况。
session对象实现javax.servlet.http.HttpSession接口,HttpSession接口所提供的方法long getCreationTime()取得session产生的时间,单位是毫秒String getId()取得session 的IDlong getLastAccessedTime()取得用户最后通过这个session送出请求的时间long getMaxInactiveInterval()取得最大session不活动的时间,若超过这时间,session 将会失效void invalidate()取消session 对象,并将对象存放的内容完全抛弃boolean isNew()判断session 是否为"新"的void setMaxInactiveInterval(int interval)设定最大session不活动的时间,若超过这时间,session 将会失效七、application对象application对象最常被使用在存取环境的信息。
因为环境的信息通常都储存在ServletContext中,所以常利用application对象来存取ServletContext中的信息。
application 对象实现javax.servlet.ServletContext 接口,ServletContext接口容器所提供的方法int getMajorVersion( )取得Container主要的Servlet API版本int getMinorVersion( )取得Container次要的Servlet API 版本String getServerInfo( )取得Container的名称和版本String getMimeType(String file)取得指定文件的MIME 类型ServletContext getContext(String uripath)取得指定Local URL的Application contextString getRealPath(String path)取得本地端path的绝对路径void log(String message)将信息写入log文件中void log(String message, Throwable throwable)将stack trace 所产生的异常信息写入log 文件中八、pageContext对象pageContext对象能够存取其他隐含对象。
1.pageContext对象存取其他隐含对象属性的方法,此时需要指定范围的参数。
Object getAttribute(String name, int scope)Enumeration getAttributeNamesInScope(int scope)void removeAttribute(String name, int scope)void setAttribute(String name, Object value, int scope)范围参数有四个,分别代表四种范围:PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE2.PageContext对象取得其他隐含对象的方法Exception getException( )回传目前网页的异常,不过此网页要为error page,JspWriter getOut( )回传目前网页的输出流,例如:outObject getPage( )回传目前网页的Servlet 实体(instance),例如:pageServletRequest getRequest( )回传目前网页的请求,例如:requestServletResponse getResponse( )回传目前网页的响应,例如:responseServletConfig getServletConfig( )回传目前此网页的ServletConfig 对象,例如:configServletContext getServletContext( ) 回传目前此网页的执行环境(context),例如:applicationHttpSession getSession( )回传和目前网页有联系的会话(session),例如:session3.PageContext对象提供取得属性的方法Object getAttribute(String name, int scope)回传name 属性,范围为scope的属性对象,回传类型为ObjectEnumeration getAttributeNamesInScope(int scope)回传所有属性范围为scope 的属性名称,回传类型为Enumerationint getAttributesScope(String name)回传属性名称为name 的属性范围void removeAttribute(String name)移除属性名称为name 的属性对象void removeAttribute(String name, int scope)移除属性名称为name,范围为scope 的属性对象void setAttribute(String name, Object value, int scope)指定属性对象的名称为name、值为value、范围为scopeObject findAttribute(String name)寻找在所有范围中属性名称为name 的属性对象九、exception对象若要使用exception 对象时,必须在page 指令中设定。