`
MoonMonster
  • 浏览: 36708 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

jsp---隐式对象简单介绍

阅读更多

什么是隐式对象?

JSP的隐式对象是指在JSP页面系统中已经默认内置的Java对象,这些对象不需要开发人员显式声明即可使用。

 

1、application:

1.1 application对象有效的范围是从web应用程序服务器一开始执行,到web服务器结束服务为止。

1.2 对于一个网站中所有的JSP页面,application对象只有一个。它们操作的是同一个application对象。

1.3 application是一个全局变量,所有访问同一服务器的客户都可访问application对象。

使用下面一个小例子来证明,在开启了服务器后,在不同的浏览器中访问,可以看到计数器是不断上升的,而不会从1开始。

        <%
	int count = 0;
	if(application.getAttribute("count") == null){
		count = 1;
		application.setAttribute("count", count);
	}else{
		//值得注意的是,如果存进去的是int值,那么返回的也将是int值,而不是String类型的值
		count = (Integer)(application.getAttribute("count"));
		count ++;
		application.setAttribute("count", count);
	}
	
	out.print("你是第"+count+"位访客...");
	%>

 

1.4 获取服务器系统相关信息

application对象负责提供应用程序在服务器中运行时的一些全局信息,因此我们可以利用application来获取一些系统相关信息。

<%
	out.print("服务器信息: " + application.getServerInfo()+"<br/>");
	out.print("Java Servlet API 主版本号: "
			+ application.getMajorVersion()+"<br/>");
	out.print("Java Servlet API 次版本号: "+application.getMinorVersion()+"<br/>");
	out.print("本网页的真实路径:"+application.getRealPath("index1.jsp")+"<br/>");
	%>

 

 

将得到输出结果:

服务器信息: Apache Tomcat/7.0.55

Java Servlet API 主版本号: 3

Java Servlet API 次版本号: 0本网页的真实路径:E:\Code\Java-Newer\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\jsp_ysdx\index1.jsp

 

2、config

2.1 config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数及服务器的有关信息。

2.2 主要是对web.xml的数据进行读取。实际上是通过getServletContext()方法获得application对象,再根据application对象获得。

可以直接在网页中获得web.xml中设置的数据

<servlet>
		<servlet-name>Config</servlet-name>
		<!-- 此处要设置为将使用该数据的网页名 -->
		<jsp-file>/index1.jsp</jsp-file>
		<init-param>
			<param-name>username</param-name>
			<param-value>Chalmers</param-value>
		</init-param>
		<init-param>
			<param-name>password</param-name>
			<param-value>123456</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>Config</servlet-name>
		<url-pattern>/servlet/config</url-pattern>
	</servlet-mapping>

 

 

out.print("username: " + config.getInitParameter("username")
			+ "<br/>");
	out.print("password:" + config.getInitParameter("password"));

 

输出结果为:

username: Chalmers

password:123456

 

3、exception

作用如名所示,用来处理页面异常的。

3.1 exception对象常用方法如下

  (1)getMessage()方法

  (2)toString()方法

  (3)printStackTrace()方法

  (4)getLocalizedMessage()方法

  (5)fillStackTrace()方法

3.2 用法:

注意:exception对象只能在定义了<%@ page isErrorPage="true"%>中使用,否则没有该对象

testException.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	<%@ page errorPage="handleException.jsp"%>

	<%
		int a = 0;
		int b = 10 / a;
	%>

 

 

handleException.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
	<%@ page isErrorPage="true"%>

	<%
		out.print(exception.getMessage() + "<br/>");
		exception.printStackTrace();
	%>

 

 

4、out

4.1 out对象主要用于向浏览器端输出数据

4.2 out实际上是带有缓冲特性的PrinterWriter,可以称之为JspWriter。缓冲区容量是可以设置的,甚至也可以关闭,

只要通过page指令的buffer属性就可以达到此目的。

4.3 JSP文件代码中的文件内容会自动生成out.print()或者out.println()输出。

 

5、page

5.1 page对象指代JSP页面本身、代表了正在运行的由JSP文件产生的类对象。

5.2 page对象的常用方法如下。

  (1)getClass()方法

  (2)equals()方法

  (3)clone()方法

  实际上就是从Object中继承的方法

 

6、request

6.1 请求有效:请求页面A,并向A中传递某些参数。

6.2 请求有效对象在处理结束时就会失效。

6.3 request对象可以获取哪些信息

6.3.1 建立HTML表单

   <form  action=“action” method=“method” name=“name”>。。。</form>

6.3.2 用REQUEST对象处理

   JSP页面将数据存放在request对象里,并将该请求传递到下一个页面,下一个页面访问request对象,处理上一个JSP页面传递过来的数据。

6.3.3 通过超链接来传递

   <a   href="aaa.jsp?aa=aa&bb=bb&cc=cc">aaa</a>

6.3.4 通过jsp动作标签param来进行传递

6.4 传递一组数据

//发送一组数据到receive.jsp
<form action="receive.jsp" method="post">
  跑步<input type="checkbox" name="habits" value="running" /><br /> 
  阅读<input type="checkbox" name="habits" value="reading" /><br />
  游戏<input type="checkbox" name="habits" value="game" /><br />
<input type="submit" value="提交" />
</form>

 

//接收

//参数要一致

String[] habits = request.getParameterValues("habits");
for(String s : habits){
out.print(s+"<br/>");
}

 

 

7、response

7.1 response对象负责将服务器端的数据发送回浏览器的客户端。主要用于向客户端发送数据,如Cookie、HTTP文件头等信息。

7.2 利用response实现自动刷新

7.2.1 刷新当前界面

response.setHeader("refresh", "3");
out.print(new Date().toString());

 

结果:每隔3秒刷新一次界面,显示当前时间

7.2.2 跳转界面

<%
out.print("3秒后刷新...");
response.setHeader("refresh", "3;url=count.jsp");
%>

 

7.3 添加Cookie

<%
		Cookie cookie = new Cookie("username", "Chalmers");
		//设置保存时间为60*60秒
		cookie.setMaxAge(60 * 60);
		response.addCookie(cookie);
	%>

 

 

<%
		Cookie[] cookies = request.getCookies();
		for (Cookie c : cookies) {
			if (c.getName().equals("username")) {
				out.print(c.getValue());

				return;
			}
		}
		out.print("没有...");
	%>

 

 

8、pageContext

8.1 pageContext对象能够存取其他隐含对象。

8.2 当隐含对象本身也支持属性时,pageContext对象也提供存取那些属性的方法。

 

9、session

9.1 session对象用于存储一个用户的会话状态,也就是说,session对象是对某个用户的会话过程中的信息存储。

9.2 当客户端访问服务器时,会在服务器中搜索对应的sessionID,如果没有找到,那么便会创建一个,如果找到了便直接使用。

所以在session 的有效时间内,每个客户端只有一个sessionID。

 

 

10、pageContext,request、session、application传递参数的使用范围:

10.1 设置参数值

<%
pageContext.setAttribute("pageContext", "true");
request.setAttribute("request", "true");
session.setAttribute("session", "true");
application.setAttribute("application", "true");
%>

 

10.2 当前页面中,所有的对象都可以通过getAttribute获得值

10.2 在request的forward方法传递中,pageContext接收数据失败,所以pageContext只能在定义页面中使用。

10.3 request的include方法同上

10.4 如果使用response的sendRedirect方法,那么request也将接收失败。原因:客户端向服务端请求数据,服务端在向客户端发送数据

完成后,该request便已经结束,客户端访问url时已经是一个新的request了,所以request的使用范围是一个request内。

10.5 在session的有效时间内,数据都是存在的,特别强调的是,关闭浏览器不会清除掉session。

10.6 而application只有在关闭服务端后才会被清除,可见上面的application介绍。

10.7 总结:范围大小: application>session>request>pageContext

 

 

11.Cookie与Session的区别

Cookie是存在浏览器中的

Session是存在服务器中的

 

Cookie的安全性要低于Session

 

Cookie可能会被用户禁用

 

Session的数据是存在服务器内存中,关掉浏览器,会清空Session

临时性Cookie存在浏览器的缓存中,关掉浏览器,会清空

永久性Cookie是存在临时文件中,到达有效期前,一直存在

3
3
分享到:
评论

相关推荐

    JavaWeb程序设计入门课件JSP隐式对象共8页.pdf

    JavaWeb程序设计是Web开发中的重要一环,...本入门课件《JavaWeb程序设计入门课件JSP隐式对象共8页.pdf》将引导初学者深入理解JSP隐式对象的概念、使用方法及其在实际开发中的应用,为后续的JavaWeb开发打下坚实基础。

    Java Web程序设计入门课件-EL隐式对象.pptx

    值得注意的是,EL和JSP共享一个隐式对象——`pageContext`,但其余的隐式对象则是EL特有的。 **7.3.1 EL隐式对象概述** 这11个隐式对象包括`pageContext`、`request`、`response`、`session`、`application`、`page...

    JSP中隐式对象用法实例

    常见的JSP隐式对象包括request、response、session、application、out、pageContext等。下面将详细介绍这些隐式对象的定义和用法,并通过实例加以说明。 1. request对象 request对象用于获取客户端的请求信息,如...

    软件工程1611-JSP-实验5.zip

    4. **隐式对象**:JSP提供了若干预定义的对象,如`request`、`response`、`session`、`application`等,简化了Web开发。例如,`request`对象用于获取HTTP请求的数据,`response`对象用于构建HTTP响应。 5. **EL...

    jsp-servlet相关资料

    3. **JSP隐式对象:** JSP提供了一些内置对象(如request、response、session等),它们可以直接使用,与Servlet中对应的对象相呼应。 **四、学习资源** 1. **教程书籍:** 《Head First Servlets & JSP》、《Core ...

    JSP应用开发-JSP基本语法与常用指令.pptx

    JSP应用开发需要掌握JSP基础知识和实践操作,包括如何编写JSP页面、如何使用JSP隐式对象、如何实现用户注册和登录功能等。 实践操作 以下是一个简单的JSP应用开发示例,演示如何使用JSP技术实现用户注册和登录功能...

    jsp表达式语言

    - **隐式对象**:EL提供了一系列内置对象,如`pageScope`、`requestScope`、`sessionScope`和`applicationScope`,以及`param`、`header`等,用于快速访问请求参数和其他HTTP相关信息。 #### 四、EL在无脚本JSP页面...

    EL与JSTL的用法(与JSP对照)

    - **jsp隐式对象**:如`pageContext`,这是JSP中最常见的隐式对象之一,提供了对页面上下文的访问。 - **作用域访问隐式对象**:包括`pageScope`、`requestScope`、`sessionScope`、`applicationScope`,它们分别...

    JSP应用开发-EL表达式与JSTL标签.pptx

    EL表达式(Expression Language)是一种用于JSP页面中的语言,主要用于替换JSP页面中的脚本表达式,从JSP隐式对象中提取java对象、获取数据。EL表达式的语法结构是:“${变量或表达式}”,它可以执行一些基本的关系...

    动态网页(JSP+Servlet)教程

    理解 JSP 中的隐式对象对于有效地使用 JSP 进行 Web 开发至关重要。通过掌握这些对象的使用方法,可以更灵活地控制页面的输出和数据流。 #### 七、JSP语法之标准动作和 JavaBean **7.1 简介** 这部分讲述了 JSP ...

    简单 介绍jsp

    【JSP隐式对象】 JSP提供了一些预定义的对象,称为隐式对象,可以直接在JSP页面中使用,如request、response、session、out、pageContext等,这些对象简化了开发过程,无需手动创建。 总的来说,JSP是一种强大的Web...

    一套JSP测试题,有答案

    - **隐式对象**:预定义的对象,如request、session、application等,无需显式声明即可在EL中使用。 #### 7. JSTL标签库 JSTL(JavaServer Pages Standard Tag Library)是一组标准标签库,用于增强JSP页面的功能性...

    JSP网络编程技术下载

    JSP可以看作是简化版的Servlet,通过内置的隐式对象和简化语法使Web开发更为便捷。 ### 4. JSP内置对象 - **request**:HttpServletRequest对象,用于获取请求信息,如参数、头信息。 - **response**:...

    JSP EL表达式

    JSP EL表达式定义了多个隐式对象,便于直接访问JSP页面的上下文信息,无需显式声明即可使用。包括: - pageContext:JSP页面的上下文,可以用来访问request、response、session、application等对象。 - param:将...

    新闻系统-JSP实现的容易理解适合初学者的

    在JSP中,可以通过隐式对象`request`、`response`、`session`、`application`来与用户交互,管理请求和响应。例如,`request.getParameter()`用于获取HTTP请求参数,`response.sendRedirect()`用于重定向页面。 ...

    JSP EL表达式很全哦

    - **隐式对象:** EL提供了一系列预定义的隐式对象,方便快速访问JSP页面中的一些常见对象。 #### 二、EL表达式的基本使用 ##### 1. 语法结构 EL表达式的语法结构非常简单,采用 `${expression}` 的形式。 - **...

    简易的jsp图书管理系统

    在JSP中,通过使用隐式对象如`request`、`response`、`session`和`application`来处理HTTP请求和传递数据。例如,用户在查询页面输入关键词后,`request.getParameter()`方法用于获取输入值,然后通过`response....

    JSP+SERVLET教程

    - **隐式对象**:JSP页面自动提供的内置对象,如`request`、`response`、`session`等,用于处理客户端请求和响应。 - **标准动作**:如`&lt;jsp:include&gt;`用于包含其他页面,`&lt;jsp:forward&gt;`用于转发请求等。 - **...

    jsp自定义标签介绍与操作实例.doc

    - **PageContext对象**:标签处理程序通过PageContext对象与其他JSP隐式对象(如Request、Session和Application)进行交互。它还提供了`setAttribute()`和`getAttribute()`方法来管理页面范围的属性。 - **父标签...

Global site tag (gtag.js) - Google Analytics