检索并输出bean的属性。
The jsp:forward Action
向前请求(request)另一个页面。
The jsp:plugin Action
生成特定的浏览器的OBJECT 或EMBED标签,用来明确运行Applet所 使用的JAVA插件(plugin)。
JSP directive mso-hansi-font-family:"">影响servlet 类的整体结构。它常用以下形式:
<%@ directive attribute=”value”%>
而且,您可以将多个属性写在一个语句中:
<%@ directive attribute1="value1"
attribute2="value2"
attributeN="valueN" %>
有两种主要的directive:
page,允许您做一些类似import classes的事,定义servlet的超类(Superclass),
mso-hansi-font-family:"">等;
include,允许您将文件插入servlet类中(当JSP文件翻译为servlet时)。
一、JSP page Directive
语法:
<%@ page
[ language="java" ]
[ extends="package .class" ]
[ import="{package .class | .*}, ..." ]
[ session="true|false" ]
[ buffer="none|8kb|sizekb" ]
[ autoFlush="true|false" ]
[ isThreadSafe="true|false" ]
[ info="text" ]
[ errorPage="relativeURL" ]
[ contentType="mimeType [ ;charset=characterSet ]" |
"text/html ; charset=ISO-8859-1" ]
[ isErrorPage="true|false" ]
%>
Page directive mso-hansi-font-family:"">允许您定义一些区分大小写的属性:
(1)import = “package.class”或 import = “package.class1,..,package.classN”。
mso-hansi-font-family:"">
您可以定想要import的packages。例如:
<%@ page import="java.util.*" %>
import属性是这几个属性中唯一一个可以在一个JSP中出现多次的。
(2)contenType = “MIME=Type” 或contentType=“MIME-Type;charset=Character-Set”
mso-hansi-font-family:"">
它指定输出的MIME类型。缺省为“text/html”。例如:
<%@ page contentType="text/plain" %>"
在s criptlet中等价于:
<% response.setContentType("text/plain"); %>
(3)isThreadSafe = “true | false”.如果值为“true”(缺省)表示:将进行普通的servlet处理,多个请求将被一个servlet实例并行处理,在这种情况下,编程人员同步访问多个实例变量。值为“false”时表示:servlet将实现单线程模式(SingleThreadModel),不管请求是顺序提交还是并发出现,都将提供不同的分离的servlet实例。
(4)session=”true | false”。 如果值为“true”(缺省)表示:预定义变量session(继承HttpSession)应该绑定到一个已存在的session,否则就应该创建一个并将之绑定。值为“false”时表示:将不使用session变量,如果试图使用,将在JSP向servlet转化时出现错误。
(5)buffer = “sizekb | none”。为JspWriter输出确定缓冲的大小。缺省由服务器而定,但至少要有8kb。
(6)autoflush=”true | false”。 如果值为“true mso-hansi-font-family:"">”(缺省)表示:当缓冲满时将自动清空,值为“false mso-hansi-font-family:"">”时表示:当缓冲满时递出一个异常,这很少使用。当buffer=”none”是若用false mso-hansi-font-family:"">值是不合法的。
(7)extends=”package.class”。这将为servlet产生一个超类。请特别谨慎的使用这一功能,因为,服务器也许已经定义了一个。
(8)info = “message”。定义一个可以通过调用getServletInfo方法得到的串。
(9)errorPage = “URL”。指定一个JSP mso-hansi-font-family:"">页面来处理任何一个可抛出的但当前页面并未处理的意外错误。
(10)isErrorPage = “true | false”。指定当前页面是否可以处理来自另一个页面的错误,缺省为“false”。
(11)language = “java” mso-hansi-font-family:"">。指出以下将使用的语言。不过,不必为这一属性费心,因为,“java mso-hansi-font-family:"">”既是缺省又是唯一合法的选择。
二JSP include Directive 这种directive 使您可以在JSP转换为servlet时将一个文件包含进来。语法:
mso-hansi-font-family:";mso-font-kerning: 0pt">或
+
URL mso-hansi-font-family:"">通常相对于指向它的JSP页面,但是,普遍使用相对“URL”,您可以使用一个斜杠“/”作为URL的开始来告知系统URL mso-hansi-font-family:"">相对的Web server的主路径。被包含的文件将以规则的JSP形式来解析,因此,您可以在其中使用静态HTML,s cripting elements,directives,和 actions。
让我们来看一个例子,许多站点在每一个页面上包含一个小型的导航条。它通常出现在页面的顶部或左右侧,并包含在每一个页面里。这用include directive 来实现是很自然的,若用规则的HTML mso-hansi-font-family:"">来把这些语句拷到每一个页面无疑是个梦魇。请看下列代码:
JSP教程
<%@ include file="/navbar.html" %>
因为文件是在页面被转换时插入的,因此,如果导航条改变了,您需要将所有指向它的JSP mso-hansi-font-family:"">页面全部重新编译一次。如果您的导航条并不常改变这样做无疑是高效的,但是,如果您的被包含文件更改频繁,则建议您使用jsp:include action(后面将谈到)来替代,它在页面被请求时才包含文件。
为了简化JSP表达式和s criptlets中的代码,提供了8种自动定义的变量,有时称做implicit objects(固有对象)。它们是:request,response,out,session,application,config,pageContext,和 page。下面我们来详细的了解它们。
request
与request相联系的是HttpServletRequest类,使您可以得到request的参数(通过getParameter方法),request 的类型(GET,POST,HEAD,等等),和引入的HTTP头(cookies,Referer,等等)。严格来说,request是类ServletRequest的一个子类而不是HttpServletRequest类的,事实上,如果request的协议不是HTTP,那麽它几乎不会工作。
response
对客户端的response与HttpServletResponse 相连。请注意,因为输出流是放入缓冲的,所以可以设置HTTP状态码和response头,尽管在标准的servlets中不允许将之发送到客户端。
out
这里使用PrintWriter类来发送输出到客户端。然而,为了使response对象有效,可使用一个PrintWrite类的使用缓冲的版本JspWriter。使用session的属性page directive,您可以自己定义缓冲的大小,甚至可以在使用了buffer属性后关闭缓冲。也请注意,out仅用于s criptlets之中,因为JSP表达式自动的放入输出流,所以极少需要明确的声明out。
session
应用与request相联系的HttpSession类。因为session是自动创建的,即使没有一个引入的session,这种变量仍可绑定。有一个例外是,如果您用page directive关闭session,再试图使用session时将导致错误(在JSP页面向servlet转换时)。
application
使用ServeletContext类,通过使用getServletConfig().getContext()得到。
config
是一个ServletConfig类的对象。
pageContext
这是JSP中的一个新的类PageContext,用于精练特定服务器的特点时使用,如提高JspWriters的执行效率。如果您通过这个类访问而不是直接的,您的代码将仍然运行在“规则”的JSP /servlet引擎。
page
在JAVA中不是很有用,它仅仅是用来保存在脚本的语言不是JAVA时的时间。
JSP actions 使用您可以动态的插入一个文件,重用JavaBeans组件,前进到另一个页面,或为Java 插件生成一个HTML。可以使用的action 有:
(1) jsp:include --在页面被请求时包含进一个文件。
(2) jsp:useBean--找到或实例化一个JavaBean。
(3) jsp:setProperty--设置一个JavaBean属性。
(4) jsp:getProperty--将JavaBean的属性插入到输出。
(5) jsp:forward--让请求者可以向前到一个新的页面。
(6) jsp:plugin--用OBJECT或EMBED标签为Java plugins生成特定的浏览器的代码。
1、jsp:include Action
这个action使您可以在即将生成的页面上包含进一些文件:
与include directive不同,这个action是在页面被请求时才将文件包含进来,而,include directive则是在JSP页面被转换为servlet时包含文件。为了提高效率,include action做了一点小小的牺牲,即,它不允许被包含的页面含有一般的JSP代码(例如,不可设置HTTP头),但是,它具有显著的灵活性,如下面的JSP 代码,它实现将四个不同的片段插入如下的页面。每一次当标题改变的时候,您仅需修改这四个文件而无须更改主要的JSP 页面。
WhatsNew.jsp
JSP教程
What"s New at Chinese comic sites |
---|
Here is a summary of our four most recent news stories:
-
-
-
-
当然您可以定义自己的HTML文件,但有一点请注意:
您应该将文件放到您的JSP目录下的news目录内。
jsp:useBean Action 的使用
一、 语法:
|
> 其他元素