11Java Server Pages 动作
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 动作的更多相关文章
- 08Java Server Pages 语法
Java Server Pages 语法 基础语法 注释 <!-- -->可以在客户端通过源代码看到:<%-- --%>在客户端通过查看源代码看不到. <!--浏 ...
- jsp(java server pages):java服务器端的页面
jsp(java server pages):java服务器端的页面 JSP的执行过程1.浏览器输入一个jsp页面2.tomcat会接受*.jsp请求,将该请求发送到org.apache.jasper ...
- 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - 博客频道 - CSDN.NET 为 Python Server Pages 和 Oracl ...
- 1.1(学习笔记)JSP(Java Server Pages)基础(脚本元素、指令元素)
一.JSP简介 JSP全称为Java Server Pages,是一种动态网页开发技术,可以在HTML界面中嵌入java代码, 实现动态的提供数据.访问JSP时服务器会将JSP翻译成Servlet,访 ...
- 什么是Java Server Pages?
JSP全称Java Server Pages,是一种动态网页开发技术.它使用JSP标签在HTML网页中插入Java代码.标签通常以<%开头以%>结束. JSP是一种Java servlet ...
- 10Java Server Pages 隐式对象
Java Server Pages 隐式对象 JSP隐式对象是Web容器加载的一组类的实例,它不像一般的Java对象那样用“new”去获取实例,而是可以直接在JSP页面使用的对象.JSP提供的隐式对象 ...
- 09Java Server Pages 错误处理
Java Server Pages 错误处理 通常JSP在执行的时候,在两个阶段会发生错误.第一个是JSP网页转译成Servlet类的时候,另一个就是Servlet类处理每一个请求的时候.在第一个阶段 ...
- 07Java Server Pages
Java Server Pages JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分. JSP全称Java Server Pages,是一种动态网页开发技术.它 ...
- core servlets & server pages 上面的HttpClient GUI工具
我没怎么细读源码,等下次详细看的时候将这句话去掉. import java.awt.*; import java.awt.event.*; import java.io.*; import java. ...
随机推荐
- Delphi中SendMessage使用说明(所有消息说明) good
Delphi中SendMessage使用说明 SendMessage基础知识 函数功能:该函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数Po ...
- [mac]WireShark检測不到网卡怎么办?
wireshark是一个很好用的抓包工具,有windows版本号和mac版本号,在mac下安装wireshark,启动后发现提示"There are no interfaces on whi ...
- 在vs2017中创建Node.js项目
https://github.com/Microsoft/nodejstools/wiki/Projects 1. 安装vs2017的时候,需要勾选Node.js 2.新建项目的时候,选择其他语言,然 ...
- FreeMarker:
ylbtech-FreeMarker: 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbt ...
- hive 内部表与外部表的区别
hive 内部表: hive> create table soyo55(name STRING,addr STRING,money STRING) row format delimited fi ...
- CodeForces 382C Arithmetic Progression (排序+分类讨论)
题意:给出一个长度为n的序列,表示有n张卡片,上面的数字,现在还有一张卡片,上面没有数字,问说可以写几种数字在这张卡片上面, 使得n+1张卡片上的数字可以排列成一个等差数列,有无限多种时输出-1. 析 ...
- CodeForces 515C Drazil and Factorial (水题)
题意:给出含有 n 个只有阿拉伯数字的字符串a,设定函数F(a) = 每个数字的阶乘乘积 .需要找出 x,使得F(x) = F(a),且组成 x 的数字中没有0和1.求最大的 x 为多少. 析:最大, ...
- Objective-C NSObject与运行时系统
创建: 2018/01/26 完成: 2018/02/02 遗留: TODO NSObject 运行时系统 程序运行时候起作用的系统? NSObject是运行时系统的接口(API) 属性 只有一 ...
- ASP.NET 知识点总结(七)
1.new修饰符是起什么作用new 修饰符用于声明类或类的成员,表示隐藏了基类中同名的成员.而new 操作符用于实例化一个类型new 修饰符只能用于继承类,一般用于弥补基类设计的不足new 修饰符和 ...
- python调用chrome ie等浏览器
chrome: 首先,要安装下谷歌浏览器,查看谷歌浏览器的版本,对应版本下载相应的chromedriver插件,http://blog.csdn.net/huilan_same/article/det ...