JSP程序设计实训(五)——JSP基本语法(二)

上一篇:JSP程序设计实训(五)——JSP基本语法(一)

JSP基本语法

  • JSP基本语法的学习包括JSP页面的基本结构、JSP的脚本元素、JSP的指令和JSP的常用动作。

4. JSP常用动作

  • 当客户请求JSP页面时,可以利用JSP动作动态地插入文件、重用JavaBean组件、把用户重定向到另外的页面。动作元素名和属性名都是大小写敏感的。JSP规范定义了一系列标准动作,使用 jsp 作为前缀。其中常用的动作有

(1)动作

  • 动作可以用于动作体中,为其它动作传送一个或多个参数。动作的语法格式为:
name属性 name属性用于指定参数名称,不可以接受动态值
value属性 value属性用于指定参数值,可以接受动态值

(2)动作

  • 动作用来把指定文件动态插入正在生成的页面中。该动作的语法格式为:或者为
<jsp:include page = "文件名" flush = "true">
	<jsp:param name = "参数" value = "参数值"/>
</jsp:include>
page属性 page属性指定所包含资源的相对路径,可以接受动态值
flush属性 flush属性指定在包含目标资源之前是否刷新输出缓冲区,默认值为false,不可以接收动态值
  • 动作允许包含静态文件和动态文件,这两种包含文件的效果是不同的。如果包含文件是静态文件,那么这种包含仅仅是把包含文件的内容添加到JSP文件中去,这个文件不会被JSP编译器执行;如果包含文件是动态的,那么这个被包含文件也会被JSP编译器执行。

  • include 指令和 include 动作都能实现将外部文档包放到JSP文档中的功能,名称相似,但也有区别。如下:

    include 指令 include 指令可以在JSP页面转换成Servlet 之前,将JSP代码插入其中
    include 动作 include 动作是当主页面被请求时,将其他页面的输出包含进来
    区别 根本不同在于它们调用的时间,动作是在页面请求间被激活,指令是在页面转换期间被激活。动作比指令容易维护,指令比动作的功能更强大、执行速度也稍快

(3)动作

  • 动作用来加载在JSP页面中使用到的JavaBean。这个功能能实现JavaBean组件的重用。动作的语法格式为:

3.1:id 属性

  • id 属性指定该 JavaBean 的实例名称,不可接受动态值。如果能够找到 id 和 scope 相同的 Bean 实例,动作将会使用已有的 Bean 实例而不是创建新的实例。

3.2:scope 属性

  • scope 属性指定Bean的作用域,一个作用域内 id 属性的值是唯一的,即一个作用域内不能有两个一样的 id 值,不可以接受动态值,可选作用域有 page、request、session 和 application。
  • 默认值是 page ,表示该 Bean 只在当前页面内可用(保存在当前页面的 PageContent 内);request 表示该 Bean 在当前的客户请求内有效(保存在 ServletRequest 对象内);session 表示该 Bean 对当前 HttpSession 内的所有页面都有效,即会话作用域;application 表示该 Bean 在任何使用相同的 application 的JSP页面中有效,即整个程序范围内有效。

3.3:class 属性

  • class 属性指定 Bean 的类路径和类名,不可接受动态值,这个 class 不能是抽象的。

3.4:type 属性

  • type 属性指定应用该对象的变量的类型,它必须是 Bean 类的名字、超类名字、该类所实现的接口名字之一。变量的名字是由 id 属性决定的。

3.5:beanName 属性

  • beanName 属性用于指定 Bean 的名字,可以接受动态值。beanName 属性必须与 type 属性结合使用,不能与 class 属性同时使用。举个例子:
<body>
	<hr>
	<jsp:useBean id = "time" type = "java.io.Serializable" beanName = "java.util.Date"/>
	现在时间:<%=time%>
	<hr>
</body>

(4)动作

  • 动作用来设置、修改已实例化 Bean 中的属性值。该动作的语法格式为:

4.1:name 属性

  • name 属性是必需的,表示要设置的是哪个 Bean 的,不可接受动态值。

4.2:property 属性

  • property 属性是必需的。表示要设置哪个属性。如果 property 的值是 *,表示所有的名字和 Bean 属性名字匹配的请求参数都将被传递给相应属性的 set 方法。

4.3:param 属性

  • param 属性是可选的。指定用哪个请求参数作为 Bean 属性的值。如果当前请求没有参数,则什么事情也不做,系统不会把 null 传递给 Bean 属性的 set 方法。因此,可以让Bean自己提供默认属性值,只有在请求参数明确指定了新值时才修改默认属性值。
<body>
	<hr>
	<jsp:useBean id = "time" class = "java.util.Date">
		<jsp:setProperty name = "time" property = "hours" param = "hh"/>
		<jsp:setProperty name = "time" property = "minutes" param = "mm"/>
		<jsp:setProperty name = "time" property = "seconds" param = "ss"/>
	</jsp:useBean>
</body>

4.4:value 属性

  • value 属性是可选的。该属性用来指定 Bean 属性的值。value 和 param 不能同时使用,但可以使用其中任意一个。

(5)动作

  • 动作获取指定的 Bean 属性值并转换成字符串输出。该动作的语法格式为:
  • 该动作可以获取 Bean 的属性值,并可以将其使用或显示在JSP页面中。在使用该动作之前,必须用创建实例化对象。

5.1:name 属性

  • name 属性指定要获取的 Bean 名称,不能接受动态值。

5.2:property 属性

  • property 属性指定要获取的 Bean 属性名,不能接受动态值。

5.3:举个例子

  • JSP程序设计实训——用户注册

(6)动作

  • 动作用于转发客户端的请求到另一个页面或者另一个Servlet 文件中去。该动作的语法格式为:
  • 动作可以包含一个或多个子动作,用于向要引导进去的页面传递参数。当动作发生时,如果已经有文本被写入输出流而且页面没有设置缓冲,将抛出异常。
  • page 属性指定资源的相对路径,可接受动态值。

你可能感兴趣的:(#,JSP程序设计实训)