Java Server Pages 内置对象

JSP九大内置对象:

a、JSP内置对象是Web容器创建的一组对象,【不使用new关键字】就可以使用的内置对象。例如:out

b、JSP九大内置对象:

五大常用对象:   out,request,response,session,application

其余四大对象:   Page,pageContext,exception,config

1.out内置对象:

2.request内置对象,常用方法如下:

request 对象是 javax.servlet.httpServletRequest类型的对象。 该对象代表了客户端的请求信息,

主要用于接受通过HTTP协议传送到服务器的数据。(包括头信息、系统信息、请求方式以及请求参数等)。

request对象的作用域为一次请求。

a.  <%request.setCharacterEncoding("utf-8"); %>//解决中文乱码,但不能解决URL传递中文出现的乱码

【<a href="request.jsp?username=李四">测试url传参数</a>】

其解决方法为:在server.xml中修改Connector,在里面添加:URIEncoding="utf-8"

b.  String getParameter(String xxx) 返回xxx指定参数的参数值

c.  String[] getParameterValues(String xxx) 返回包含参数xxx的所有值的数组

d.  void setAttribute(String,Object);存储此请求中的属性

e.  int getServerPort();//返回服务器接受此请求所用的端口号

f.  String getCharacterEncoding();//返回字符编码方式

g.  void setCharacterEncodinng();//设置请求的字符编码方式

h.  int getContentLength();//返回请求体的长途(以字节数)

i.  String getRemoteAddr();//返回发送此请求的客户端IP地址

j.  String getRealPath(String path);//返回虚拟路径的真实路径

k.  String request.getContextPath();//返回上下文路径

3.response内置对象

response 代表的是对客户端的响应,它是HttpServletResponse类的实例。

主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。

response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。

常用方法如下:

a. String getCharacterEncoding();返回响应用是何种字符编码

b. void setContentType(String type);设置响应的MIME类型

c. PrintWriter getWriter();返回可以向客户端输出字符的一个对象

d. response.sendRedirect("xxx.jsp"); 请求客户端重定向:如定向到xxx.jsp页面

注意:通过response.getWriter()获取的PrintWriter对象,在打印输出时【提前】于内置的out对象。

不过在写好out.println()之后,可以通过flush()方法将缓冲区内容强制写出,这样就会把文字在前面显示。

4.session内置对象(存在服务器内存中):

什么是session:HttpSession类的实例,从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。

当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,

服务器应当通过某种办法知道这是同一个客户,这就需要session对象。

session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,

JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。

当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,

直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。

当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。

session对象存在一定时间过期问题,所以存在session中的名值对会在一定时间后失去,可以通过更改session有效时间来避免这种情况。

同时编程时尽量避免将大量有效信息存储在session中,request是一个不错的替代对象。

session内置对象常用方法:

a.long getCreationTime();//返回session创建时间

b.public String getId();//返回session创建时JSP引擎为它设的唯一ID号

c.public Object setAttribute(String name,Object value);//使用指定名称将对象绑定到此会话

d.public Object getAttribute(String name);//返回此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null

e.String[] getVauleNames();//返回一个包含session中所有可用属性的数组

f.int getMaxInactiveInterval();//返回两次请求间隔多长时间此session被取消(单位秒)

session生命周期:分为三步,一:创建 二:活动 三:销毁

一.创建session的过程其实就是上文中介绍sessionID的过程。

二. 活动:

①某次会话当中通过超链接打开的新页面属于同一次会话

②只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一个项目资源时属于同一次会话

③除非本次会话的所有页面都关闭后在重新访问某个JSP或者servlet将会创建新的会话

注意:注意此时原有会话还存在,只是这个旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交给服务端校验

三. 销毁:session的销毁只有三种方式

①调用session.invalidate()方法

②Session过期(超时),Tomcat默认设置时间为30分钟,可以通过session.setMaxInactiveInterval(时间);单位是秒,来设置session的时长。

③服务器重新启动

在web.xml文件中配置超时会话销毁也可以

<!-- 设置会话一分钟后过期,注意此处的单位为分钟-->

