Fork me on GitHub

JSP内置对象

------------------siwuxie095

   

   

   

   

   

   

   

out 对象

   

out 对象是 javax.servlet.jsp.JspWriter 类的一个实例

   

   

out 向客户端/浏览器输出各种数据

   

「JSP 程序段中的 println() 和 newLine() 丢失了换行效果,可以使用 <br/> 换行」

   

   

   

out 对象还负责对输出缓冲区进行管理

   

   

   

JSP 默认的缓冲区大小是 8 KB,可以通过 page 编译指令进行设置

   

   

   

out 使用 flush() 方法强制刷新服务器输出缓冲区里的数据,

将之输出到客户端/浏览器

   

因为 JSP 的 page 编译指令的 autoFlush 属性默认为 true,

所以一般情况下,flush() 方法不会被显式调用

   

   

out 的 clearBuffer() 和 clear() 方法都是清空缓冲区中的数据,

只不过在 clear() 调用之前不能调用 flush(),否则会抛出异常

   

   

   

   

request 对象

   

request 对象是 javax.servlet.http.HttpServletRequest 类的一个实例

   

   

request 封装了客户端/浏览器的请求信息

   

   

对于 Web 应用程序而言,信息的流动应该是双向的,也就是说

Web 应用程序不仅仅是向用户进行信息展示,还需要接收来自

用户的输入(如:注册、评论)

   

Web 应用程序接收到这些信息后,会进行相应的处理,并持久化

到数据库中

   

   

Web 应用程序获取提交的表单信息的方式正是通过 request 对象

   

request 封装了从客户端向服务器发出的请求信息,通常包括用户

提交的表单信息,以及客户端的其他信息(如:Cookie)

   

   

使用 request 的 getParameter() 方法可以获取用户提交的表单数据

   

request 的大部分方法都是用于处理客户端提交请求中的各种参数和选项

   

如下:

   

request.jsp:

 

   

   

   

   

当表单信息为数组形式时,getParameter() 方法

就无能为力了

   

可以使用 setAttribute() getAttribute() 方法,

二者用于在 Web 组件之间共享信息

   

如下:

   

register.jsp 用于录入表单信息

   

   

   

do_register.jsp 用于处理表单信息:

   

   

   

welcome.jsp 用于显示表单信息:

   

   

   

   

   

response 对象

   

response 对象是 javax.servlet.http.HttpServletResponse 类的一个实例

   

   

response 封装了服务器的响应信息,即 对客户端的请求进行回应

   

   

response 还负责处理 HTTP 连接信息,如:设置 http 文件头、Cookie 等

   

   

使用 response 设置 http 文件头:

   

   

   

使用 response 实现页面跳转:

   

   

   

使用 response 设置 Cookie:

   

   

   

   

   

session 对象

   

session 对象是 javax.servlet.http.HttpSession 类的一个实例

   

   

session 用来保存会话信息,即 可以在同一用户的不同请求之间共享数据

   

   

HTTP 协议是无状态协议,即 每次客户端打开一个网页时都会单独

打开一个服务器连接,服务器本身不会记录之前客户端请求的任何

信息

   

使用 session 进行辅助,就可以记录用户之前的请求信息,从而保证

用户访问的连续状态

   

session 可以看作是一个在服务器上的保管箱,JSESSIONID 是访问时

从服务器发送到浏览器的 Cookie,也就是服务器保管箱的钥匙

   

以后浏览器每次请求中会自动带上该 JSESSIONID,这样服务器就能

识别出请求的发送者,从而判断用户是否有权限访问指定的保管箱

   

   

   

   

Tomcat 的 Web 应用程序管理中心可以查看 Session Id 等信息:

   

Tomcat Web Application Manager:http://localhost:8080/manager/html

   

   

   

   

session 的基本方法:

   

   

   

 

session 的失效时间可以通过部署描述符 web.xml 进行修改:

   

   

   

web.xml WEB-INF 目录下,如果没有可以创建:

   

点击选择工程名,右键->Java EE Tools->Generate Deployment Descriptor Stub

   

(web.xml 是应用的部署描述符,它并不是 Web 项目所必需的)

   

   

注意:修改后不会立即生效,需要先清理 Tomcat 的工作目录缓存

   

选择 Tomcat,右键->Clean Tomcat Work Directory

   

   

   

登录、注销中的 session 案例:

   

login.jsp 是登录表单:

   

   

   

do_login.jsp 执行登录逻辑:

   

   

   

welcome.jsp 欢迎界面:

   

   

   

logout.jsp 注销,退出登录:

   

   

   

   

   

application 对象

   

application 对象是 javax.servlet.ServletContext 类的一个实例

   

   

application 代表了当前应用程序的上下文,可以在不同的用户之间共享信息

   

   

application 代表了当前的应用程序,存在于服务器的内存空间中

   

应用一旦启动,就会自动生成一个 application 对象

   

如果应用没有被关闭,application 对象就会一直保持下去,直到应用被关闭才会被销毁

   

   

相对于 session,application 的生命周期更长

   

   

application 的特性为多个用户共享某些全局信息,提供了方便,如:共享当前的在线人数等

   

   

application 的基本方法:

   

   

   

application 实现一个计数器:

   

   

   

   

   

config 对象

   

config 对象是 javax.servlet.ServletConfig 类的一个实例

   

   

config 封装了应用程序的配置信息,即 当前 JSP 程序的配置信息

   

   

在实际项目中,JSP 一般用作模板技术,位于表示层,一般不需要读取

配置文件中的初始化信息,所以 config 对象在 JSP 程序中很少使用

   

   

config 在 Servlet 中作用更大,主要是用来配置 Servlet 的

   

   

config 对象所封装的配置信息来自于应用的部署描述符 web.xml

   

   

在 web.xml 文件中添加配置信息:

   

   

   

config.jsp 中获取初始化信息:

   

   

   

   

   

page 对象

   

page 对象是 java.lang.Object 类的一个实例

   

   

page 指向当前当前 JSP 页面本身,有点类似于 Java 编程的 this 指针

   

   

page 的基本用法:

   

   

   

   

   

exception 对象

   

exception 对象是 java.lang.Throwable 类的一个实例

   

   

exception 封装了 JSP 程序执行过程中发生的异常和错误信息

   

   

exception 只有在包含 isErrorPage="true" 的页面中才可以

被使用,在一般的 JSP 页面中使用该对象将无法编译

   

如:

   

throw_error.jsp 中指定 errorPage 为 handle_error.jsp

   

   

   

handle_error.jsp 中将 isErrorPage 设为 true,使用 exception 处理异常

   

   

   

   

   

pageContext 对象

   

pageContext 对象是 javax.servlet.jsp.PageContext 类的一个实例

   

   

pageContext 提供了对 JSP 页面所有对象以及命名空间的访问

   

   

pageContext 比较特殊,是 JSP 页面中所有其他对象功能的一个最大集成者

   

使用 pageContext 可以访问其他所有的 JSP 内置对象

      

如:

   

   

   

   

   

参考链接:

参考链接1参考链接2参考链接3参考链接4参考链接5

   

   

   

   

   

   

【made by siwuxie095】

posted on 2017-04-09 23:16  siwuxie095  阅读(159)  评论(0编辑  收藏  举报

导航