------------------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 内置对象
如:
参考链接:
【made by siwuxie095】