jsp标记之动作标记介绍
来源:互联网 发布:vasco软件下载 编辑:程序博客网 时间:2024/05/20 10:15
1.JSP的4个动作标记,一个是动作标记include,一个是动作标记param,一个是动作标记forward,还有一个是动作标记useBean。
(1).动作标记include,include动作标记的语法有以下两种:
<jsp:include page=""/>
<jsp:include page=""> </jsp:include>
在我之前的一篇文章中介绍过include指令标记,其中该标记和动作标记的语法格式不一样,include指令标记的格式为:<%@ include file=" " %>,但是该标记与动作标记include的作用都是处理所需文件,处理又有其不同的地方,include指令标记用嵌入方式处理文件,在编译阶段就处理所需文件,执行速度比较快,并且将当前的JSP页面和要嵌入的文件合并成一个新的JSP页面,而动作标记不使用嵌入方式来处理该文件,在JSP页面运行时(Java文件的字节码文件被加载运行)才处理文件,执行速度较慢,但是可以灵活地处理所需文件,其中动作标记处理的文件不是JSP文件,就将文件的内容发送到客户机,由客户机执行显示,如果处理的为JSP文件,就由Tomcat服务器执行这个JSP文件,在发送给客户机,由客户机显示结果。
接下来附上一个例子,首先新建一个Web项目,项目名为Test1,之后在该项目的WebRoot新建三个JSP文件,分别为test1.jsp,one.jsp,two.jsp,都将编码改为utf-8,接着在WebRoot里新建一个image文件夹,里面放一张图片img08.jpg,再新建一个文件夹music,里面放置一首名为wz.mp3的音乐文件,接下分别附上三个文件的代码:
test1.jsp文件代码,里面包含两个文件:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'test1.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <jsp:include page="one.jsp"/><!-- 包含one.jsp文件--> <jsp:include page="two.jsp"/><!-- 包含two.jsp文件--> </body></html>
one.jsp文件代码,播放背景音乐和展示图片,背景音乐循环播放:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'one.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <!-- 播放背景音乐和展示图片 --> <bgsound src="music/wz.mp3" loop="infinite"/><p>请欣赏图片和音乐</p> <img alt="1" src="image/img08.jpg"> </body></html>
two.jsp文件的代码,显示当前时间:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'two.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <!-- 使用Date类获得当前时间并输出在网页上! --> <p>当前时间为: <% Date date=new Date(); out.print(date.toString()); %> </body></html>
项目目录如下图所示:
接着部署此项目,开启Tomcat服务器,输入地址 http://localhost:8083/Test1/test1.jsp 后,效果如下:
(2).动作标记param,param动作标记可以作为include、forward动作标记的子标记来使用,语法格式如下:
<jsp:param name="名字" value="指定给name属性的值"/>
使用include动作标记处理所需要的JSP文件时,常用的param子标记,以便向动态加载的JSP页面传递必要的值,可使用Tomcat服务器提供的内置对象request获取param标记中name的属性所提供的value值。
接下来附上一个例子,在上面创建的Test1项目中的WebRoot目录新建两个JSP文件,分别为test2.jsp和three.jsp文件,编码改成utf-8,使用param子标记和include动作标记得到两数相加的结果:
test2.jsp文件的代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'test2.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <p>加载一个JSP文件,该文件负责计算两数之和: <jsp:include page="three.jsp"> <jsp:param value="44" name="number1"/> <jsp:param value="22" name="number2"/> </jsp:include> </body></html>
three.jsp文件的代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'three.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <% //获取param标记中name的属性 String number1=request.getParameter("number1"); String number2=request.getParameter("number2"); //把两个传递过来的字符串转为整型 int n1=Integer.parseInt(number1); int n2=Integer.parseInt(number2); int n=n1+n2;//两数相加后的值赋给n out.println("<br/>"+n1+"和"+n2+"两个数之和为:"+n);//显示输出结果 %> </body></html>
重新部署Test1项目,开启Tomcat服务器,输入地址 http://localhost:8083/Test1/test2.jsp 后,效果如下:
(3).动作标记forward,该标记的作用是,从该标记出现处停止当前JSP页面的继续执行,而转向执行forward动作标记中page属性所指定的JSP页面,即转发到另一个JSP页面,语法格式如下:
<jsp:forward page="要转向的页面"/><jsp:forward page="要转向的页面">param子标记</jsp:forward>
接下来附上一个例子,该例子利用forward动作标记和param子标记实现两数的相减,接着在Test1项目的WebRoot目录新建2个JSP页面,分别为Test3.jsp和four.jsp文件,编码改成utf-8:
Test3.jsp文件的代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'test3.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <p>使用forward动作标记和子标记param跳转到four.jsp页面,并计算出两数之差: <jsp:forward page="four.jsp"> <jsp:param value="88" name="number1"/> <jsp:param value="22" name="number2"/> </jsp:forward> </body></html>
four.jsp文件的代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'four.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> </head> <body> <% //分别获取param子标记传过来的值 String number1=request.getParameter("number1"); String number2=request.getParameter("number2"); //分别把获取到的值转换成整型 int n1=Integer.parseInt(number1); int n2=Integer.parseInt(number2); //两数相减赋给n int n=n1-n2; //输出显示结果 out.println("<br/>"+n1+"和"+n2+"两数的差为:"+n); %> </body></html>
重新部署Test1项目,开启Tomcat服务器,输入地址 http://localhost:8083/Test1/test3.jsp 后运行效果如下图所示:
(4).动作标记useBean,该标记用来创建并使用一个JavaBean,它是一个非常重要的动作标记,语法格式为:
<jsp:useBean id="" class="" scope=""/><jsp:useBean id="" class="" scope=""></jsp:useBean>
这个知识点涉及到JavaBean的知识,暂时不讲,等我写一篇JavaBean的再详细说。
2.以上就是全部内容,仅供大家学习参考,写得不好,请见谅,如有错误请指出,谢谢!
- jsp标记之动作标记介绍
- JSP标记之指令标记介绍
- jsp指令标记,动作标记,内置对象
- jsp使用动作标记setProperty
- jsp三大指令标记,七大动作标记、详解。
- <jsp:param>动作标记的用法详解
- <jsp:param>动作标记的用法详解
- jsp指令标记与动作指令
- JSP标记
- JSP标记
- Jsp 标记
- JSp中 include指令标记与<jsp:include>动作标记的区别
- param动作标记详解。
- 标记介绍
- JSP中include动作标记实现页面的动态切换
- JSP技术之三 JSP标记(tag)
- JSP标准标记库(介绍)
- Jsp之Tag文件和Tag标记
- Git Bash使用中遇到的环境变量的问题
- 学习Unity3D之GUI基础2。
- unity之飞机大战后续
- 用OpenCV处理视频
- Cocos2d-x 项目小结
- jsp标记之动作标记介绍
- android 声音的调用
- iOS移动网络类型判断
- 扩展欧几里德
- JavaScript:简单的对象
- 微信迭代二总结报告
- Git管理源代码
- Subclipse share project
- .net集合对象解惑篇