<session-config>

<session-timeout>1</session-timeout>

</session-config>

5.Application内置对象

a、实现了用户间数据的共享,可存放全局变量。(类似静态对象)

b、开始于服务器启动,终止于服务器的关闭(生命周期)

c、在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作

d、在任何地方对application对象属性进行操作,都将影响到其他用户对此的访问

e、application对象是ServletContext类的实例

Application对象常用方法:

a.pblic void setAttribute(String name,Object value);使用指定名称将对象绑定到此会话

b.public Object getAttribute(String name);返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null.

c.Enumeration getAttributeNames();返回所有可用属性那个名的枚举

d.String getServerInfo();返回JSP(SERVER)引擎及版本号6:page内置对象

page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例。常用方法如下:

a. class getClass(); //返回此Object类

b. int hashCode(); //返回此Object的hash码

c. boolean equals(Object obj); //判断此Object是否与指定的Object对象相等

d. void copy(Object obj); //把此Object复制到指定的Object对象中

e. Object clone(); //克隆此Object对象

f. String toString(); //把此Object对象转换为String类的对象

g. void notify(); //唤醒一个等待的线程

h. void notyfyAll(); //唤醒所有等待的线程

i. void wait(int timeout); //使一个线程处于等待直到timeout结束或被唤醒

j. void wait(); //使一个线程处于等待直到被唤醒

7.pageContext内置对象

* pageContext对象提供了对JSP页面内所有的对象及名字空间的访问

* pageContext对象可以访问到本页所在的session,也可以本页所在的application的某一属性值

* pageContext对象相当于页面中所有功能的集大成者

* pageContext对象的本类名也叫pageContext

*JspWriter getOut(); 返回当前客户端响应被使用的JspWriter流(out)

*HttpSession getSession(); 返回当前页面中HttpSession对象(session)

*Object getPage(); 返回当前页面的Object对象(Object)

*ServeletRequest getRequest(); 返回当前页面的ServletRequest对象(request)

*ServeletResponse getResponse(); 返回当前页面的ServletResponse对象(response)

*void setAttribute(String name,Object attribute); 设置属性及属性值

*void getAttribute(String name,int scope); 在指定范围内取属性的值

*int getAttributeScope(String name); 返回某属性的作用范围

*void forward(String relativeUrlPath); 使当前页面重导到另一页面

*void include(String relativeUrlPath); 在当前位置包含另一文件

8.config内置对象

config对象是在一个servlet初始化时,JSP引擎向它传递信息用的,

此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)

常用方法:

a.ServletContext getServletContext();返回含有服务器相关信息的ServletContext对象

b.String getInitParameter(String name);返回初始化参数的值

c.Enumeration getInitParameterNames();返回Servlet初始化所需所有参数的枚举

9.Execption对象

exception对象是一个异常对象,当一个页面在运行过程中规发生了异常,就会产生这个对象。

如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。

实际上是java.lang.Throwable的对象,常用方法如下:

a. String getMessage();返回描述异常的消息

b. String toString();返回关于异常的简短描述消息

c. void printStackTrace();显示异常及其栈轨迹

d. Throwable FillInStackTrace();重写异常的执行栈轨迹

使用方法:

a. 在可能会抛出异常的页面page指令里,设置errorPage="xxx.jsp",表示出现异常将抛给xxx页面去处理

b. 在xxx页面里,要使用Exception对象,需要把page指令里的isErrorPage属性设置为true。

时间: 2025-01-14 09:22:25

Java Server Pages 内置对象的相关文章

java web 程序---内置对象application的log方法的使用

application的主要方法里,有log方法,是日志文件里可以查看到信息的. 当老师写好代码后,他发现在tomact里的log目录下找不到信息,原因是:我们用myeclipse这个客户端软件,应该把服务器关闭,而是去bin目录下,手动开启服务器 即startup.bat.这个文件,然后在log目录下查到了信息: 这里有截图,我输入的用户名,这里当程序运行后是个空白页面,只有到log目录下才可以查看到信息. 代码: login.jsp ? 1 2 3 4 5 6 7 <body>     &

