JSP的九大内置对象
目录什么是JSP创建流程位置九大对象:page:out:request:response:pageContext:session:application:config:exception:什么是JSPJSP(全称Java Server Pages)响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。JS...
目录
什么是JSP
JSP(全称Java Server Pages)
响应客户端请求,而动态生成 HTML、XML 或其他格式文档的Web网页的技术标准。
JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码,在<% %>标签中。
JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。网页开发者们通过结合HTML代码、XHTML代码、XML元素以及嵌入JSP操作和命令来编写JSP。
创建流程
用户浏览器发送一个 HTTP 请求给服务器。
如果是对JSP网页的请求,将该请求传递给 JSP 引擎。
JSP引擎载入JSP文件,翻译为Servlet,也就是将所有的 JSP 元素转化成Java代码。
JSP引擎将Servlet的java代码编译并将原始请求传递给Servlet引擎。
执行Servlet生成HTML代码,并将其内嵌于HTTPresponse 中上交给 Web 服务器。
Web 服务器展示HTTP response 返回到浏览器中,就像静态页面一样。
位置
index.jsp生成的java类,在C:\Users\本机用户名\.IntelliJIdea具体的编译器名\system\tomcat\项目名\work\Catalina\localhost\ROOT\org\apache\jsp
项目名后面一串路径是在运行时生成的
public final class index_jsp
extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent,org.apache.jasper.runtime.JspSourceImports
继承HttpJspBase,实现JspSourceDependent,JspSourceImports
九大对象:
内置对象(又叫隐含对象,有9个内置对象):不需要预先声明就可以在脚本代码和表达式中随意使用
page:
java.lang.Object类型,指向页面自身的方式。作用域为page(页面)
out:
javax.servlet.jsp.JspWriter类型,代表输出流的对象,管理输出缓冲区,输出完毕要及时关闭。作用域为page(页面)
request:
javax.servlet.ServletRequest的子类型HttpServletRequest,此对象封装了由WEB浏览器或其它客户端生成地HTTP
接收通过HTTP协议传送到服务器的数据(头信息、系统信息、请求方式以及请求参数等)。作用域为request(单次请求)。
常用的方法有:getParameter、getParameterNames 和getParameterValues 通过调用这几个方法来获取请求对象中所包含的参数的值。
String getParameter()获取表单参数的值,返回为String
List getParameterValues()获取多个数据,存放到数组变量中
Enumeration getParameterNames()取得所有变量的名称,返回Enumeration。
InputStream getInputStream()读取来自客户端的二进制数据流
void setCharacterEncoding(String charset)设置字符集
RequestDispatcher getRequestDispatcher(String path)获取RequestDispatcher对象,forward()方法用于转发
getAttribute()表示从request范围取得设置的属性,必须先用setAttribute设置属性,取得为Object对象
getSession()获取Sesssion对象,如果没有就创建一个
response:
javax.servlet.ServletResponse的子类型HttpServletResponse,此对象封装了返回到HTTP客户端的输出,向页面作者提供设置响应头标和状态码的方式。
经常用来设置HTTP标题,添加cookie,设置响应内容的类型和状态,发送HTTP重定向和编码URL。作用域为page(单次响应)。
void addCooie(Cookie cookie)向客户端添加Cookie
void setContentType(String type)设置HTTP响应的contentType类型
void setCharacterEncodiog(String charset)设置响应采用的字符集
void sendRedirect(String location)重定向URL
pageContext:
javax.servlet.jsp.PageContext(抽象类)类型,作用域为page(页面)。此对象
提pageContext 代表的是当前页面运行的一些属性
常用的方法有 :findAttribute、getAttribute、getAttributesScope 和getAttributeNamesInScope
一般情况下pageContext对象用到得也不是很多,只有在项目所面临的情况比较复杂的情况下,才会利用到页面属性来辅助处理。供所有四个作用域层次的属性查询和修改能力,它也提供了转发请求到其它资源和包含其他资源的方法:该对象的方法都是抽象方法
session:
javax.servlet.http.HttpSession类型,作用域session(会话)。
主要用于跟踪对话,保存键值对。可以存储任何类型的命名对象。如果不需要在请求之间跟踪会话对象,可以通过在page指令中指定session="false"
String getId()获取sessionid
void setMaxInactiveInterval(int interval)设定session的非活动时间
int getMaxInactiveInterval()获取session的有效活动时间
void invalidate()设置session对象失效
void setAttribute(String key,Object value)键值对保存在sessioned
Object getAttribute(String key)读取session中保存的值
void removeAttribute(String key)删除key对应的对象
application:
javax.servlet.ServletContext类型,作用域是application(整个服务器开启到停止)。servlet的环境通过调用getServletConfig().getContext()方法获得。
它提供了关于服务器版本,应用级初始化参数和应用内资源绝对路径,注册信息的方式,保存的键值对相当于全局变量
void setAttribute(String key,Object value)键值对保存在application
Object getAttribute(String key)读取application中保存的值
String getRealPath(String path)返回相对路径的真实路径
config:
javax.servlet.ServletConfig,作用域为page(页面)
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象,可以被任意客户端访问,不能被其他Servlet访问,当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。
exception:
java.lang.Throwable,通过JSP错误页面中一个catch块已经益出但没有捕获的java.lang.Throwable的任意实例,传向了errorPage的URI,在错误页面中处理。作用域为page(页面)。注意
exception只有在page指令中具有属性isErrorPage="true"时才有效。
更多推荐
所有评论(0)