最近在学习JSP,入门从相关的Jsp内置对象学起,最近在看视频+看书的方式学习,也进行了相关的操作。希望以博客的形式记录下自己所学的知识,纯当作是复习了。
一、JSP内置对象的介绍:
JSP对象是可以不需要预先说明便可以在脚本当中随意使用的。共有九大JSP内置对象,分别为out,request,response,session,application,config,pagecontext,page,exception。
-
二、out对象的使用:
-
2、1:out对象的定义:
out对象主要用于向客户端输出并显示各种数据,并用于管理输出缓冲区-buffer。其中buffer的默认大小为8KB,可以通过page指令设置buffer的大小。 -
2、2:out对象的相关函数:
函数名称 | 功能 |
---|---|
print()/println() | 用于输出数据到客户端进行显示。 |
newLine() | 用于输出换行符实现换行的功能。 |
flush() | 用于清空缓冲区中的数据,先将缓冲区中的数据输出到客户端显示,在清除缓冲区。 |
clearBuffer() | 清空缓冲区中的数据,在将数据显示到客户端。 |
clear() | 清空缓冲区中的数据,但不会把缓冲区中的数据输出到客户端。 |
getBufferSize() | 获取缓冲区的大小。 |
getRemaining() | 获取缓冲区剩余大小。 |
isAboutFlush | 用于判断是否自动刷新缓冲区,自动刷新返回true,否则返回false。 |
close() | 用于关闭输出流。 |
-
三、request对象的使用:
-
3.1 request对象的定义
request封装了客户端发送到服务器的请求信息。Web依靠request获取客户端的请求信息。 -
3.2 request对象相应方法
函数名称 | 功能 |
---|---|
getParameter(String) | 获取用户提交的表单数据。注:方法的名称要和表单保持一致。 |
getParameterValues(String) | 获取用户提交的数组信息。注:方法的名称要和表单保持一致。 |
getMethod() | 用于输出请求的方法名。 |
getRequestURI() | 用于获取请求的URI字符串。注:URI字符串是从主机名之后的第一个字符串开始到请求查询的最后一个字符。 |
getProtocol() | 用于获取请求所使用的协议。 |
getServerName() | 用于获取服务器的名称。 |
getServerPort() | 用于获取请求的服务器端口。 |
getRemoteAddr() | 用于获取客户端的IP地址。 |
getRemoteHost() | 用于获取客户端的主机名。 |
setAttribute(String,String) | 用于保存信息,类似于Hash,有键/值对。 |
Ps:Jsp一般使用forward指令跳转页面。
例:
<jsp:forward page="要跳转的页面.jsp"></jsp:forward>
-
四:response对象的使用:
-
4.1 response对象的定义
response主要用于对客户端的请求进行回应。负责处理Http连接信息,例如设置Http文件头,设置Cookie信息等。 -
4.2 response对象相应的方法
函数名称 | 功能 |
---|---|
setHeader(String,String) | 用于设置头信息。 |
setIntHeader(String,String) | 用于设置整型的头信息。 |
sendRedirect(URL) | 用于实现页面跳转。 |
addCookie(Cookie) | 用于向response中添加Cookie。注:Cookie是存储在浏览器中的一小段纯文本信息。Cookie由服务器发送给浏览器,当浏览器再次请求该服务器的网址时,浏览器会将请求的网址连同Cookie一同交给服务器。 |
-
五、Session对象的使用
-
5.1、Session对象的定义
Http协议是一种无状态的协议,它无法记录用户之前的访问状态。Session对象可以记录用户之前的请求信息,从而保证用户访问的连续状态。 - 5.2、session对象的相应方法
函数名称 | 功能 |
---|---|
getCreationTime() | 获取Session对象的创建时间。 |
getLastAccessedTime() | 可以获取Session的最后访问时间。 |
getMaxInactiveInterval() | 可以获取Session失效时间,单位为秒。 |
setAttribute(String,String) | 用于保存信息,类似于Hash,有键/值对。 |
isNew() | 是否为刚刚创建的Session。 |
invalidate() | 直接清除Session对象,会彻底的清除Session对象。 |
-
六、Application对象的使用
-
6.1、Application对象的定义
* Application对象 代表了当前的应用程序,存在于服务器的内存之中,应用程序一旦启动就会生成一个*Application对象。直到应用被关闭此 Application对象才会被销毁。相对于Session对象而言 Application对象的生命周期更长。 -
6.2Application对象的相关方法
函数名称 | 功能 |
---|---|
getServerInfo | 返回当前服务器的详细信息。 |
getServletContextName() | 返回当前应用的名称。注:这个名称来自于部署描述符中的displayName。 |
getVirtualServerName() | 获取主机的名称。 |
-
七、Config对象的使用
-
7.1、Config对象的定义
Config对象代表当前JSP程序的配置信息,Config对象是ServletConfig类的一个实例。主要用于配置Servlet。但在JSP中很少使用。 -
7.2 、Config对象的相关函数
函数名称 | 功能 |
---|---|
getInitParameter(String) | 用于获取指定的初始化信息。 |
-
: 7.3、Config对象使用实例
- 7.3.1、编写配置文件。在WebContent/Web-INF/web.xml下添加以下代码
<servlet>
<servlet-name>config</servlet-name>
<jsp-file>/13/config/.jsp</jsp-file>
<init-param>
<param-name>username</param-name>
<param-value>Ruan</param-value>
</init-param>
<init-param>
<param-name>password</param-name>
<param-value>123456</param-value>
</init-param>
</servelt>
<servlet-mapping>
<servlet-name>config</servlet-name>
<url-pattern>/13/*</url-pattern>
</servlet-mapping>
-
注:servlet标签和servlet-mapping是配对的,它们使用相同的servlet-name进行关联。
-
7.3.2、在JSP文件中添加以下代码
<body>
用户名:<%=config.getInitParameter("username")/>
密码:<%=config.getInitParameter("password")/>
</body>
-
八、Page对象的使用
-
8.1、Page对象的定义
Page对象类似于this,指向了当前JSP页面本身。是Java.Long.Object的一个实例。 -
8.2、Page对象的相关方法
函数名称 | 功能 |
---|---|
toString | 输出对应的类名,用@进行分割,最后是HashCode值。 |
getClass() | 用于返回当前的Object类。 |
HashCode() | 返回HashCode的值。 |
equals(obj) | 用于判断是否和指定的对象相等。 |
-
九、Exception对象的使用
-
9.1、Exception对象的定义
Exception对象表示JSP引擎在执行代码时所抛出的异常。如果要使用Exception对象需要将IsErrorPage指令设置为TRUE,否则无法使用Exception对象。 -
9.2、Exception的相关用法
函数名称 | 功能 |
---|---|
getMessage() | 用于返回异常的信息。 |
toString() | Exception对象的字符串描述。 |
printStackTrace() | 用于打印异常的堆栈轨迹。此方法向标准的输入输出流打印信息而不会输出到页面上。 |
-
十、PageContent对象的使用
-
10.1、PageContent对象的定义
PageContent对象是JSP中所有对象的最大集成者,通过PageContent对象可以访问JSP中的其它对象例如Request对象、Response对象。 -
10.2、PageContent对象的相关用法
- 10.2.1、使用PageContent对象获取Out对象并使用Out对象输出一段字符串。
JspWriter myout=PageContent.getOut();
myout.println("Hello World");
-
其它方法同理。
-
10.2.2、SetAttributte方法示例
<!--使用pageContext.SESSION_SCOPE表示使用的范围仅在Session内。除此之外还有PAGE_SCOPE(页面范围)、REQUEST_SCOPE(请求范围)、APPLICATION_SCOPE(应用程序范围)-->
PageContext.setAttribute("Ruan","China",pageContext.SESSION_SCOPE);
String value=session.getAttribute("Ruan");
out.println(value);
out.println("<br/>");