JSP动作元素:比较简单,但是一些不常用的在使用时一时想不起来。自己做一下备忘!
JSP动作元素可以用来动态地包含文件、网页跳转及使用JavaBean组件等。
JSP动作元素的一般语法是:
<jsp:xxx />
或者
<jsp:xxx> </jsp:xxx>
JSP动作元素可以分为以下五类:
第一类是与存取JavaBean有关:
<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>
第二类是JSP1.2就有的基本动作元素: <jsp:include>,<jsp:forward>,<jsp:param>,<jsp:plugin>,<jsp:params>,<jsp:fallback>
第三类是JSP2.0新增的动作元素,主要与JSP document有关: <jsp:root>,<jsp:declaration>,<jsp:scriptlet>,<jsp:expressin>,<jsp:text>,<jsp:output>
第四类是JSP2.0新增的动作元素,主要用来动态生成XML元素标签的值:<jsp:attribute>,<jsp:body>,<jsp:element>
第五类是JSP2.0新增的动作元素,主要用在Tag File中:
<jsp:invoke>,<jsp:doBody>
一、<jsp:include>:用于包含静态和动态的文件。语法格式:
<jsp:include page="包含文件URL地址" flush="true|false">
flush默认值为FALSE。
1、包含静态文件:只是单纯地把静态文件内容加到JSP页面中。不会进行任何处理。
2、包含动态文件:会先对动态文件进行处理,然后将处理结果加到JSP页面中。
例:includeJSP.jsp
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head> <title>包含动态文件</title> </head> <body> 使用jsp:include动态元素包含动态文件<br> 当前日期与时间:<jsp:include page="content.jsp"></jsp:include> </body> </html>
被包含的JSP文件:content.jsp
<%@ page import="java.util.*"%> <%=new Date()%>
这时,将会将content.jsp页面的运行结果返回给includeJSP.jsp页面。
3、<jsp:include>和<%@ include%> 的区别:<%@ include %>指令元素只是将页面的内容静态地包含进来,如果被包含文件中有JSP代码,则会执行该代码。而<jsp:include>是不会执行静态文件中的JSP代码。
例:静态文件content.txt
<%@ page import="java.util.*"%> <%=new Date()%>
主页面: includeJSP.jsp
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head> <title>包含动态文件</title> </head> <body> 使用jsp:include动态元素包含动态文件<br> 当前日期与时间:<jsp:includepage="content.txt"></jsp:include> 使用include指令元素包含一个包含JSP代码的文本文件<br> 当前日期与时间:<%@ include file="content2.txt"%> </body> </html>
此时,页面的第一部分将直接输出content.txt文本中的内容:JSP代码。而第二部分将输出content.txt中的JSP代码执行后的结果:当前时间。
二、<jsp:forward>:执行页面的跳转。执行时会先执行<jsp:forward>前面的代码再执行跳转。
三、<jsp:param>:用于传递参数。一般与<jsp:include>、<jsp:forward>联合使用。语法格式为:
<jsp:param name="参数名" value="参数值" />
1、与<jsp:include>使用
ParamInclude.jsp:把参数age的值19传递到<jsp:include>中的page中。
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head> <title>包含JSP文件并传递参数</title> </head> <body> 使用include动作元素包含一个包含JSP文件,并传递参数<br> <jsp:include page="contentDemo.jsp"> <jsp:param name="age" value="19"/> </jsp:include> </body> </html>
contentDemo.jsp
<%@ page language="java" contentType="text/html;charset=gb2312"%> <h2>被包含页</h2> <p>接受到的参数:</p> <% String strAge = request.getParameter("age"); // 接受参数 %> <%--输出参数内容--%> <%="age参数值为" + strAge %>
输出:age的参数值为19。
2、与<jsp:forward>联合使用:可以实现跳转页面的同时向跳转页面传递参数
ParamForward.jsp:将页面跳转到<jsp:forward>的page中,并把参数age的值19传递到该跳转页面。
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head> <title>跳转并传递参数</title> </head> <body> 使用forward动作元素跳转到另一个JSP文件,并传递参数<br> <jsp:forward page="ForwardedDemo.jsp"> <jsp:param name="age" value="19"/> </jsp:forward> </body> </html>
ForwardDemo.jsp:
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head> <title>跳转到的页面</title> </head> <body> <h2>跳转到的页面</h2> <p>接受到的参数:</p> <% String strAge = request.getParameter("age"); // 接受参数 %> <%--输出参数内容--%> <%="age参数值为" + strAge %> </body> </html>
四、<jsp:plugin>,<jsp:params>,<jsp:fallback>:这三个动作元素一般都是搭配使用的。
1、<jsp:plugin>:用来再JSP后总嵌入Java插件。比如Applet。<jsp:plugin>会自动根据浏览器版本替换<object>标签和<embed>标签。其中<object>用于HTML4.0版本,而<embed>用于HTML3.2版本。<jsp:plugin>的语法格式为:
<jsp:plugin type="bean|applet" name="Applet名称" code="Java类名" align="对齐方式" height="高度" width="宽度" hspace="水平间距" vspace="垂直间距" archive="预先加载的类列表" jreversion="JRE版本" iepluginurl="url" nspluginurl="url" codebase="Java类所在目录"> </jsp:plugin>
例:JSPPlugin.jsp:包含了一个在当前目录下的Applet目录下的一个Clock.class的Applet。
<%@ page language="java" contentType="text/html;charset=gb2312"%> <html> <head> <title>执行Applet</title> </head> <body> <jsp:plugin code="Clock.class" codebase="Applet" type="applet"> <jsp:params> <jsp:param name="bgcolor" value="000000"/> <jsp:param name="fgcolor1" value="ff0000"/> <jsp:param name="fgcolor2" value="00ff00"/> </jsp:params> <jsp:fallback> 不能加载该Applet </jsp:fallback> </jsp:plugin> </body> </html>
通过反编译得到的Clock.class为:
import java.applet.Applet; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; public class Clock extends Applet implements Runnable { private volatile Thread timer; private int lastxs; private int lastys; private int lastxm; private int lastym; private int lastxh; private int lastyh; private SimpleDateFormat formatter; private String lastdate; private Font clockFaceFont; private Date currentDate; private Color handColor; private Color numberColor; private int xcenter = 80; private int ycenter = 55; public void init() { this.lastxs = (this.lastys = this.lastxm = this.lastym = this.lastxh = this.lastyh = 0); this.formatter = new SimpleDateFormat("EEE MMM dd hh:mm:ss yyyy", Locale.getDefault()); this.currentDate = new Date(); this.lastdate = this.formatter.format(this.currentDate); this.clockFaceFont = new Font("Serif", 0, 14); this.handColor = Color.blue; this.numberColor = Color.darkGray; try { setBackground( new Color(Integer.parseInt(getParameter("bgcolor"), 16))); } catch (NullPointerException localNullPointerException) { } catch (NumberFormatException localNumberFormatException) { } try { this.handColor = new Color(Integer.parseInt(getParameter("fgcolor1"), 16)); } catch (NullPointerException localNullPointerException1) { } catch (NumberFormatException localNumberFormatException1) { } try { this.numberColor = new Color(Integer.parseInt(getParameter("fgcolor2"), 16)); } catch (NullPointerException localNullPointerException2) { } catch (NumberFormatException localNumberFormatException2) { } resize(300, 300); } public void update(Graphics g) { int s = 0; int m = 10; int h = 10; this.currentDate = new Date(); this.formatter.applyPattern("s"); try { s = Integer.parseInt(this.formatter.format(this.currentDate)); } catch (NumberFormatException n) { s = 0; } this.formatter.applyPattern("m"); try { m = Integer.parseInt(this.formatter.format(this.currentDate)); } catch (NumberFormatException n) { m = 10; } this.formatter.applyPattern("h"); try { h = Integer.parseInt(this.formatter.format(this.currentDate)); } catch (NumberFormatException n) { h = 10; } int xs = (int)(Math.cos(s * 3.141592653589793D / 30.0D - 1.570796326794897D) * 45.0D + this.xcenter); int ys = (int)(Math.sin(s * 3.141592653589793D / 30.0D - 1.570796326794897D) * 45.0D + this.ycenter); int xm = (int)(Math.cos(m * 3.141592653589793D / 30.0D - 1.570796326794897D) * 40.0D + this.xcenter); int ym = (int)(Math.sin(m * 3.141592653589793D / 30.0D - 1.570796326794897D) * 40.0D + this.ycenter); int xh = (int)(Math.cos((h * 30 + m / 2) * 3.141592653589793D / 180.0D - 1.570796326794897D) * 30.0D + this.xcenter); int yh = (int)(Math.sin((h * 30 + m / 2) * 3.141592653589793D / 180.0D - 1.570796326794897D) * 30.0D + this.ycenter); this.formatter.applyPattern("EEE MMM dd HH:mm:ss yyyy"); String today = this.formatter.format(this.currentDate); g.setFont(this.clockFaceFont); g.setColor(getBackground()); if ((xs != this.lastxs) || (ys != this.lastys)) { g.drawLine(this.xcenter, this.ycenter, this.lastxs, this.lastys); g.drawString(this.lastdate, 5, 125); } if ((xm != this.lastxm) || (ym != this.lastym)) { g.drawLine(this.xcenter, this.ycenter - 1, this.lastxm, this.lastym); g.drawLine(this.xcenter - 1, this.ycenter, this.lastxm, this.lastym); } if ((xh != this.lastxh) || (yh != this.lastyh)) { g.drawLine(this.xcenter, this.ycenter - 1, this.lastxh, this.lastyh); g.drawLine(this.xcenter - 1, this.ycenter, this.lastxh, this.lastyh); } g.setColor(this.numberColor); g.drawString(today, 5, 125); g.drawLine(this.xcenter, this.ycenter, xs, ys); g.setColor(this.handColor); g.drawLine(this.xcenter, this.ycenter - 1, xm, ym); g.drawLine(this.xcenter - 1, this.ycenter, xm, ym); g.drawLine(this.xcenter, this.ycenter - 1, xh, yh); g.drawLine(this.xcenter - 1, this.ycenter, xh, yh); this.lastxs = xs; this.lastys = ys; this.lastxm = xm; this.lastym = ym; this.lastxh = xh; this.lastyh = yh; this.lastdate = today; this.currentDate = null; } public void paint(Graphics g) { g.setFont(this.clockFaceFont); g.setColor(this.handColor); g.drawArc(this.xcenter - 50, this.ycenter - 50, 100, 100, 0, 360); g.setColor(this.numberColor); g.drawString("9", this.xcenter - 45, this.ycenter + 3); g.drawString("3", this.xcenter + 40, this.ycenter + 3); g.drawString("12", this.xcenter - 5, this.ycenter - 37); g.drawString("6", this.xcenter - 3, this.ycenter + 45); g.setColor(this.numberColor); g.drawString(this.lastdate, 5, 125); g.drawLine(this.xcenter, this.ycenter, this.lastxs, this.lastys); g.setColor(this.handColor); g.drawLine(this.xcenter, this.ycenter - 1, this.lastxm, this.lastym); g.drawLine(this.xcenter - 1, this.ycenter, this.lastxm, this.lastym); g.drawLine(this.xcenter, this.ycenter - 1, this.lastxh, this.lastyh); g.drawLine(this.xcenter - 1, this.ycenter, this.lastxh, this.lastyh); } public void start() { this.timer = new Thread(this); this.timer.start(); } public void stop() { this.timer = null; } public void run() { Thread me = Thread.currentThread(); while (this.timer == me) { try { Thread.currentThread(); Thread.sleep(100L); } catch (InterruptedException localInterruptedException) { } repaint(); } } public String getAppletInfo() { return "Title: A Clock \nAuthor: Rachel Gollub, 1995 \nAn analog clock."; } public String[][] getParameterInfo() { String[][] info = { { "bgcolor", "hexadecimal RGB number", "The background color. Default is the color of your browser." }, { "fgcolor1", "hexadecimal RGB number", "The color of the hands and dial. Default is blue." }, { "fgcolor2", "hexadecimal RGB number", "The color of the second hand and numbers. Default is dark gray." } }; return info; } }
2、<jsp:params>:用来给Bean或者Applet传递参数,一般搭配<jsp:param>使用。语法格式:
<jsp:plugin> <jsp:params> <jsp:param name="name" value="value" /> </jsp:params> </jsp:plugin>
例子在上面的JSPPlugin.jsp中。
3、<jsp:fallback>:用于指定当浏览器不支持或无法启动Bean或Applet时,在页面上打印输出的错误提示信息。其语法格式为:
<jsp:plugin> <jsp:fallback>错误提示信息</jsp:fallback> </jsp:plugin>
分享到:
相关推荐
动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下: 语法 描述 jsp:include 在页面被请求的时候引入一个文件。 jsp:useBean 寻找或者实例化一个...
- **动作(Actions)**:如`<jsp:include>`, `<jsp:forward>`, `<jsp:useBean>`等,它们是JSP中的组件交互方式。 3. **JSP生命周期**: JSP页面在服务器上经历编译、初始化、服务和销毁四个阶段。在编译阶段,JSP...
3. **JSP动作**:JSP提供了一系列的动作标签,如<jsp:include>用于动态包含页面,<jsp:forward>用于转发请求,<jsp:useBean>用于实例化和管理JavaBean等。 4. **EL(Expression Language)**:EL是JSP 2.0引入的一...
四、JSP动作元素 1. <jsp:include>:与include指令类似,但可以动态地决定包含哪个文件。 2. <jsp:forward>:将请求转发到另一个资源,实现请求调度。 3. <jsp:params>:传递参数给被调用的资源。 4. <jsp:useBean>...
1. **JSP基本元素**:包括JSP指令(如page、include、taglib)、脚本元素(声明、脚本let、表达式)以及动作元素(如jsp:useBean、jsp:setProperty等)。 2. **JSP内置对象**:如request、response、session、...
6. **JSTL(JavaServer Pages Standard Tag Library)**: 提供了一系列标准的JSP标签库,简化了JSP开发,如Core、XML、JDBC等标签。 **JSP生命周期** JSP的生命周期包括三个阶段:翻译、初始化和服务。 1. **翻译...
通常,JSP(JavaServer Pages)是用于创建动态网页的技术,它结合了HTML、Java代码和特定的JSP动作元素。在JSP中,经典代码可能包括一些基础的脚本let、指令、动作标签以及内置对象的使用。 1. **JSP脚本元素**: ...
4. **JSP动作元素** - `jsp:include`:动态包含其他页面,与`include`指令的区别在于可以传递参数。 - `jsp:forward`:将请求转发到另一个页面。 - `jsp:param`:为动作元素提供参数。 - `jsp:useBean`:实例化...
清华大学的JSP课程强调理论与实践结合,通过一系列的上机练习,帮助学生掌握以下技能: 1. 创建基本的JSP页面,理解JSP语法。 2. 使用JSP内置对象进行数据处理。 3. 实现用户登录和注册功能,涉及会话管理。 4. ...
2. **JSP动作元素**:比如`<jsp:useBean>`, `<jsp:setProperty>`, `<jsp:getProperty>`等,用于管理和操作JavaBean。`<jsp:include>`和`<jsp:forward>`也是动作元素,但它们属于指令的一部分。 3. **脚本元素**:...
3. **JSP动作**:动作元素如`jsp:useBean`、`jsp:setProperty`、`jsp:getProperty`等,用于在页面间传递数据和管理Java对象。 4. **脚本元素**:包括声明(declarations)、脚本(scriptlets)、表达式(expressions...
2. JSP指令和动作:介绍page、include、forward等指令以及jsp:useBean、jsp:setProperty等动作的使用。 3. JSP内置对象:如request、response、session、application等对象的作用和用法。 4. JSP生命周期:解释JSP...
- JSP页面元素:指令(Directives)、脚本元素(Scriptlets)、表达式(Expressions)、声明(Declarations)、动作(Actions)等。 3. **JSP指令** - page指令:设置JSP页面的属性,如编码、导入包等。 - ...
3. JSP动作标签:如`<jsp:useBean>`, `<jsp:setProperty>`, `<jsp:getProperty>`等,它们允许在JSP页面中操作JavaBeans。通过案例学习,可以理解如何有效地利用这些标签进行对象管理。 4. EL(Expression Language...
动作元素是XML语法,用于在运行时执行操作,如`jsp:include`、`jsp:forward`、`jsp:params`等。这些动作元素比指令更灵活,可以在页面生命周期的不同阶段操作。 5. **内置对象**: JSP提供了若干内置对象,可以...
动作元素如`<jsp:useBean>`用于实例化JavaBean。 2. **JSP生命周期**: JSP页面经历翻译、编译、加载、初始化、服务和销毁六个阶段。在翻译阶段,JSP被转换为Servlet;在编译阶段,Servlet被编译成字节码;加载和...
JSP还支持一系列的动作元素,如`<jsp:include>`、`<jsp:forward>`、`<jsp:params>`等,它们简化了页面的组合和控制流程。 - `<jsp:include>`:在运行时动态地插入一个页面。 - `<jsp:forward>`:将请求转发到另一个...
三、JSP动作元素 JSP动作元素是XML格式的标签,用于执行特定的操作,如插入Java Bean、转发请求、包含其他资源等。常见的动作元素包括: - `jsp:useBean`:实例化或查找Java Bean。 - `jsp:setProperty`:设置Java...
`<jsp:plugin>`是JSP 1.2引入的一个动作元素,它的主要作用是根据用户的浏览器类型和版本,自动生成对应的HTML代码来加载Java Applet或Java Web Start应用。 下面是一些关于`<jsp:plugin>`标签的关键知识点: 1. *...