Java EE JSP内置对象及表达式语言

一.JSP内置对象 JSP根据Servlet API规范提供了一些内置对象,开发者不用事先声明就可使用标准变量来访问这些对象. JSP提供了9种内置对象: (一).request 简述: JSP编程中最常用的对象,代表来自客户端的请求,调用request对象相应的方法可以获取关于客户请求的信息. 常见方法的用法示例: 1 <font size=5> 2 <br>客户端使用的协议是: 3 <% 4 String protocol = request.getProtocol();

9.Java web&mdash;JSP内置对象

容器内置了9大对象,这些对象在jsp页无需实例化,可以直接使用. 分别为request. response .session. application .out. pageContext .config .page. exception 1)request对象 request封装了由客户端请求的http所有细节,包括HTTP头信息,系统信息,请求方式,请求参数 request.getParameter("参数name");  //获取请求的url参数.不存在此参数返回null,存在参数

【Java基础】——JSP九个内置对象

何为JSP? 要解释JSP的九个内置对象,必须先要搞懂何为JSP?JSP全称Java Service Pages中文:Java服务器页面.其实看到JSP学过.NET都可能对想到ASP,没错,两者确实很像.ASP是在HTML页面中加入C#用于显示层,像后台传递数据之类.而JSP是在HTML页面注入Java语言,便于向后端传递信息.JSP从本质上来分析就是一个简化版的Servlet.而jsp和Servlet的区别就是,jsp需要Servlet容器先编译成Servlet类,然后才能运行它. 在Tomc

java基础篇---JSP内置对象详解

在JSP中为了简化用户的开发,提供了九个内置对象,这些内置对象将由容器为用户进行实例化,而用户直接使用即可,而不用像在java中那样,必须通过关键字new进行实例化对象之后才可以使用. No. 内置对象 类型 描述 1 pageContext javax.servlet.jsp.PageContext JSP的页面容器 2 request javax.servlet.http.HttpServletRequest 得到用户的请求信息 3 response javax.servlet.http.H

asp.net内置对象Server

1.Server是Context的一个属性,是HttpServerUtility类的一个对象. 2.Server.HtmlDecode(),Server.HtmlEncode(),Server.UrlEncode(),Server.UrlDecode()是对HttpUtility类中相应方法的一个代理调用.有的时候很难拿到Server对象,使用HttpUtility. 3.Server.Transfer(path)内部重定向请求,Server.Transfer("hellow.aspx"

ASP内置对象—Request、Response 、Server、Application 、ObjectContent(一)

ASP提供的可用在脚本中的内置对象,使用户更容易的收集通过浏览器请求发送的信息.响应浏览器以及存储用户信息,简化了开发人员的工作. 常见内置对象如下: Request 对象,用于访问任何使用HTTP请求传递的信息. Response 对象,用于控制发送给浏览器的信息. Server 对象,用于访问服务器上的方法和属性. Application 对象,用于共享应用程序信息. ObjectContent 对象,用于控制ASP脚本初始化事务. 每个内置对象都有各自的属性(Property).方法(Me

ASP内置对象—Request、Response 、Server、Application 、ObjectContent (二)

Response (应答)对象 Request 对象,用于在HTTP请求期间,访问任何客户端浏览器传递给服务器的信息,包括通过URL传递的参数信息.使用GET方法或POST方法传递的HTML表单数据.Cookie和用户认证信息等. 页面重定向,并传递参数(防乱码处理) Response.Redirect("~/modifyReader.aspx?key="+ Server.UrlEncode(key)); Cookie的存储 通过Response对象的Cookie集合存储. <s

JAVA学习-内置对象

什么是内置对象? 就是Web容器创建的一组对象,不需要是用new关键字就可以直接使用的内置对象. JSP的九大内置对象: 常用的有:out对象,request对象,response对象,session对象,application对象 不常用的有:Page对象,pageContext对象,exception对象,config对象. out对象:是JSPWriter类的实例,负责向客户端输出内容的常用对象.常用方法有: void println() 向客户端打印字符串. void clear()清除