JavaWeb总结(四)—JSP深入解析

一、JSP域对象

1.JSP属性范围(域对象范围)    

JSP提供了四个域对象,分别是pageContextrequestsessionapplication

pageContext: 属性范围仅限于当前JSP页面。一个属性只能在一个页面取得,跳转到其他页面无法取得。

request: 属性作用范围仅限于同一个请求。一个页面中设置的属性,只要经过了服务器的跳转,跳转之后的页面都可以继续取得。

session: 存储在session对象中的属性可以被属于同一个会话的所有Servlet和JSP页面访问。浏览器打开到关闭称作一次会话。

application: 存储在application对象中的属性可以被同一个Web应用程序的所有Servlet和JSP页面访问。

 

2.域对象的相关方法  

(1)setAttribute()

     设置属性的方法。之前所讲解的四种属性范围,实际上都是通过pageContext属性范围设置上的。打开pageContext所在的说明文档。

PageContext类继承了JspContext类,在JspContext类中定义了setAttribute方法,如下:

此方法中存在一个scope的整型变量,此变量就表示一个属性的保存范围。

后面有一个int类型的变量,在PageContext中可以发现有4种。

    public static final int PAGE_SCOPE = 1;

    public static final int REQUEST_SCOPE = 2;

    public static final int SESSION_SCOPE = 3;

    public static final int APPLICATION_SCOPE = 4;

      这个setAttribute()方法如果不写后面的int类型的scope参数,则此参数默认为PAGE_SCOPE,则此时setAttribute()方法设置的就是page属性范围,如果传递过来的int类型参数scope为REQUEST_SCOPE,则此时setAttribute()方法设置的就是request属性范围,同理,传递的scope参数为SESSION_SCOPE和APPLICATION_SCOPE时,则表示setAttribute()方法设置的就是session属性范围和application属性范围。

 

(2)getAttribute(String name)

     获取指定的属性。

 

(3)getAttributeNames()

     获取所有属性名字组成的Enumeration对象。

 

(2)removeAttribute(String name)

     移除指定的属性。

 

二、请求转发和重定向

 

1.用法

<html>
  <head>

    <title>My JSP ‘hello.jsp‘ starting page</title>

  </head>

  <body>

	<form action="ForwardServlet">
		年龄: <input type="text" name="age"><br>
		<input type="submit" value="提交">

	</form>

  </body>
</html>

 

ForwardServlet.java

public class ForwardServlet extends HttpServlet{

	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{

		String age = req.getParameter("age");
		System.out.println("ForwardServlet: age = " + age);

		//请求的转发
		//1.调用HttpServletRequest的getRequestDispatcher()方法获取RequestDispatcher对象。
		String path = "TestServlet";
		RequestDispatcher dispatcher = req.getRequestDispatcher("/" + path);
		//2.调用RequestDispatcher对象的forward()方法
		dispatcher.forward(req,resp);
	}

	public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
			doGet(req,resp);
	}

}

 

TestServlet.java

public class TestServlet extends HttpServlet{

	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
		String age = req.getParameter("age");
		System.out.println("TestServlet: age = " + age);
	}

	public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
			doGet(req,resp);
	}

}

结果:

ForwardServlet: age = 123

TestServlet: age = 123

 

如果把ForwardServlet内部重定向到TestServlet。

public class ForwardServlet extends HttpServlet{

	public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{

		String age = req.getParameter("age");
		System.out.println("ForwardServletage = " + age);

		//请求的重定向
		String path = "TestServlet";
		resp.sendRedirect(path);
	}

	public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,IOException{
			doGet(req,resp);
	}

}

结果:

ForwardServletage = 23

TestServlet: age = null

时间: 2024-10-19 06:28:05

JavaWeb总结(四)—JSP深入解析的相关文章

javaweb(十四)——JSP原理

一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据. 二.JSP原理 2.1.Web服务器是如何调用并执行一个jsp页面的? 浏览器向服务器发请求,不管访问的是什么资源,其实都是在访问Servlet,所以当访问一个jsp页面时,

IOS开发之——四种方法解析Jason数据(转)

本文将介绍TouchJson. SBJson .JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,TouchJson和SBJson需要下载他们的库 TouchJson包下载: http://download.csdn.net/detail/enuola/4523169 SBJson 包下载: http://download.csdn.net/detail/enuola/4523177 JSONKit包下载:http://download.csdn.net/detail

C++--第24课 - 专题四经典问题解析

第24课 - 专题四经典问题解析 1. 历史的痕迹 #include <cstdlib> #include <iostream> using namespace std; template<class T>  //以前是用typename定义,现在是用class定义 T Minus(T a, T b) { return a - b; } template<class T>  //类模板 class Add { public: T add(T a, T b)

javaweb学习总结(二十四)——jsp传统标签开发

一.标签技术的API 1.1.标签技术的API类继承关系 二.标签API简单介绍 2.1.JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属性和方法.JspTag接口有Tag和SimpleTag两个直接子接口,JSP2.0以前的版本中只有Tag接口,所以把实现Tag接口的自定义标签也叫做传统标签,把实现SimpleTag接口的自定义标签叫做简单标签. 2.2.Tag接口 Tag接口是所有传统标签的父接口,其中定义了两个重要方法(doSt

javaweb学习总结(十四)——JSP原理

一.什么是JSP? JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术. JSP这门技术的最大的特点在于,写jsp就像在写html,但它相比html而言,html只能为用户提供静态数据,而Jsp技术允许在页面中嵌套java代码,为用户提供动态数据. 二.JSP原理 2.1.Web服务器是如何调用并执行一个jsp页面的? 浏览器向服务器发请求,不管访问的是什么资源,其实都是在访问Servlet,所以当访问一个jsp页面时,

javaweb学习总结(二十四)——jsp传统标签开发【转】

原文地址:http://www.cnblogs.com/xdp-gacl/p/3916946.html 一.标签技术的API 1.1.标签技术的API类继承关系 二.标签API简单介绍 2.1.JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属性和方法.JspTag接口有Tag和SimpleTag两个直接子接口,JSP2.0以前的版本中只有Tag接口,所以把实现Tag接口的自定义标签也叫做传统标签,把实现SimpleTag接口的自定义标

【JavaWeb】学习笔记四 JSP基础语法

---恢复内容开始--- 一.JSP页面元素的组成 指令 表达式 小脚本 声明 注释 静态内容 二.JSP指令 1.page指令 ---恢复内容结束---

超全面的JavaWeb笔记day11&lt;JSP&amp;Session&amp;Cookie&amp;HttpSession&gt;

1.JSP 2.回话跟踪技术 3.Cookie 4.HttpSession JSP入门 1 JSP概述 1.1 什么是JSP JSP(Java Server Pages)是JavaWeb服务器端的动态资源.它与html页面的作用是相同的,显示数据和获取数据. 1.2 JSP的组成 JSP = html + Java脚本(代码片段) + JSP动态标签 2 JSP语法 2.1 JSP脚本 JSP脚本就是Java代码片段,它分为三种: l <%...%>:Java语句: l <%=-%>

JavaWeb项目放弃jsp?为什么要前后端解耦?为什么要前后端分离?

前戏 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服务架构.多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础.这个步骤是系统架构从猿进化成人的必经之路. 核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互. 名词解释:在互联网架构中,web服务器:一般指像nginx,ap