Java Server Pages 动作


JSP标准动作

分类

JSP标准动作

存取JavaBean相关

<jsp:useBean>

<jsp:setProperty>

<jsp:getProperty>

JSP Document相关

<jsp:root>

<jsp:declaration>

<jsp:scriptlet>

<jsp:expression>

<jsp:text>

<jsp:output>

动态产生XML元素标签值相关

<jsp:attribute>

<jsp:body>

<jsp:element>

自定义标签相关

<jsp:invoke>

<jsp:doBody>

其他(早期版本JSP1.2即存在)

<jsp:include>

<jsp:forward>

<jsp:param>

<jsp:plugin>

<jsp:params>

<jsp:fallback>

7.2.1  <jsp:param>

<jsp:param>用来提供key/value的信息,它也可以与<jsp:include>、<jsp:forward>和<jsp:plugin>一起搭配使用。

当在使用<jsp:include>或者<jsp:forward>时,被包含的页面或转向后的页面会先看看request对象里除了原本的参数值之外,有没有再增加新的参数值,如果有增加新的参数值时,则新的参数值在执行时,有较高的优先权。

<jsp:param>的语法:

<jsp:param   name=”参数名” value=”参数值|<%=表达式%>” />

<jsp:param>有两个属性:

  • name:name的值就是参数名称。
  • value:value的值就是参数的值,这个值可以写成表达式。

我们下面举两个范例:

<jsp:param   name=”user” value=”admin” />

<jsp:param   name=”password” value=”<%=pwd%>” />

<jsp:param>的使用我们将在下面两节中来演示。

7.2.2  <jsp:include>

在我们讲解include指令的时候,提到过include指令能够静态的导入文件,现在,我们来说明的<jsp:include>并比较一下它和include指令的不同。

<jsp:include>允许你包含动态和静态文件。这两种产生的结果不尽相同。如果包含进来的只是静态文件,那么只是把静态文件的内容加到JSP页面中;而如果包含进来的为动态文件,那么这个被包含的文件也会被JSP容器编译执行。<jsp:include>能够自行判断文件是动态的还是静态的,能够同时处理这两种文件。

<jsp:include>语法如下:

<jsp:include   page=”{urlSpec|<%=exprission%>}” flush=”true|false”/>

<jsp:include   page=”{urlSpec|<%=exprission%>}” flush=”true|false” >

<jsp:param name=”PN” value=”{pV |   <%=表达式%>}”/>

┅   ┅

</jsp:include>

<jsp:include>有两个属性:

  • page:可以代表一个相对路径,即你所要包含起来的文件位置或是经过表达式所运算出的相对路径。
  • flush:接受的值为boolean,假若为true,缓冲区满时,将会被清空。Flush的默认值为false。

同时,可以用<jsp:param>传递一个或多个参数给JSP页面。

我们来看一个例子,首先,我们创建incdemo.jsp,代码如例7.1所示。

<%@ page language="java" contentType="text/html;   charset=UTF-8"

pageEncoding="UTF-8"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>include动作</title>

</head>

<body>

<!-- 设置传递的参数 -->

<jsp:include page="included.jsp" flush="true">

<jsp:param value="admin1" name="user"/>

<jsp:param value="password1" name="pwd"/>

</jsp:include>

<br>

<%

// 定义表达式用值

String user = "admin2";

String pwd = "password2";

String url = "included.jsp";

%>

<!-- 设置传递的参数 -->

<jsp:include page="<%=url%>" flush="true">

<jsp:param value="<%=user%>" name="user"/>

<jsp:param value="<%=pwd%>" name="pwd"/>

</jsp:include>

</body>

</html>

例7.1

我们在页面中用使用了两个<jsp:include>,上边的设置值的时候都是直接写死的,而下面部分设置值的时候使用了表达式。

我们再来看看被包含的页面included.jsp的代码,如例7.2所示。

<%@ page language="java" contentType="text/html;   charset=UTF-8"

pageEncoding="UTF-8"%>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>被include的页面</title>

</head>

<body>

<%

// 显示传递过来的参数

out.println(request.getParameter("user")

+ " : "

+ request.getParameter("pwd"));

%>

</body>

</html>

例7.2

执行结果如图7.1所示。

图7.1

注意:<jsp:include>中间只能有<jsp:param>,不能有任何其他内容,包括注释也不能有,如果要写注释,请写到<jsp:include>外边,后边要讲解的<jsp:forward>也是一样。

下面我们来比较一下<jsp:include>动作和<%@include>指令,了解一下它们的区别。如下表所示。

<%@include>

<jsp:include>

导入文件的路径只能使用相对路径的字符串,不能使用变量

导入文件的路径可以使用相对路径的字符串,也可以使用表达式计算得到的值

导入文件的路径后不能跟参数

可以使用<jsp:param>传递参数

7.2.3  <jsp:forward>

<jsp:forward>用于将客户端所发出来的请求,从一个JSP网页转交给另一个JSP页面、HTML文件或Servlet。

<jsp:forward>只有一个属性page,它是一个相对路径,可以是字符串,也可以使经过表达式计算出来的值。

如果加上<jsp:param>,就能够像目标文件传送参数和参数值,不过这些目标文件必须也是一个能够取得这些请求参数的动态文件,例如:.cgi、.php、.jsp、.asp等等。

还有一点我们要注意,<jsp:forward>以后的程序将不能执行。下面我们用例子来说明。首先看forwarddemo.jsp,代码如例7.3。

<%@ page language="java" contentType="text/html;   charset=UTF-8"

pageEncoding="UTF-8"%>

<html>

<head>

<title>forward动作</title>

</head>

<body>

<%

