Java开发必备技能——JSP篇:JSP内置对象详细介绍以及重点方法讲解 附部分实例

Java开发必备技能——JSP篇:JSP内置对象详细介绍以及重点方法讲解 附部分实例

认识内置对象

JSP内置对象又称JSP隐私对象、预定义变量,是指在JSP页面中内置的不需要定义就可以在网页中直接使用的对象。

定义内置对象原因

有些内置对象能够存储参数,有些能够提高提供输出,还有些能提供其他功能,JSP程序员使用这些内置对象的频率比较高,为了提高程序员的开发效率,JSP规范预定了内置对象。

9种内置对象

(1)out 对象:负责管理对客户端的输出。

(2)request 对象:负责得到客户端的请求信息。

(3)response 对象:负责向客户端发出响应。

(4)session 对象:负责保存同一客户端一次会话过程中的一些信息。

(5)application 对象:表示整个应用的环境信息。

(6)exception 对象:表示页面上发生的异常,可以通过它获得页面异常信息。

(7)page 对象:表示的是当前JSP页面本身,就像Java类定义中的this一样。

(8)pageContext 对象:表示的是此JSP的上下文。

(9)config 对象:表示此JSP的ServletConfig。

高频对象详细讲解

1、out对象

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

主要作用如下:

(1)用来向客户端输出各种数据类型的内容。

<!--主要方法-->
out.print()	<!--输出完毕后不换行-->

out.println()	<!--输出完毕后会结束当前行,下一个输出语句将会在下一行开始输出-->

注:在输出中换行,在页面上并不会换行。在页面上换行应该打印字符串<br>

(2)对应用服务器上的输出缓冲区进行管理。

<!--主要方法-->
out.close()<!--关闭输出流,从而强制终止当前页面的剩余部分向浏览器输出-->
out.clearBuffer()<!--清除缓冲区里的数据,并且把数据写到客户端去-->
out.clear()<!--清除缓冲区里的数据,但不把数据写到客户端去-->
out.getRemaining()<!--获取缓冲区中没有被占用的空间的大小-->
out.flush()<!--输出缓冲区的数据,后将缓冲区的数据清除-->
out.getBufferSize()<!--获得缓冲区的大小-->

注:out管理缓冲区使用得比较少,因为通常使用服务器端默认的设置,而不需要手动管理。

2、request对象

request对象是javax.servlet.http.HttpServletRequest 类的实例。request代表了客户端的请求信息,主要是用来获取客户端的参数和流。每当客户端请求一个JSP页面时,JSP引擎就会制造一个新的request对象来代表这个请求。

主要方法如下:

<html>  
  <body>
	提交方式:<%=request.getMethod() %><br>
	请求的URL地址:<%=request.getRequestURI() %><br>
	协议名称:<%=request.getProtocol() %><br>
	客户端请求服务器文件的路径:<%=request.getServletPath() %><br>
	URL的查询部分:<%=request.getQueryString() %><br>
	服务器的名称:<%=request.getServerName() %><br>
	服务器端口号:<%=request.getServerPort() %><br>
	远程客户端的IP地址:<%=request.getRemoteAddr() %><br>
  </body>
</html>
3、response对象

response对象是javax.servlet.http.HttpServletResponse类的实例。response和request是一组相对应的内置对象,response可以理解为客户端的响应,request可以理解为客户端的请求。当服务器创建request对象时会同时创建用于响应这个客户端的response对象。

主要方法如下:

<!--重定向:跳转到另一个页面-->
<%
	response.sendRedirect(目标页面路径);
%>

注:重定向方法主要有两种,除了response.sendRedirect()之外还有JSP动作指令

<jsp:forward page = ""></jsp:forward>
详细对比请看 JSP重定向方法详细对比

4、session对象

session对象是 javax.servlet.http.HttpSession 类的实例。和Java Servlets中的session对象有一样的行为。

JSP中的Session是跨页面保持的,在访问网站时服务器端已经分配了一个session对象给客户使用,对于同一个用户,不管在哪个页面,用户使用的都是同一个session,session对象用来跟踪在各个客户端请求间的会话。

以下以使用session开发购物车为例讲解session的 API:

<%
常用API:
	session.setAttribute("String name","Object obj");<!--通过该函数可以将一个对象放入购物车-->
    <!--提醒:如果两次调用“setAttribute("String name","Object obj");”并且name(自己起的标记)相同,那么后面放进去的内容将会覆盖之前放入的内容-->
    session.getAttribute(String naem);<!--从购物车取出与name相对应的内容,因为返回的内容是Object类型,所以从session中取出时还必须进行强制转换-->
其他API:
    移除session中的内容:session.removeAttribute("name");
	移除session中的全部内容:session.invalidate();
	预防session内容丢失
    获取sessionId:session.getId();
	利用session保存登录信息(一次登录可执行多次操作)
%>

购物车实例完整代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<html>
  <body>
    <%
		ArrayList books = new ArrayList();
		books.add("三国演义");
		books.add("西游记");
		books.add("水浒传");
		session.setAttribute("books",books);    
     %>
     <a href = "cart3_2.jsp">查看购物车</a>
  </body>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<html>
  <body>
  	购物车中的内容为:
  	<hr>
	<%
		ArrayList books = (ArrayList)session.getAttribute("books");
		for(int i = 0;i<books.size();i++){
			String book = (String)books.get(i);
			out.println(book+"<br>");
		}
	 %>
  </body>
</html>
5、application对象

application对象直接包装了servlet的Servlet Context类的对象,是javax.servlet.ServletContext 类的实例。

这个对象在JSP页面的整个生命周期中都代表着这个JSP页面。这个对象在JSP页面初始化时被创建,随着jspDestroy()方法的调用而被移除。

对于一个Web容器而言,所有的用户共同使用一个application对象。

通过向application中添加属性,则所有组成您web应用的JSP文件都能访问到这些属性。

主要API有以下几个:

<%
	将内容放入application:application.setAttribute("String name","Object obj");
	读取application中的内容:application.getAttribute("name");
	将内容从application中移除:application.removeAttribute("name");
%>

其他对象

6、exception对象

exception 对象是java.lang.Exception类的对象,包装了从先前页面中抛出的异常信息。它通常被用来产生对出错条件的适当响应。

7、page对象

page对象是java.lang.Object类的对象,可以使用Object类的方法。page对象是指向当前JSP程序本身的对象,有点像类中的this。

page对象在JSP程序中的应用不是很广。

8、config对象

config对象是 javax.servlet.ServletConfig 类的实例,直接包装了servlet的ServletConfig类的对象。

这个对象允许开发者访问Servlet或者JSP引擎的服务器的有关信息以及初始化参数,比如文件路径等。该对象使用较少。

以下是config对象的使用方法,不是很重要,所以不常用:

config.getServletName();
9、pageContext对象

pageContext对象是javax.servlet.jsp.PageContext 类的实例,用来代表整个JSP页面。pageContext对象提供了对JSP页面中所有对象及命名空间的访问,pageContext对象的方法可以访问除本身外的8个JSP内部对象,还可以直接访问绑定在appliance对象、page对象、request对象、session对象上的 Java 对象。该对象使用较少。

以上是本篇文章的全部内容,涵盖了对JSP内置对象的详细介绍以及部分实例介绍,祝你阅读愉快~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值