5、JSP动作
JSP动作的主要作用是根据其指定的动作进行相应的处理。利用JSP动作可以实现引入文件、请求一个新的页面、重用javaBean等功能。JSP动作主要有以下几种:
><jsp:param>
><jsp:forward>
><jsp:include>
><jsp:plugin>
><jsp:useBean>
><jsp:setProperty>
><jsp:getProperty>
1)、param动作
<jsp:param>动作是用来给HTML文件和JSP文件传递参数,它经常和<jsp:forward>、<jsp:include>及<jsp:plugin>配合在一起使用。<jsp:param>动作的语法如下:
<jsp:param name=”fname”value=”fvalue”/>
其中name属性表示传递参数的名称,value属性表示传递该参数的值。
在HTML中设置元素的属性时不必加双引号“”,但是在JSP中设置元素的属性时必须加上双引号“”,否则执行时会出现错误。在后面的讲解中,将结合<jsp:forward>、<jsp:include>、<jsp:plugin>等动作讲解<jsp:param>动作的用法。
2)、forward动作
<jsp:forward>动作用来将请求信息转发到另一个页面,<jsp:forward>动作只有一个page属性。<jsp:forward>动作的语法如下:
<jsp:forawrdpage=”url”/>
其中page属性包含的url是一个相对URL。
如果需要传递参数,<jsp:forward>动作的语法如下:
<jsp:forwardpage="url">
<jsp:param name="fname"value="fvalue"/>
</jsp:forward>
其中fname是参数名称,fvalue是参数值。
<jsp:forward>动作转发的页面可以使HTML文件、JSP文件或者是一个Servlet,但这些文件必须位于同一个环境中。下面是一段关于<jsp:forward>动作转发的代码:
*.jsp
<%@ pagelanguage="java" contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<%@includefile="test.html"%>
<html>
<head>
<title>forward 动作</title>
</head>
<body>
<h3>这是一个测试< jsp:forward>指令的页面</h3>
<jsp:forwardpage="test.html"></jsp:forward>
</body>
</html>
test.html:
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
<h3>这是一个html测试页面</h3>
</body>
</html>
由于在jsp中使用了<jsp:forward page="test.html"></jsp:forward>,所以显示的内容是test.html的内容
3)、include动作
<jsp:include>动作是指在当前的页面内包含一个或多个JSP页面或HTML文件。其使用语法如下:
<jsp:includepage=”file”flush=”true”/>
其中page属性中的file为加载文件所在位置的相对路径。Flush属性必须设为true,如果是false则不能自动刷新输出。需要注意的是,此动作的单行语句必须在该语句的后面加上一条斜线/。若在加载文件或网页时需要传递参数,那么使用的语法如下:
<jsp:includepage=”file”flush=”true”>
<jsp:param name=”fname”value=”fvalue”>
</jsp:include>
下面是一段关于<jsp:include>动作的代码:
<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<f:view>
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>include动作</title>
</head>
<body>
<center>
<h3>欢迎你</h3>
<h3>这是一个登陆页面</h3>
<h3>请登录</h3>
<formaction="jspLog.jsp" name="myform" method="post">
用户名:<input type="text" name="name"/>
密 码:<input type="text"name="password" />
<inputtype="submit" value=" 确定" />
</form>
</center>
</body>
</html>
</f:view>
jspLog.jsp:
<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<%@includefile="jsp.jsp" %>
<f:view>
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>JSP Page</title>
</head>
<body>
<h1><h:outputTextvalue="Hello World!"/></h1>
</body>
</html>
</f:view>
4)、plugin动作
<sjp:plugin>动作表示在一个JSP网页中加载Java Applet或JavaBean组件。Java Applet也叫小应用程序,是使用Java编写的代码,它可以嵌入到JSP程序中。JavaBean是一组用于构建可重用组件的Java类库,可以将一组JavaBean装配成应用程序或Java小程序。同样,它可以嵌入到JSP程序中。<sjp:plugin>动作的语法如下:
<jsp:plugin
type="嵌入程序的类型"
code="潜入类名称"
codebase="潜入类所在的目录名称"
name="对象名称"
align="对齐方式"
height="高度"
width="宽度"
hspace="左右空间"
vspace="上下空间"
nspluginurl="下载Netscape JRE plugin的地址"
archive="预下载的文件路径"
jreversion="使用的JRE版本"
iepluginurl="下载IE JRE plugin的地址"
<jsp:params>
<jsp:param name="fname"value="fvalue"></jsp:param>
<jsp:param name="hname"value="hvalue"></jsp:param>
</jsp:params>/>
<jsp:fallback></jsp:fallback>>
</jsp:plugin>
其中除了type和code属性,其它属性都可以省略。
下载对这些属性进行简单的说明:
>type:嵌入程序的类型,可以使Applet,也可以是Bean,但必须指定一个,因为这个属性设有默认值;
>code:嵌入Java程序的类名称,必须以.class结尾。如example.class;
>codebase:编译后Java类的目录,可以是绝对目录,也可以是相对目录。默认值为当前JSP网页的目录;
>name:被嵌入的Applet或Bean的名称;
>align:设置被嵌入的程序在页面中显示的对齐方式,align的值可以是bottom、top、middle、left、right;
>height:被嵌入的程序在页面中显示的高度;
>width:被嵌入的程序在页面中显示的宽度;
>hspace:被嵌入的程序在页面中显示时距左右两边的空间;
>vspace:被嵌入的程序在页面中显示时上下端的空间。
下面是一段关于<jsp:plugin>动作的代码:
<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<f:view>
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>< jsp:plugin >动作</title>
</head>
<body>
<center>
<h3>这是一个< jsp:plugin>动作演示页面</h3>
<jsp:plugintype="applet" code="javatest.java" ></jsp:plugin>
</center>
</body>
</html>
</f:view>
Javatest.java:
package html;
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;
public class javatest extends Applet{
Image persion;
public void init() {
persion = getImage(getDocumentBase(),"app_logo.png");
}
public void paint(Graphics g) {
g.drawImage(persion, 100, 100, this);
}
}
5)、useBean动作
<jsp:useBean>动作用来装载一个在JSP页面中使用的JavaBeans。JavaBeans是用Java语言编写的可重用的软件组件。因此对开发者而言,在开发过程中可以发回Java组件重用的优势。下面是一个关于<jsp:useBean>动作的程序。
Welcome.java
public class welcome {
public welcome() { }
public String saywel(String name) {
String strmessage;
strmessage = "Hello" + name +"!";
return strmessage;
}
}
Usebean.jsp
<%@pagecontentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBeanid="saywelcome" scope="application"class="welcome"></jsp:useBean>
<html>
<head>
<metahttp-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>JSP Page</title>
</head>
<body>
<%request.setCharacterEncoding("gb2312"); %>
<%
String strmessage;
strmessage =saywelcome.saywel("Tom!");
out.println(strmessage);
%>
</body>
</html>