// 设置迁移路径

String url = "forwardto.jsp";

// 在jsp:forward前的操作会被执行

System.out.println("会被执行!!");

%>

<jsp:forward page="<%=url%>">

<jsp:param value="admin" name="user"/>

<jsp:param value="password" name="pwd"/>

</jsp:forward>

<%

// 在jsp:forward后的操作不会被执行

System.out.println("不会被执行!!");

%>

</body>

</html>

例7.3

下面例7.4是我们迁移目的页面forwardto.jsp,作用同样是传递过来的参数。

<%@ page language="java" contentType="text/html;   charset=UTF-8"

pageEncoding="UTF-8"%>

<html>

<head>

<title>迁移目的页面</title>

</head>

<body>

<%

// 显示传递过来的参数

out.println(request.getParameter("user")

+ " : "

+ request.getParameter("pwd"));

%>

</body>

</html>

例7.4

当我们执行forwarddemo.jsp时,运行结果如图7.2所示。

图7.2

页面获得了传递过来的参数,我们再来看看控制台的输出,只能打印出“会被执行!!”,由于随后就转入forwardto.jsp,所以,“不会被执行!!”就不会被执行显示了。如图7.3所示。

图7.3

<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>作用是JavaBean的存取,我们在讲解JavaBean时说明。

11Java Server Pages 动作的更多相关文章

  1. 08Java Server Pages 语法

    Java Server Pages 语法 基础语法 注释 <!--   -->可以在客户端通过源代码看到:<%--   --%>在客户端通过查看源代码看不到. <!--浏 ...

  2. jsp(java server pages):java服务器端的页面

    jsp(java server pages):java服务器端的页面 JSP的执行过程1.浏览器输入一个jsp页面2.tomcat会接受*.jsp请求,将该请求发送到org.apache.jasper ...

  3. 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。

    为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - 博客频道 - CSDN.NET 为 Python Server Pages 和 Oracl ...

  4. 1.1(学习笔记)JSP(Java Server Pages)基础(脚本元素、指令元素)

    一.JSP简介 JSP全称为Java Server Pages,是一种动态网页开发技术,可以在HTML界面中嵌入java代码, 实现动态的提供数据.访问JSP时服务器会将JSP翻译成Servlet,访 ...

  5. 什么是Java Server Pages?

    JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet ...

  6. 10Java Server Pages 隐式对象

    Java Server Pages 隐式对象 JSP隐式对象是Web容器加载的一组类的实例,它不像一般的Java对象那样用“new”去获取实例,而是可以直接在JSP页面使用的对象.JSP提供的隐式对象 ...

  7. 09Java Server Pages 错误处理

    Java Server Pages 错误处理 通常JSP在执行的时候,在两个阶段会发生错误.第一个是JSP网页转译成Servlet类的时候,另一个就是Servlet类处理每一个请求的时候.在第一个阶段 ...

  8. 07Java Server Pages

    Java Server Pages JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分. JSP全称Java Server Pages,是一种动态网页开发技术.它 ...

  9. core servlets & server pages 上面的HttpClient GUI工具

    我没怎么细读源码,等下次详细看的时候将这句话去掉. import java.awt.*; import java.awt.event.*; import java.io.*; import java. ...

随机推荐

  1. Unity 5.x 导入教学Demo

    前言 小巫也来玩Unity3D了.以后会把学习的一些过程博客记录下来,方大家也方便自己学习和查看.本篇博客介绍怎样在Unityclient中导入Assert Store中下载的项目资源,方便我们进一步 ...

  2. [计算机故障]华为手机无法连接XP系统(inf中找不到所需的段落)

    同事新买的华为手机麦芒C199,拍了些照片.结果连接电脑,没有反应. 后经打电话到华为,可以到华为官网下驱动. 地址如下: http://consumer.huawei.com/cn/support/ ...

  3. iOS开发——基础篇——get和post请求的区别

    HTTP 定义了与服务器交互的不同方法,最常用的有4种,Get.Post.Put.Delete,如果我换一下顺序就好记了,Put(增),Delete(删),Post(改),Get(查),即增删改查,下 ...

  4. LAMP安装问题【已解决】

    1.编译不通过提示cannot find mysql header files under /usr/local/mysql解决办法:修改./configuer  --with-mysql=/usr/ ...

  5. Weex 和 React Native 的比较看这里

    写在前面 目前主流的应用大体分成三类:Native App, Web App, Hybrid App. Native App 特点: 性能好 完美的用户体验 开发成本高,无法跨平台 升级困难 (审核) ...

  6. Web安全总结摘录

    借助刚才看到的文章,回顾一下常见的Web安全问题:XSS.CSRF.SQL注入漏洞. 一.XSS XSS (Cross Site Script),跨站脚本攻击,因为缩写和 CSS (Cascading ...

  7. IDEA中 Spark 读Hbase 报错处理:

    SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] // :: ERROR RecoverableZooKeepe ...

  8. c语言—栈区,堆区,全局区,文字常量区,程序代码区 详解

    转:http://www.cnblogs.com/xiaowenhui/p/4669684.html 一.预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分1.栈区(sta ...

  9. 全面学习ORACLE Scheduler特性(5)Schedules调度Programs执行的Jobs

    3.2 Schedules调度Programs执行的Jobs 通过schedule调度program的执行的job,看到这样的形容是不是让你彻底晕头了,就说明你还是没搞明白10g中SCHEDULERS ...

  10. PS技巧汇总

    一.gif图流程 1:素材图片a  图片b 2:窗口--->时间轴/动画 3:复制所选帧--->设置帧延迟 4:文件--->存储为WEB格式--->gif格式 二.批处理--- ...