Java Web学习(17):JSP动作元素(二)

<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相关联的属性:

属性 描述
page page属性包含的是一个相对URL。page的值既可以直接给出,也可以在请求的时候动态计算,可以是一个JSP页面或者一个 Java Servlet.

<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="[email protected]" 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 html
PUBLIC "-//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>及不使用该动作元素执行结果的区别。

时间: 2024-10-12 20:02:09

Java Web学习(17):JSP动作元素(二)的相关文章

java web学习笔记-jsp篇

转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面   表现形式 所需技术 静态网页 网页内容固定,不会更新 html,css 动态网页 网页内容由程序动态显示,自动更新 html,css,DB,java/c#/php,javascript,xml,主流的动态网页脚本(jsp,asp.net,php) 1.2搭建java web开发环境 jdk1.7+tomc

java web 学习笔记 - jsp用的文件上传组件 SmartUpload

---恢复内容开始--- 1. SmartUpload 此控件在jsp中被广泛的使用,而FileUpload控件主要是用在框架中 2. 如果想要使用,需要在tomcat的lib目录中,将SmartUpload的jar包拷贝进来 3.通过表单上传文件,由于文件动不动就是几百k, 表单的方法必须是post,不可能用get方法进行地址重写. 另外,如果要上传文件的话,需要对表单进行封装 mutipart/form-data 以下是smartupload_demo01.jsp 表单封装之后,无法通过re

Java Web学习(16):JSP动作元素(一)

一JSP动作元素概述 (1)JSP动作元素简介 与JSP指令元素不同的是,JSP动作元素在请求处理阶段起作用.JSP动作元素是用XML语法写成的.利用JSP动作 可以动态地插入文件.重用JavaBean组件.把用户重定向到另外的页面.为Java插件生成HTML代码. JSP动作元素(action elements),动作元素为请求处理阶段提供信息.动作元素遵循XML元素的语法,有一个包 含元素名的开始标签,可以有属性.可选的内容.与开始标签匹配的结束标签. 动作元素只有一种语法,它符合XML标准

Java学习-036-JavaWeb_005 -- JSP 动作标识 - forward

JSP 动作主要作用是根据指定的动作进行相应的处理. 一.param 动作 用来给 HTML 文件和 JSP 文件传递参数的,经常和 forward.include.plugin 动作结合使用,语法格式为:<jsp:param name="username" value="admin"/> 二.forward 动作 forward 动作是用来请求信息转发到另一个页面的,它只有一个 page 属性,语法格式为:<jsp:forward page=&q

Java Web学习(二) Eclipse的配置

Java Web学习(二) Eclipse的配置 一.下载Eclipse 1.进入Eclipse官网,进行下载 上图,下载Eclipse IDE for JaveEE Developers 版本,然后根据windows系统32位或64位,进行选择(建议64位).如果你的机器内存过小,可以选择Eclipse的旧版本:Eclipse Indigo .Eclipse Juno . Eclipse Kepler 等版本. 2.解压缩安装 打开压缩包,将里面的Eclipse 拖出到指定位置,进行解压缩.

Java学习-037-JavaWeb_006 -- JSP 动作标识 - include

这个动作是指在当前的页面中包含一个或多个 JSP 页面或者 HTML 文件,语法:<jsp:include file="../jsp/login.jsp" flush="true"/> 其中,file 为加载文件所在的相对路径,flush 属性设置为 true,则自动刷新加载页面.若加载的文件或网页时需要传递参数,则语法格式如下所示: <jsp:include file="../jsp/login.jsp" flush=&quo

Java学习-038-JavaWeb_007 -- JSP 动作标识 - plugin

plugin 动作时用来在 JSP 页面中加载 Java Applet 或者 JavaBean 组件,语法格式如下所示: <jsp:plugin type="bean|applet"/> [code="classFileName"] [codebase="classFileDirectoryName"] [name="instanceName"] [align="left|top|right|bottom

(二)JSP动作元素

1.JSP动作元素的语法如下: <jsp:XXX/>或者<jsp:XXX></jsp:XXX> (1)<jsp:include>动作元素 <jsp:include>动作元素用来包含静态和动态的文件.若为静态文件,则不会进行任何处理,单纯的加到JSP页面中.若为动态的文件,则会先进行处理,然后将处理结果加到JSP页面中.语法格式如下: <jsp:include page="包含文件URL地址" flush="tr

java web 学习路线

Java Web学习路线   Java分成J2ME(移动应用开发),J2SE(桌面应用开发),J2EE(Web企业级应用),所以Java并不是单机版的,只是面向对象语言.建议如果学习Java体系的话可以这样去学习:   *第一阶段:Java基础,包括Java语法,面向对象特征,常见API,集合框架: *第二阶段:Java界面编程,包括AWT,事件机制,SWING,这个部分也可以跳过,用的时候再看都能来及: *第三阶段:Java API:输入输出,多线程,网络编程,反射注解等,Java的精华部分: