动作是第三种类型的语法元素,它们被转换成Java 代码来执行操作,如访问一个Java对象或调用方法。

一. useBean

  useBean将创建一个关联Java对象的脚本变量。这 是早期分离的表示层和业务逻辑的手段。随着其他技术 的发展,如自定义标签和表达语言,现在很少使用 useBean方式。

例: 利用useBean给quantity赋值

<jsp:useBean id="quantity" class="java.lang.String" >${quantity="1.25"}</jsp:useBean>
<fmt:parseNumber var="formattedNumber" type="number" value="${quantity}"/>
${quantity}

例:

newFile.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@ page import="java.text.DateFormat" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p></p>
<jsp:useBean id="today" class="java.util.Date"/>
<%=today%>
</body>
</html>

在Tomcat中,上述代码被替换成如下代码:

<%-- 部分代码 %-->
out.write("<title>Insert title here</title>\r\n");
out.write("</head>\r\n");
out.write("<body>\r\n");
out.write("<p></p>\r\n");
java.util.Date today = null;
today = (java.util.Date) _jspx_page_context.getAttribute("today", javax.servlet.jsp.PageContext.PAGE_SCOPE);
if (today == null){
today = new java.util.Date();
_jspx_page_context.setAttribute("today", today, javax.servlet.jsp.PageContext.PAGE_SCOPE);
}
out.write('\r');
out.write('\n');
out.print(today);
out.write("\r\n");
out.write("</body>\r\n");
out.write("</html>");

输出效果

二. setProperty和getProperty

  setProperty动作可对一个Java对象设置属性,而 getProperty则会输出Java对象的一个属性。清单3.11中 的getSetPropertyTest.jsp页面展示如何设置和输出定义 在清单3.10中的Employee类实例的firstName属性。

package main;

public class Employee {
private String id;
private String firstName;
private String lastName; public String getId() {
return this.id;
} public void setId(String id) {
this.id = id;
} public String getFirstName() {
return this.firstName;
} public void setFirstName(String firstName) {
this.firstName = firstName;
} public String getLastName() {
return this.lastName;
} public void setLastName(String lastName) {
this.lastName = lastName;
} }
<%@ page  language="java"  contentType="text/html charset=utf-8"  pageEncoding="utf-8" %>
<html>
<head><title>getProperty</title></head>
<body>
<%-- 设置id employee指向的类为main.Employee %-->
<jsp:useBean id="employee" class="main.Employee"/>
<%-- 通过java bean 设置调用setFirstName()函数 %-->
<jsp:setProperty name="employee" property="firstName" value="Abigail" />
<%--通过java bean 设置调用getFirstName()函数 %-->
First Name: <jsp:getProperty name="employee" property="firstName" />
</body>
</html>

四: include

  include动作用来动态地引入另一个资源。可以引入 另一个JSP页面,也可以引入一个Servlet或一个静态的 HTML页面 ,                 html代码会叠加............

这里,理解include指令和include动作非常重要。对 于include指令,资源引入发生在页面转换时,即当JSP 容器将页面转换为生成的Servlet时。而对于include动 作,资源引入发生在请求页面时。因此,使用include动 作是可以传递参数的,而include指令不支持。 第二个不同是,include指令对引入的文件扩展名不 做特殊要求。但对于include动作,若引入的文件需以 JSP页面处理,则其文件扩展名必须是JSP。若使用.jspf 为扩展名,则该页面被当作静态文件

<%@ page  language="java"  contentType="text/html charset=utf-8"  pageEncoding="utf-8" %>
<html>
<head><title>getProperty</title></head>
<body>
hello;
<%-- 首先引入welcome.jsp页面 --%><%-- 然后传递参数text和text值 --%>
<jsp:include page="welcome.jsp">
<jsp:param value="How are you !" name="text"/>
</jsp:include>
</body>
</html>
<%@page language="java"  contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8" %>
<%@ page import="java.util.Enumeration" %>
<html>
<head>
<body>
<div>
<%-- 获取text的值 --%>
<% String text= request.getParameter("text");
%> <%
out.print(text);
%>
</div>
</body>
</head>
</html>

五.forward

   forward将当前页面转向到其他资源。下面代码将 从当前页转向到welcome.jsp页面:(只会输出welcome一个页面)

<%@ page  language="java"  contentType="text/html charset=utf-8"  pageEncoding="utf-8" %>
<html>
<head><title>getProperty</title></head>
<body>
hello;
<%-- 首先引入welcome.jsp页面 --%><%-- 然后传递参数text和text值 --%>
<jsp:forward page="welcome.jsp">
<jsp:param value="How are you !" name="text"/>
</jsp:forward>
</body>
</html>
<%@page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Enumeration"%>
<html>
<head>
<body>
<div>
<%-- 获取text的值 --%>
<%
String text = request.getParameter("text");
%> <%
out.print(text);
%>
</div>
</body>
</head>
</html>

输出

JSP 动作的更多相关文章

  1. JSP动作元素——————理论篇

    JSP动作元素的组成及作用 JSP使用Action来控制Servlet引擎的行为,可重复使用JavaBean组件. 常用Action: jsp:param       在 jsp:include.js ...

  2. 重温JSP学习笔记--JSP动作标签

    上一篇笔记写的是jsp的三个指令九个内置对象,这篇随笔开始写jsp的动作标签,动作标签是由服务器(Tomcat)来解释执行,与java代码一样,都是在服务器端执行的,jsp动作标签有十几多个,这里只写 ...

  3. JSP动作元素

    JSP动作元素分类 <jsp:include page="content.jsp"></jsp:include> 使用<%@ include%> ...

  4. JSP 动作元素

    JSP动作元素 1.  动作元素分类 用来动态的包含文件.网页跳转及使用JavaBean组件等. 语法:<jsp:XXX />或者<jsp:XXX></jsp:XXX&g ...

  5. JavaBean用JSP调用和使用JSP动作标签的区别

    javabean的类可以用jsp动作标签实例化并使用. <!-- 下面这句是对Javabean类person的引用,引用的实例是p2 --> <jsp:useBean id=&quo ...

  6. jsp动作标签概述

    *Jsp动作标签概述: >动作标签的作用是用来简化java脚本 >jsp动作标签是JavaWeb内置的动作标签,它们是已经定义好的动作标签,我们可以拿来直接使用. >JavaWeb一 ...

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

    plugin 动作时用来在 JSP 页面中加载 Java Applet 或者 JavaBean 组件,语法格式如下所示: <jsp:plugin type="bean|applet&q ...

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

    这个动作是指在当前的页面中包含一个或多个 JSP 页面或者 HTML 文件,语法:<jsp:include file="../jsp/login.jsp" flush=&qu ...

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

    JSP 动作主要作用是根据指定的动作进行相应的处理. 一.param 动作 用来给 HTML 文件和 JSP 文件传递参数的,经常和 forward.include.plugin 动作结合使用,语法格 ...

  10. JSP动作跳转页面的时候与根目录的问题

    在JSP动作:<jsp:forward page="....">中,这个page属性所指定的页面要包含根目录的话,必须要用"/",不能够用" ...

随机推荐

  1. I - Magic FZU - 2280 (字符串hash)

    题目链接: I - Magic FZU - 2280 学习链接: FZU - 2280 I - Magic 题目大意: 给你nn个字符串,每个字符串有一个值ww,有qq次询问,一共两种操作:一是“1, ...

  2. mysql 案例 ~超时时间设置

    一 简介:今天咱们来谈谈mysql的连接时间与会话关系二 分类  mysql会话分类  1 程序连接session(最主要的)  2 binlog连接session(复制+canal消费)  3 ro ...

  3. django drf 基础学习1

    一 环境配置    python3.5+ django2.0 pymysql二 安装   /usr/bin/python3 -m pip install django   /usr/bin/pytho ...

  4. 连接 sqlserver

    提示错误:Exception in thread "main" com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 ...

  5. shell编程 之 传递参数到脚本里

    1 传递参数的基本格式 在脚本的需要参数的地方写$1,$2,$3...$n,运行的时候带参数运行就相当于是专递参数进shell脚本里了,比如: ./t1.sh 1 2 #!/bin/bash echo ...

  6. [转] 隐马尔可夫(HMM)、前/后向算法、Viterbi算法 再次总结

    最近工作需要优化LSTM-CRF经典模型中的维特比解码部分,发现对维特比一直是个模糊概念,没有get到本质,搜了一圈,发现一篇好文,mark 博主不让转载,mark个地址吧: https://blog ...

  7. 移植busybox构建最小根文件系统

    Busybox:瑞士军刀,里面装有很多小命令. STEP 1:构建目录结构  创建根文件系统目录,主要包括以下目录/dev  /etc /lib  /usr  /var /proc /tmp /hom ...

  8. 如何在Delphi 中使用 DevExpressVCL的 CxGrid与CxTreeList,编辑某列后计算另一列的值

    如何在Delphi 中使用 DevExpressVCL的 CxGrid与CxTreeList,编辑某列后计算另一列的值:比如 输入 单价,数量,计算金额. 参考: 1.  输入 单价,数量,计算金额 ...

  9. Windows下文件夹扩展名

    回收站.{645ff040-5081-101b-9f08-00aa002f954e} 拨号网络.{992CFFA0-F557-101A-88EC-00DD010CCC48} 打印机.{2227a280 ...

  10. 数字证书及CA的扫盲介绍

    ★ 先说一个通俗的例子 考虑到证书体系的相关知识比较枯燥.晦涩.俺先拿一个通俗的例子来说事儿. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 ...