`
勤业思行
  • 浏览: 83787 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论

JSP系列三:动作元素

    博客分类:
  • JSP
阅读更多

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>


 

 

0
1
分享到:
评论

相关推荐

    JSP 动作元素

    动作元素基本上都是预定义的函数,JSP规范定义了一系列的标准动作,它用JSP作为前缀,可用的标准动作元素如下: 语法 描述 jsp:include 在页面被请求的时候引入一个文件。 jsp:useBean 寻找或者实例化一个...

    jsp网络编程:从基础到实践 源码

    - **动作(Actions)**:如`&lt;jsp:include&gt;`, `&lt;jsp:forward&gt;`, `&lt;jsp:useBean&gt;`等,它们是JSP中的组件交互方式。 3. **JSP生命周期**: JSP页面在服务器上经历编译、初始化、服务和销毁四个阶段。在编译阶段,JSP...

    JSP设计(第三版)

    3. **JSP动作**:JSP提供了一系列的动作标签,如&lt;jsp:include&gt;用于动态包含页面,&lt;jsp:forward&gt;用于转发请求,&lt;jsp:useBean&gt;用于实例化和管理JavaBean等。 4. **EL(Expression Language)**:EL是JSP 2.0引入的一...

    jsp实用教程笔记

    四、JSP动作元素 1. &lt;jsp:include&gt;:与include指令类似,但可以动态地决定包含哪个文件。 2. &lt;jsp:forward&gt;:将请求转发到另一个资源,实现请求调度。 3. &lt;jsp:params&gt;:传递参数给被调用的资源。 4. &lt;jsp:useBean&gt;...

    JSP应用开发详解第三版源代码(整理版)B

    1. **JSP基本元素**:包括JSP指令(如page、include、taglib)、脚本元素(声明、脚本let、表达式)以及动作元素(如jsp:useBean、jsp:setProperty等)。 2. **JSP内置对象**:如request、response、session、...

    JSP三套试卷有答案

    6. **JSTL(JavaServer Pages Standard Tag Library)**: 提供了一系列标准的JSP标签库,简化了JSP开发,如Core、XML、JDBC等标签。 **JSP生命周期** JSP的生命周期包括三个阶段:翻译、初始化和服务。 1. **翻译...

    jsp经典代码

    通常,JSP(JavaServer Pages)是用于创建动态网页的技术,它结合了HTML、Java代码和特定的JSP动作元素。在JSP中,经典代码可能包括一些基础的脚本let、指令、动作标签以及内置对象的使用。 1. **JSP脚本元素**: ...

    JSP网页编程内容总结PPT

    4. **JSP动作元素** - `jsp:include`:动态包含其他页面,与`include`指令的区别在于可以传递参数。 - `jsp:forward`:将请求转发到另一个页面。 - `jsp:param`:为动作元素提供参数。 - `jsp:useBean`:实例化...

    jsp大作业上机练习

    清华大学的JSP课程强调理论与实践结合,通过一系列的上机练习,帮助学生掌握以下技能: 1. 创建基本的JSP页面,理解JSP语法。 2. 使用JSP内置对象进行数据处理。 3. 实现用户登录和注册功能,涉及会话管理。 4. ...

    学会jsp,突击jsp

    2. **JSP动作元素**:比如`&lt;jsp:useBean&gt;`, `&lt;jsp:setProperty&gt;`, `&lt;jsp:getProperty&gt;`等,用于管理和操作JavaBean。`&lt;jsp:include&gt;`和`&lt;jsp:forward&gt;`也是动作元素,但它们属于指令的一部分。 3. **脚本元素**:...

    JSP快速入门比较简单一些入门知识

    3. **JSP动作**:动作元素如`jsp:useBean`、`jsp:setProperty`、`jsp:getProperty`等,用于在页面间传递数据和管理Java对象。 4. **脚本元素**:包括声明(declarations)、脚本(scriptlets)、表达式(expressions...

    JSP程序设计课件和代码

    2. JSP指令和动作:介绍page、include、forward等指令以及jsp:useBean、jsp:setProperty等动作的使用。 3. JSP内置对象:如request、response、session、application等对象的作用和用法。 4. JSP生命周期:解释JSP...

    JSP程序设计复习纲要

    - JSP页面元素:指令(Directives)、脚本元素(Scriptlets)、表达式(Expressions)、声明(Declarations)、动作(Actions)等。 3. **JSP指令** - page指令:设置JSP页面的属性,如编码、导入包等。 - ...

    jsp案例精编 jsp案例精编

    3. JSP动作标签:如`&lt;jsp:useBean&gt;`, `&lt;jsp:setProperty&gt;`, `&lt;jsp:getProperty&gt;`等,它们允许在JSP页面中操作JavaBeans。通过案例学习,可以理解如何有效地利用这些标签进行对象管理。 4. EL(Expression Language...

    JSP核心技术

    动作元素是XML语法,用于在运行时执行操作,如`jsp:include`、`jsp:forward`、`jsp:params`等。这些动作元素比指令更灵活,可以在页面生命周期的不同阶段操作。 5. **内置对象**: JSP提供了若干内置对象,可以...

    JSP案例开发集锦源代码

    动作元素如`&lt;jsp:useBean&gt;`用于实例化JavaBean。 2. **JSP生命周期**: JSP页面经历翻译、编译、加载、初始化、服务和销毁六个阶段。在翻译阶段,JSP被转换为Servlet;在编译阶段,Servlet被编译成字节码;加载和...

    jsp网站源码jsp网站源码

    JSP还支持一系列的动作元素,如`&lt;jsp:include&gt;`、`&lt;jsp:forward&gt;`、`&lt;jsp:params&gt;`等,它们简化了页面的组合和控制流程。 - `&lt;jsp:include&gt;`:在运行时动态地插入一个页面。 - `&lt;jsp:forward&gt;`:将请求转发到另一个...

    jsp程序开发技术PPT

    三、JSP动作元素 JSP动作元素是XML格式的标签,用于执行特定的操作,如插入Java Bean、转发请求、包含其他资源等。常见的动作元素包括: - `jsp:useBean`:实例化或查找Java Bean。 - `jsp:setProperty`:设置Java...

    Jsp系列例程之二---plugin

    `&lt;jsp:plugin&gt;`是JSP 1.2引入的一个动作元素,它的主要作用是根据用户的浏览器类型和版本,自动生成对应的HTML代码来加载Java Applet或Java Web Start应用。 下面是一些关于`&lt;jsp:plugin&gt;`标签的关键知识点: 1. *...

Global site tag (gtag.js) - Google Analytics