JSP第二章

转载 2007年09月28日 11:01:00
脚本
JSP脚本就是用page指令language属性指定的脚本语言编写的代码块,需要用JSP完成的功
能主要在此实现。目前用的基本是Java语言。
代码块里必须完全符合Java语法,但可以配合用HTML文本。其实不论是什么,都会被转换
为Servlet,在Servlet中它们是一样的。
如:先输出5个空行,再输出“hello”
正确的:<% for(int i=0;i<5;i++)%>
<br>
<%;%>
hello
<br>错误的:(一行br;一行hello)===============
<% for(int i=0;i<5;i++)%>
<br>
hello
错误的等价于:<% for(int i=0;i<5;i++){%>
<br>
hello
<%}%>


动作(<%jsp%>)
jsp提供的动作指令有:include、forward、useBean、getProperty、setProperty
include 动作


jsp向当前页面加入另一文件的方法。
<jsp:include page=”relativefileURL” flush=”true”/>


forward动作
把当前页面重导到另一页面上,客户端看到的地址是A页面的地址,
而实际内容确是B页面的内容。
<jsp:forward page=”relativefileURL| <%=expression%>}"/>
如:
<body>
here is aa.
<jsp:forward page=”aa.jsp” />
here is bb.
</body>
注意:在使用forward之前,不能有任何内容已经输出到客户端,否则会发生例外。

useBean动作


