三:动作语法(action)(JSP_0300_Action工程)
1:<jsp:include>(include文件夹下的程序)
用于动态包含JSP程序或HTML文件等
除非这个指令会被执行到,否则它是不会被Tomcat等JSP Engine编译。
格式:
<jsp:include page=“URLSpec” flush=“true”/>
<jsp:include page=“URLSpec” flush=“true”>
<jsp:param name=“ParamName” value=“paramValue”/>
</jsp:include>
jsp:param用来设定include文件时的参数和对应的值
jsp:include和编译指令@include的区别
1.@include编译指令是在JSP程序的转换时期就将file属性所指定的程序内容嵌入,然后再编译执行;而jsp:include指令在转换时期是不会被编译的,只有在客户端请求时期如果被执行到才会被动态的编译载入
2.@include不能带参数, 而<jsp:include>可以动态包含的文件和被包含文件用的是同一个request对象
2:<jsp:forward>(forward文件夹下的程序)
jsp:param用于将一个jsp的内容传送到page所指定的JSP程序或者Servlet中处理(URL)
格式:
<jsp:forward page=“urlSpec” flush=“true”/>
<jsp:forward page=“urlSpec”>
<jsp:param name=“paramName” value=“paramValue”/>
</jsp:forward>
<jsp:param>用于指定参数和其对应的值
<jsp:forward>与response.sendRedirect的区别
<jsp:forward>
使用同一个request
forward后的语句不会继续发送给客户端
速度快
服务器内部转换,
可以传参数
response.sendRedirect
是不同的request
send后的语句会继续执行,除非return
速度慢
需要到客户端的往返,可以转到任何页面
可以传参数,直接写在url后面
3:<jsp:useBean>(testbean文件夹下的程序)
通过jsp:useBean,可以在JSP中使用定义好的Bean
Bean的基本要素:
1:必须要有一个不带参数的构造器。在JSP元素创建Bean时会调用空构造器
2:Bean类应该没有任何公共实例变量,也就是说,不允许直接访问实例变量,变量名称首字母必需小写
3:通过getter/setter方法来读/写变量的值,并且将对应的变量首字母改成大写
jsp:useBean各项参数含义:
id:对象实例名称
scope:Bean作用的范围,默认为page,对整个jsp页面有效
class:Bean类名称(全名)
type:Bean实例类型,可以是本类,或其父类,或实现的接口,默认为本类
Scope各项参数的意义:
page:仅涵盖使用JavaBean的页面
(PageBean.jsp/CounterBean.java)
request:有效范围仅限于使用JavaBean的请求
(RequestBean.jsp/RequestBean2.jsp/CounterBean.java)
session:有效范围在用户整个连接过程中(整个会话阶段均有效)
(SessionBean.jsp/Session2.jsp/CounterBean.java)
application:有效范围涵盖整个应用程序。也就是对整个网站均有效
(Application.jsp/Application2.jsp/CounterBean.java)
<jsp:useBean>
创建一个Bean实例并指定它的名字和作用范围.
JSP 语法
<jsp:useBean id="beanInstanceName" scope="page/request/session/application"
{
class="package.class"
type="package.class"
class="package.class" type="package.class"
beanName="{package.class <%= expression %>}" type="package.class"
}
{
/>
> other elements </jsp:useBean>
}
例子
<jsp:useBean id="cart" scope="session" class="session.Carts" />
<jsp:setProperty name="cart" property="*" />
<jsp:useBean id="checking" scope="session" class="bank.Checking" >
<jsp:setProperty name="checking" property="balance" value="0.0" />
</jsp:useBean>
描述
<jsp:useBean>用于定位或示例一个JavaBeans组件。<jsp:useBean>首先会试图定位一个Bean实例,如果这个Bean不存在,那么<jsp:useBean>就会从一个class或模版中进行示例。
为了定位或示例一个Bean,<jsp:useBean>会进行以下步聚,顺序如下:
通过给定名字和范围试图定位一个Bean.
对这个Bean对象引用变量以你指定的名字命名.
如果发现了这个Bean,将会在这个变量中储存这个引用。如果你也指定了类型,那么这个Bean也设置为相应的类型.
如果没有发现这个Bean,将会从你指定的class中示例,并将此引用储存到一个新的变量中去。如果这个class的名字代表的是一个模版,那么这个Bean被java.beans.Beans.instantiate示例.
如果<jsp:useBean>已经示例(不是定位)了Bean,同时<jsp:useBean>和</jsp:useBean>中有元素,那么将会执行其中的代码.
<jsp:useBean>元素的主体通常包含有<jsp:setProperty>元素,用于设置Bean的属性值。正如上面第五步所说的, <jsp:useBean>的主体仅仅只有在<jsp:useBean>示例Bean时才会被执行,如果这个Bean已经存在, <jsp:useBean>能够定位它,那么主体中的内容将不会起作用
属性以及用法
id="beanInstanceName"
在你所定义的范围中确认Bean的变量,你能在后面的程序中使用此变量名来分辨不同的Bean
这个变量名对大小写敏感,必须符合你所使用的脚本语言的规定,在Java Programming Language中,这个规定在Java Language 规范已经写明。如果这个Bean已经在别的<jsp:useBean>中创建,那么这个id的值必须与原来的那个id值一致.
scope="page request session application"
Bean存在的范围以及id变量名的有效范围。缺省值是page,以下是详细说明:
page - 你能在包含<jsp:useBean>元素的JSP文件以及此文件中的所有静态包含文件中使用Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。
request - 你在任何执行相同请求的Jsp文件中使用Bean,直到页面执行完毕向客户端发回响应或转到另一个文件为止。你能够使用Request对象访问Bean,比如request.getAttribute(beanInstanceName)
session - 从创建Bean开始,你就能在任何使用相同session的Jsp文件中使用Bean.这个Bean存在于整个Session生存周期内,任何在分享此 Session的Jsp文件都能使用同一Bean.注意在你创建Bean的Jsp文件中<% @ page %>指令中必须指定session=true
application - 从创建Bean开始,你就能在任何使用相同application的Jsp文件中使用Bean.这个Bean存在于整个application生存周期内,任何在分享此application的Jsp文件都能使用同一Bean.
class="package.class"
使用new关键字以及class构造器从一个class中示例一个bean.这个class不能是抽象的,必须有一个公用的,没有参数的构造器.这个package的名字区别大小写。
type="package.class"
如果这个Bean已经在指定的范围中存在,那么写这个Bean一个新的数据库类型 。如果你没有使用class或beanName指定type,Bean将不会被示例.package和class的名字,区分大小写.
beanName="{package.class <%= expression %>}" type="package.class"
使用java.beans.Beans.instantiate方法来从一个class或连续模版中示例一个Bean,同时指定Bean的类型。
beanName可以是package和class也可以是表达式,它的值会传给Beans.instantiate.tupe的值可以和Bean相同。
package 和 class 名字区分大小写.
4:<jsp:getProperty>
<jsp:getProperty name=“beanName” property=“propertyName”/>
相当于beanName.getPropertyName()方法调用(getXxx()方法)
获取Bean的属性值,用于显示在页面中
JSP 语法
<jsp:getProperty name="beanInstanceName" property="propertyName" />
例子
<jsp:useBean id="calendar" scope="page" class="employee.Calendar" />
<h2>
Calendar of <jsp:getProperty name="calendar" property="username" />
</h2>
描述
这个<jsp:getProperty>元素将获得Bean的属性值,并可以将其使用或显示在JSP页面中.在你使用<jsp:getProperty>之前,你必须用<jsp:useBean>创建它.
<jsp:getProperty>元素有一些限制:
你不能使用<jsp:getProperty>来检索一个已经被索引了的属性
你能够和JavaBeans组件一起使用<jsp:getProperty>,但是不能与Enterprise Bean一起使用。
属性
name="beanInstanceName"
bean的名字,由<jsp:useBean>指定
property="propertyName"
所指定的Bean的属性名。
技巧:
在sun的JSP参考中提到,如果你使用<jsp:getProperty>来检索的值是空值,那么NullPointerException将会出现,同时如果使用程序段或表达式来检索其值,那么在浏览器上出现的是null(空).
5:<jsp:setProperty>
<jsp:setProperty name=“beanName”
property=“propertyName” |property=“*”
value=“property value” |param=“paramName”/>
相当于beanName.setPropertyName(value)方法调用(setXxx()方法)
设置Bean中的属性值.
JSP语法
<jsp:setProperty
name="beanInstanceName"
{
property= "*"
property="propertyName" [ param="parameterName" ]
property="propertyName" value="{string <%= expression %>}"
}
/>
例子
<jsp:setProperty name="mybean" property="*" />
<jsp:setProperty name="mybean" property="username" />
<jsp:setProperty name="mybean" property="username" value="Steve" />
描述
<jsp:setProperty>元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。你在使用这个元素之前必须得使 用<jsp:useBean>声明此Bean.因为,<jsp:useBean>和<jsp:setProperty>是联系在一起的,同时这他们使用的 Bean实例的名字也应当相匹配(就是说,在<jsp:setProperty>中的name的值应当和<jsp:useBean>中id的值相同)
你能使用多种方法利用<jsp:setProperty>来设定属性值 :
通过用户输入的所有值(被做为参数储存中request对象中)来匹配Bean中的属性
通过用户输入的指定的值来匹配Bean中指定的属性
在运行时使用一个表达式来匹配Bean的属性
每一种设定属性值的方法都有其特定的语法,下面我们会来讲解
属性及其用法
name="beanInstanceName"
表示已经在<jsp:useBean>中创建的Bean实例的名字.
property="*"
储存用户在Jsp输入的所有值,用于匹配Bean中的属性。在Bean中的属性的名字必须和request对象中的参数名一致.
从客户传到服器上的参数值一般都是字符类型 ,这些字符串为了能够在Bean中匹配就必须转换成其它的类型,下面的表中列出了Bean属性的类型以及他们的转换方法.
把字符串转化为其它类型的方法. Property 类型
方法
boolean or Boolean
java.lang.Boolean.valueOf(String)
byte or Byte
java.lang.Byte.valueOf(String)
char or Character
java.lang.Character.valueOf(String)
double or Double
java.lang.Double.valueOf(String)
integer or Integer
java.lang.Integer.valueOf(String)
float or Float
java.lang.Float.valueOf(String)
long or Long
java.lang.Long.valueOf(String)
如果request对象的参数值中有空值,那么对应的Bean属性将不会设定任何值。同样的,如果Bean中有一个属性没有与之对应的Request参数值,那么这个属性同样也不会设定.
property="propertyName" [ param="parameterName" ]
使用request中的一个参数值来指定Bean中的一个属性值。在这个语法中,property指定Bean的属性名,param指定request中的参数名.
如果bean属性和request参数的名字不同,那么你就必须得指定property和param ,如果他们同名,那么你就只需要指明property就行了.
如查参数值为空(或未初始化),对应的Bean属性不被设定.
property="propertyName" value="{string <%= expression %>}"
使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果这个字符串,那么它就会被转换成Bean属性的类型(查看上面的表).如果它是一个表达式,那么它类型就必须和它将要设定的属性值的类型一致。
如果参数值为空,那么对应的属性值也不会被设定。另外,你不能在一个<jsp:setProperty>中同时使用param和value
技巧
如果你使用了property="*",那么Bean的属性没有必要按Html表单中的顺序排序
- JSP_0300_Action.rar (15.6 KB)
- 下载次数: 0
发表评论
-
Session学习
2011-05-12 19:54 13891:理解Session的概念 运行机制: 当一个Sessi ... -
taglib学习
2011-05-12 16:45 1010taglib学习(Servlet_0400_FilterAnd ... -
EL学习
2011-05-12 16:42 763EL学习:(Servlet_0400_FilterAndTag ... -
Filter学习
2011-05-12 16:17 13421:了解Servlet过滤器的概念 1)Servlet过滤器 ... -
Servlet学习
2011-05-12 11:11 13511:什么是Servlet 2:Servlet有什么 ... -
JSP学习(四)
2011-05-07 17:32 952四:九大内置对象(JSP_0400_NineObject ... -
JSP学习(二)
2011-05-07 17:21 484一、编译器指令(directive)(JSP_0100_ ... -
JSP学习(一)
2011-05-07 17:20 687一:编译器指令(directive) 1) 包含指令& ...
相关推荐
本篇内容将深入解析JSP学习中的关键知识点,帮助你从基础到进阶全面掌握JSP。 **1. JSP基础** JSP是由Sun Microsystems公司提出的,它是在Web服务器上运行的Java技术。JSP文件本质上是HTML文件,但可以嵌入Java代码...
【JSP 学习经验分享】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它允许开发者在HTML、XML或者其他标记语言中嵌入Java代码,从而实现动态内容的生成。JSP 主要用于构建Web应用程序,提供与...
在这个“jsp学习网站”的压缩包中,包含了多个学习资源,旨在帮助开发者提升JSP技能。以下是一些关键知识点的详细说明: 1. **JSP基本概念**: - JSP页面由静态内容(HTML或XML)和动态元素(Java代码)组成。 - ...
#### 三、JSP项目的基本操作 - **新建项目**:在开发环境中创建一个新的JSP项目。 - **运行项目**:通过服务器启动项目并进行测试。 - **内置Tomcat服务器**:MyEclipse自带的Tomcat版本适合初步测试,但对于实际...
本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。 本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...
JSP的生命周期包括三个阶段:加载、实例化和销毁。在加载阶段,JSP文件被转换为Servlet源代码;实例化阶段,Servlet被创建并初始化;销毁阶段,当Servlet不再需要时,会被垃圾回收器清理。 **JSP语法**: 1. **JSP...
总的来说,JSP学习涵盖了Web开发的多个方面,包括前端设计、后端编程、服务器配置等,是一项全面的技能提升。通过实践和探索"webdev"中的示例,你能够加深对JSP的理解,提高开发动态Web应用的能力。
《jsp学习笔记总结(收集)》 在IT领域,Java Server Pages(JSP)是一种用于构建动态网页的技术,它将HTML、CSS、JavaScript等客户端代码与Java代码结合在一起,使得开发者能够轻松地创建数据驱动的Web应用程序。...
在提供的资料“jsp学习资料”中,包含了一个名为“jsp.ppt”的文件,这可能是一个PowerPoint演示文稿,详细讲解了JSP的基础知识和关键概念。以下是一些可能涵盖的重要知识点: 1. **JSP基本语法**:JSP页面由HTML、...
在IT行业中,"js+jsp三级联动 源码"是一个常见的前端与后端交互的实践案例,主要用于实现用户界面的动态筛选和过滤。这里,我们主要探讨的是使用JavaScript(js)和JavaServer Pages(jsp)来创建一个具有三级联动...
JSP学习心得 JSP(Java Server Pages)是一种基于Java的服务器端脚本语言,用于生成动态网页。JSP技术可以将Java代码嵌入到HTML网页中,以生成动态网页内容。JSP程序设计课程的学习体会涵盖了从基础知识到实践应用...
### Servlet和JSP学习指南 #### 一、Servlet概述 Servlet是Java Web开发中的核心组件之一,它是一种服务器端的应用程序接口(API),用于扩展服务器的功能。Servlet可以响应客户端发送的HTTP请求,并根据请求的...
通过以上知识点,初学者可以掌握JSP的基本结构和语法,进一步深入学习JSP的生命周期、指令、动作、EL(Expression Language)以及JSTL(JavaServer Pages Standard Tag Library)等,以便于开发复杂的Web应用。
【JSP学习软件详解】 JSP(JavaServer Pages)是一种基于Java技术的动态网页开发工具,它结合了HTML代码和Java代码,使开发者能够轻松创建交互式的Web应用程序。这款"jsp学习软件"专为初学者和进阶者设计,旨在提供...
通过这份"JSP的学习资料",初学者可以系统地学习JSP的基础概念、语法特性、生命周期,以及最佳实践,从而快速上手并熟练掌握JSP开发技能。对于进阶开发者,这份资料也能作为巩固和更新知识的参考资料。
JSP Servlet 学习笔记 第2版 林信良 随书光盘 第3卷
通过学习这个实例,开发者可以深入理解JSP、AJAX和数据库之间的协同工作,提升Web应用的交互性和效率。同时,这也是一种基础的Web开发技能,对于初学者来说,这是一个很好的实践项目,有助于理解和掌握相关技术。
JSP有三个主要组成部分:指令(Directives)、脚本元素(Scripting Elements)和动作(Actions)。 **Servlet与JSP的关系** Servlet通常用于处理业务逻辑,而JSP则专注于视图的呈现。两者常配合使用,Servlet接收...
### jsp学习总结 在深入探讨JSP(JavaServer Pages)的相关知识点之前,我们先来简单了解一下JSP的基本概念。JSP是一种基于Java的技术,用于创建动态网页。它结合了HTML、XML标记语言与Java代码片段,使得开发人员...