分享
 
 
 

JSP-----循序渐进教程2

王朝java/jsp·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

脚本

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有