发表于: 2020-08-23 01:31:22

1 1513


今天完成的事情:唉,写代码写忘记时间了,忘记占坑,昨天的错过了。难过
明天计划的事情:小课堂讲解。学习Dubbo.
遇到的问题:暂无
收获:

jsp九大内置对象
1.背景介绍
jsp是什么?内置对象怎么来的?这是从背景应该知道的。
首先,jsp(JavaServer Pages)java服务器页面,是一种动态网页技术。实际上就是java Servlet,实现的是java web应用程序的用户界面部分,将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。
在这里我们需要知道jsp的一些弊端,
可读性差,在jsp页面中,我们会用<%..%>将java代和html写在一起,整个页面就和杂。
jsp难于调试,不能debug,单元测试。
java代码写在jsp中,暴露了我们内部服务等对象信息,安全性低。
内置对象就是就是为了将一些常用的,经常用到的代码封装起来,简化JSP对程序的操作。
2.知识剖析
内置对象就是JSP隐式对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐式对象也被称为预定义变量。
jsp有几个内置对象,毋庸置疑九大内置对象,可以划分为四类。
  • 输入输出对象:out对象、response对象、request对象
  • 通信控制对象:pageContext对象、session对象、application对象
  • Servlet对象:page对象、config对象
  • 错误处理对象:exception对象
2.1 request对象
封装了从客户端到服务器发出的请求信息,是 javax.servlet.httpServletRequest类型的对象,比如可以获取请求信息,请求参数,头部信息,设置指定参数。
request对象方法介绍:
方法名
说明
isUserInRole
判断认证后的用户是否属于某一成员组
getAttribute
获取指定属性的值,如该属性值不存在返回Null
getAttributeNames
获取所有属性名的集合
getCookies
获取所有Cookie对象
getCharacterEncoding
获取请求的字符编码方式
getContentLength
返回请求正文的长度,如不确定返回-1
getHeader
获取指定名字报头值
getHeaders
获取指定名字报头的所有值,一个枚举
getHeaderNames
获取所有报头的名字,一个枚举
getInputStream
返回请求输入流,获取请求中的数据
getMethod
获取客户端向服务器端传送数据的方法
getParameter
获取指定名字参数值
getParameterNames
获取所有参数的名字,一个枚举
getParameterValues
获取指定名字参数的所有值
getProtocol
获取客户端向服务器端传送数据的协议名称
getQueryString
获取以get方法向服务器传送的查询字符串
getRequestURI
获取发出请求字符串的客户端地址
getRemoteAddr
获取客户端的IP地址
getRemoteHost
获取客户端的名字
getSession
获取和请求相关的会话
getServerName
获取服务器的名字
getServerPath
获取客户端请求文件的路径
getServerPort
获取服务器的端口号
removeAttribute
删除请求中的一个属性
setAttribute
设置指定名字参数值
2.2 response对象
response对象主要用于对客户端的请求进行回应。,以及处理http的连接信息,例如设置http文件头,设置cookie对象等。
response对象方法:
方法名
说明
addCookie
添加一个Cookie对象
addHeader
添加Http文件指定名字头信息
containsHeader
判断指定名字Http文件头信息是否存在
encodeURL
使用sessionid封装URL
flushBuffer
强制把当前缓冲区内容发送到客户端
getBufferSize
返回缓冲区大小
getOutputStream
返回到客户端的输出流对象
sendError
向客户端发送错误信息
sendRedirect
把响应发送到另一个位置进行处理
setContentType
设置响应的MIME类型
setHeader
设置指定名字的Http文件头信息
2.3 out对象
out对象是 javax.servlet.jsp.JspWriter 类的实例,用来在response对象中写入内容。
方法
描述
out.print(dataType dt)
输出Type类型的值
out.println(dataType dt)
输出Type类型的值然后换行
out.flush()
刷新输出流
2.4 session
session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。session对象用来跟踪在各个客户端请求间的会话。
session对象方法:
方法名
说明
getAttribute
获取指定名字的属性
getAttributeNames
获取session中全部属性名字,一个枚举
getCreationTime
返回session的创建时间
getId
获取会话标识符
getLastAccessedTime
返回最后发送请求的时间
getMaxInactiveInterval
返回session对象的生存时间单位千分之一秒
invalidate
销毁session对象
isNew
每个请求是否会产生新的session对象
removeAttribute
删除指定名字的属性
setAttribute
设定指定名字的属性值
2.5 application
application对象直接包装了servlet的ServletContext类的对象,是javax.servlet.ServletContext 类的实例。这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。通过向application中添加属性,则所有组成您web应用的JSP文件都能访问到这些属性。
应用为多个用户共享全局信息,比如统计在线人数。
application对象方法:
方法名
说明
getAttribute
获取应用对象中指定名字的属性值
getAttributeNames
获取应用对象中所有属性的名字,一个枚举
getInitParameter
返回应用对象中指定名字的初始参数值
getServletInfo
返回Servlet编译器中当前版本信息
setAttribute
设置应用对象中指定名字的属性值
2.6 pageContext
pageContetx对象是jsp页面中所有对象功能的最大集成着。使用他可以访问所有的jsp内置对象。比如这个对象存储了request对象和response对象的引用。application对象,config对象,session对象,out对象可以通过访问这个对象的属性来导出。
pageContext对象方法:
方法名
说明
forward
重定向到另一页面或Servlet组件
getAttribute
获取某范围中指定名字的属性值
findAttribute
按范围搜索指定名字的属性
removeAttribute
删除某范围中指定名字的属性
setAttribute
设定某范围中指定名字的属性值
getException
返回当前异常对象
getRequest
返回当前请求对象
getResponse
返回当前响应对象
getServletConfig
返回当前页面的ServletConfig对象
getServletContext
返回所有页面共享的ServletContext对象
getSession
返回当前页面的会话对象
2.7 page
这个对象就是页面实例的引用。它可以被看做是整个JSP页面的代表。page 对象就是this对象的同义词。
 page对象的方法:
方法名
说明
toString
将当前项目的信息打印出来
getClass
返回当前的object类
hashCode
返回page对象的hashCode值
equals
用于比较对象是否与当前对象相同
2.8 config
config对象是 javax.servlet.ServletConfig 类的实例,直接包装了servlet的ServletConfig类的对象。
这个对象允许开发者访问Servlet或者JSP引擎的初始化参数,比如文件路径等。
2.9 exception
exception对象表示jsp引擎在执行代码时抛出的异常
如果想要使用exception对象,那么需要配置编译指令的isErrorPage属性为true
即在页面指令中设置:<%@page isErrorPage=“true”%>
3.常见问题
1).能说下JSP的生命周期吗?
2).能说下jsp的常见内置对象?
4.解决方案
1). JSP生命周期就是从创建到销毁的整个过程,类似于servlet生命周期,区别在于JSP生命周期还包括将JSP文件编译成servlet。
以下是JSP生命周期中所走过的几个阶段:
  • 编译阶段:
servlet容器编译servlet源文件,生成servlet类
  • 初始化阶段:
加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
  • 执行阶段:
调用与JSP对应的servlet实例的服务方法
  • 销毁阶段:
调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例
2). 总共九大内置对象,常用的就是Request,Response,PageContext,Seesion等
5.编码实战
6.扩展思考
1).内置对象如何封装使用的?
7.参考文献
8.更多讨论




返回列表 返回列表
评论

    分享到