此动作用来生成一个bean组件,并设定它的id号及使用范围
<jsp:useBean id=”beanName” scope="page|request|session|application|"class=”package.class” type="package.class" beanName="{package.class|<%=expression%>} type="package.class"">action for bean </jsp:useBean>
id=”beanName”:定义生成bean组件的名字,不能重名且scope的值也最好一样,否则JSP引擎将认定最先被创建的那个。
scope=”page|request|session|application”:定义bean的活动范围,bean只有在它定义的范围里才能使用,
在它的活动范围外将无法访问到它。JSP为它设定的范围有:
page: bean的缺省使用范围
request:作用于任何相同请求的JSP文件中,直到页面执行完毕向客户端发回响应或在此这之前
已通过某种方式(如重定向、链接等方式)转到另一个文件为止。还可通过使用Request对象访问
bean,如request.getAttribute(beanName)
session:作用于整个session的生存周期内,在session的生存周期内,对此bean属性的任何改动,
都会影响到在此session内的另一page、另一request里对此bean的调用。但必须在创建此bean的文件
里事先用page指令指定了session=true。
application:作用于整个application的生存周期内,在application周期内,对此bean属性的任何改动,
都会影响到此application内另一page、另一request以及另一session里对此bean的调用。
class=”package.class”:用class属性指下的类示例一个bean,其中package名必须是类里用关键字package指定的。
type=”package.class”
class=”package.class” type=”package.class”
beanName=”{package.class|<%=expression%>}” type=”package.class”
如:tt.jsp
<jsp:useBean id=”student” scope=”page” class=”mime.student” />
<%=student.getName()%><br>
<% student.setName(“wll”); %>
student.java
package mine;
public class student{
long classno;
String name;
int age;
Boolean sex;
public student(){
classno=12345;
name=”aaaa”;
age=21;
sex=true;
}
public long getClassno(){
return classno;
}
public void setClassno(long no){
this.classno=no;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public int getAge(){
return age;
}
public void setAge(int age){
this.age=age;
}
public boolean getSex(){
return sex;
}
public void setSex(Boolean sex){
this.sex=sex;
}
}
注:
scope=”page”时,运行test.jsp文件,name的初始值为”aaaa”。虽然在jsp文件中又重设为“wll”,
但刷新后仍为“aaaa”

scope=”session”时,运行test.jsp文件,name的初始值为”aaaa”。虽然在jsp文件中又重设为“wll”,
但刷新后仍为“wll”,只要不关闭此窗口,任何刷新或打开一个新窗口,都输出“wll”。直到关闭所有窗口,
再运行test.jsp文件,输出才会为初始值”aaaa”。

scope=”application”时,运行test.jsp文件,name的初始值为”aaaa”。虽然在jsp文件中又重设为“wll”
,但刷新后仍为“wll”,只要不关闭此窗口,任何刷新或打开一个新窗口,都输出“wll”。即使关闭所有窗口
,再运行test.jsp文件,输出仍为 “wll”。除非关闭服务后又重启,再运行test.jsp文件,name的输出为初始值”aaaa”。

scope=”request”时,新建一文件test1.jsp内容与test.jsp一样。先在浏览器中运行test.jsp文件,输出name的
值为初始值”aaaa”。再在在浏览器中运行test1.jsp文件,此时输出为“wll”,因为它们算是相同的request。
getProperty动作作用:用来返回一个已被创建的bean组件的属性值:

<jsp:getProperty name=”beanId” property=”propertyName” />
name:对应着用useBean创建bean组件时id的值
property:指明要得到哪个属性的值

如:得到前例中student组件的属性值:
<jsp:getProperty name=”student” property=”classno” />等价:<%=student.classno %>
<jsp:getProperty name=”student” property=”name” />
<jsp:getProperty name=”student” property=”age” />

输出结果为:
12345 aaaa 21setProperty 动作作用:用来设定一个已被创建的bean组件的属性值:
<jsp:setProperty name=”beanId” property=”propertyName” value=”propertyValue”/>
name:对应着用useBean创建bean组件时id的值
property:指明要想设定属性值的属性名
value:为设定的属性值

如:前例中student组件,在setProperty中设定的属性
<jsp:setProperty name=”student” property=”classno” value=”56789”/>
<jsp:setProperty name=”student” property=”name” value=”bbbb” />
<jsp:setProperty name=”student” property=”age” value=”33” />等价:<% student.age=33;%>

输出结果为:
56789 bbbb 33  

JSP 第1、2章 练习题

一、选择题 1、创建自定义 CSS 样式时,样式名称的前 面必须加一个(   )。 A.$   B.#    C.?    D.原点  2、下面哪个标签可以应用于〈head〉中(   )。 ...
  • YunYun_
  • YunYun_
  • 2014年08月02日 12:43
  • 430

jsp数据交互(1)

1.jsp就打内置对象: 请求对象: request 输出对象: out 响应对象: response 应用程序对象: ...
  • weixin_36024609
  • weixin_36024609
  • 2017年05月08日 13:50
  • 279

【Spring】【笔记】《Spring In Action》第二章 Bean装配

2.1 声明Bean 2.1.1 创建Spring配置 XML文件方式注解方式      在XML文件中声明Bean时,Spring配置文件的根元素是来源于Spring beans 命名空间所定义的...
  • KEY0323
  • KEY0323
  • 2016年05月22日 16:50
  • 483

思科CCNA第一学期第二章答案

001 TCP/IP 网络接入层有何作用? 路径确定和数据包交换 数据表示、编码和控制 可靠性、流量控制和错误检测 详细规定构成物理链路的组件及其接入方法 将数据段划分为数据包 ...
  • u014253173
  • u014253173
  • 2015年01月01日 21:04
  • 3899

CSAPP深入理解计算机系统第二章学习笔记(1)

1、可以利用数字的算数右移,然后利用0XFF这样的数字做掩码运算,可以获取到一个数字的符号位。计算机的移位运算有一种很重要的作用就是利用掩码运算去提取一个位模式的一段信息。 2、在C语言中的条件语句,...
  • u010092734
  • u010092734
  • 2014年07月15日 22:33
  • 1675

统计学习方法笔记--第二章感知机perceptron

统计学习方法笔记–第二章感知机perceptron感知机是二类分类的线性分类算法模型 1.模型 其中w为权值,b为偏置。 为向量内积, 对应于超平面,w是法向量,b是截距 如果输入数据集X是...
  • Selectnew
  • Selectnew
  • 2016年10月10日 13:56
  • 574

编程珠玑第二章习题

1、提供单词和词典,找到该单词的所有变位词,可以事先花时间和空间处理下该词典。 因为要查找变位词,事先遍历词典,得到每个单词签名,并建立签名列表,签名列表的每个项包含了该签名的所有单词。有了这个列表,...
  • chenzujie
  • chenzujie
  • 2013年08月10日 11:57
  • 1813

【算法竞赛入门经典】【第二章】课后习题

《 算法竞赛入门经典》课后题解,第二发来袭。持续更新中。。。
  • luomingjun12315
  • luomingjun12315
  • 2015年04月08日 14:04
  • 1682

第二章jsp数据交互

什么是jsp内置对象? jsp内置对象是web容器创建的一组对象 内置对象不用new jsp内置对象request request 常用方法: String getParameter(String n...
  • qq_36074088
  • qq_36074088
  • 2017年05月08日 14:24
  • 90

数据库应用系统 第二章上机1-4

private void button1_Click(object sender, EventArgs e) { if (InsertStudent()) ...
  • qq_36074043
  • qq_36074043
  • 2016年12月07日 19:31
  • 148
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JSP第二章
举报原因:
原因补充:

(最多只允许输入30个字)