Java Web学习(17):JSP动作元素(二)
来源:互联网 发布:发票网络认证系统 编辑:程序博客网 时间:2024/06/05 19:35
<jsp:include>动作元素
(1)<jsp:include>动作元素
<jsp:include>动作元素用来包含静态和动态的文件。该动作把指定文件插入正在生成的页面。
<jsp:include>动作元素语法格式如下:
<jsp:include page="相对URL地址" flush="true" />
前面已经介绍过include指令,它是在JSP文件被转换成Servlet的时候引入文件,而这里的<jsp:include>动作元素不同,插入文件的时间是在页面被请求的时候。
以下是include动作相关的属性列表:
实例:以下我们定义了两个文件date.jsp和include.jsp
date.jsp页面源代码:
<%@page import="java.text.SimpleDateFormat"%><%@page import="java.util.Date"%><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>date页面</title></head><body> <% Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日"); String string = sdf.format(date); out.println(string); %></body></html>
include.jsp页面源代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>include指令</title></head><body> <h1>include指令</h1> <hr> <%@ include file="date.jsp" %></body></html>
运行结果:
(2)include指令与include动作的区别
JSP指令: 相当于是把被包含的文件的代码原封不动的放进了包含它的文件 ,编译的时候生成一个class文件。
JSP动作: 被包含的文件和包含的文件在编译的时候生成的是两个class文件。
<%@ include %>指令编译后文件包括其所包含jsp的源代码。
<jsp:include>动作元素编译后文件不包括,只写明所包含文件的名字,其和所包含文件之间是相对独立的存
在。
页面内容经常变化时更适合使用<jsp:include>动作元素。
页面内容不经常变化时更适合使用include指令。
<jsp:include>动作元素包含的是执行结果,而include指令包含的是文件内容。
<jsp:include>动作元素在请求期间被执行,而include指令在编译期页面间被执行。
include指令与include动作比较图表:
include指令保存的文件:
include动作保存的文件:
<jsp:forward>动作元素
<jsp:forward>动作元素把请求转到另外的页面。<jsp:forward>动作元素只有一个属性page。
<jsp:forward>动作元素语法格式如下所示:
<jsp:forward page="相对 URL 地址" />
以下是forward相关联的属性:
<jsp:forward>动作元素等同于服务器内部跳转或转发:
request.getRequestDispatcher("/url").forward(request,response);
实例:我们使用了三个文件,分别是
login.jsp页面源代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登录界面</title></head><body> <h1>系统登录</h1> <hr> <form action="forward_action.jsp" name="loginForm" method="post"> <table> <tr> <td>用户名:</td> <td><input type="text" name="username" /></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td colspan="2"><input type="submit" value="登录" /></td> </tr> </table> </form></body></html>
users.jsp页面源代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>用户资料界面</title></head><body> <h1>用户资料</h1> <hr> <% request.setCharacterEncoding("UTF-8"); String username = ""; String password = ""; if(request.getParameter("username") != null){ username = request.getParameter("username"); } if(request.getParameter("password") != null){ password = request.getParameter("password"); } %> 用户名:<%=username %><br> 密码:<%=password %><br></body></html>
forward_action.jsp页面源代码:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>forward动作元素</title></head><body> <h1>forward动作元素</h1> <hr> <jsp:forward page="users.jsp" /> <!-- 上面的动作等同于下面的服务器内部转发 --> <%-- <% request.getRequestDispatcher("users.jsp").forward(request, response); %> --%></body></html>
运行结果:
<jsp:param>动作元素
常常与<jsp:forward >动作元素一起使用。
<jsp:param>动作元素语法:
<jsp:param name="参数名" value="参数值" />
实例:
还是那个login.jsp页面,修改的地方为:
增加一个dologin.jsp页面:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>登录界面</title></head><body> <jsp:forward page="users.jsp"> <jsp:param value="admin@123.net" name="email"/> <jsp:param value="888888" name="password"/> </jsp:forward></body></html>在users.jsp页面增加代码:
运行结果:
<jsp:plugin>动作元素
<jsp:plugin>动作元素用来根据浏览器的类型,插入通过Java插件运行Java Applet所必需的OBJECT或EMBED元素。如果需要的插件不存在,它会下载插件,然后执行Java组件。 Java组件可以是一个applet或一个JavaBean。
plugin动作有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向Applet或Bean传递参数。
以下是使用<jsp:plugin>动作元素的典型实例:
<jsp:plugin type="applet" codebase="dirname" code="MyApplet.class" width="60" height="80"> <jsp:param name="fontcolor" value="red" /> <jsp:param name="background" value="black" /> <jsp:fallback> Unable to initialize Java Plugin </jsp:fallback> </jsp:plugin>
如果你有兴趣可以尝试使用applet来测试<jsp:plugin>动作元素,<jsp:fallback>动作元素是一个新元素,在组件出现故障的错误是发送给用户错误信息。
<jsp:element> 、 <jsp:attribute>、 <jsp:body>动作元素
<jsp:element> 、 <jsp:attribute>、 <jsp:body>动作元素动态定义XML元素。动态是非常重要的,这就意味着XML元素在编译时是动态生成的而非静态。
以下实例动态定义了XML元素:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body> <jsp:element name="xmlElement"> <jsp:attribute name="xmlElementAttr"> 属性值 </jsp:attribute> <jsp:body> XML 元素的主体 </jsp:body> </jsp:element></body></html>
浏览器访问以下页面,输出结果如下所示:
<jsp:text>动作元素
<jsp:text>动作元素允许在JSP页面和文档中使用写入文本的模板,语法格式如下:
<jsp:text>模板数据</jsp:text>
以上文本模板不能包含其他元素,只能只能包含文本和EL表达式。请注意,在XML文件中,不能使用表达式如 ${whatever > 0},因为>符号是非法的。 我们可以使用 ${whatever gt 0}表达式或者嵌入在一个CDATA部分的值。
<jsp:text><![CDATA[<br>]]></jsp:text>
如果需要XHTML中声明DOCTYPE,必须使用到<jsp:text>动作元素,实例如下:
<jsp:text><![CDATA[<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd">]]></jsp:text><head><title>jsp:text action</title></head><body><books><book><jsp:text> Welcome to JSP Programming</jsp:text></book></books></body></html>
你可以对以上实例尝试使用<jsp:text>及不使用该动作元素执行结果的区别。
- Java Web学习(17):JSP动作元素(二)
- Java Web学习:JSP动作元素
- Java Web学习(16):JSP动作元素(一)
- Java学习笔记之JSP动作元素
- java web jsp学习笔记--概述-常用语法,指令,动作元素,隐式对象,域对象
- java web —— JSP指令与动作元素
- Java web----JSP动作标签
- 从零开始学习Java Web(九):JSP标准动作
- JSP(二) —— JSP动作元素
- jsp动作元素:<jsp:include>动作元素
- jsp动作元素:<jsp:forward>动作元素
- JSP动作元素
- jsp动作元素
- jsp动作元素
- jsp动作元素
- JSP动作元素详解
- JSP动作元素详解
- JSP动作元素
- jsoup
- HDU5640(水)
- std::map 通过遍历删除满足某些条件元素的两种方式
- Android之学习路线
- 【FFmpeg】ffplay播放rtsp视频流花屏问题
- Java Web学习(17):JSP动作元素(二)
- 数据结构(一)线性表
- js对json对象的增加
- gitignore无效的解决办法
- UI面板拖放
- TableLayout表格布局简介
- Hive(一)数据类型、文件格式和数据定义
- webview自动适应高度的方法
- C++实现RTMP协议发送H.264编码及AAC编码的音视频