首页 > 代码库 > JSP 简明教程(二):JSP基本语法

JSP 简明教程(二):JSP基本语法

基本语法

JSP只是在html的基础上嵌入一些动态的元素。下面是HelloWorld代码:

<html>
<%
out.println("hello world");
%>
</html>

以上代码中的<% %>就是动态元素。JSP中所有的特殊语法如下:
<% %>:用于表示一段Java代码。这段代码在编译之后会放在_jspService()方法中。
<%! %>:多了一个叹号,也用于表示一段Java代码,但是这段代码编译之后会放在JSP生成的Servlet类中,因此可以用它定义方法或者成员变量。
<%@ %>:多了一个@符号,是JSP指令,用于对JSP文件进行设置。
<%= %>:多了一个等号,相当于out.println()。
<%-- --%>:这是注释。不会在返回结果中显示。

JSP指令。可以设置的指令有三种:
<%@ page %>
<%@ include %>
<%@ taglib %>


page指令可以设置的属性如下:

  • buffer 设置out对象缓冲区的大小。
  • autoFlush 控制out对象的缓冲区。
  • contentType 指定当前JSP页面的MIME类型和字符编码
  • errorPage 指定当JSP页面发生异常时要转向的页面
  • isErrorPage 指定当前JSP页面是否可以作为另外页面的错误页面。错误页面中可以直接使用exception隐含变量获取错误信息。
  • extends 指定Servlet从哪个类继承
  • import 导入要使用的包
  • info 定义JSP页面的描述信息
  • isThreadSafe 指定JSP页面是否线程安全
  • language 指定编程语言,默认为Java
  • session 指定JSP页面是否使用session
  • isELIgnored 指定是否指定EL表达式。
  • isScriptingEnabled 指定脚本元素是否能被使用。如果为false,那么JSP中如果出现<% %>就会发生错误。

include指令用于包含一个文件。语法为<%@ include file="xxx"%>。在编译的时候起作用。

taglib指令用于载入一个自定义标签库。语法为<%@ taglib uri="uri" prefix="xx" %>

动作元素

  • <jsp:scriptlet> 和 <% %> 是等价的。
  • <jsp:expression> 和 <%= %> 是等价的。
  • <jsp:include> 包含文件,在执行的过程中起作用。
  • <jsp:useBean> 初始化一个 JavaBean 组件
  • <jsp:setProperty> 给 JavaBean 设置属性
  • <jsp:getProperty>
  • <jsp:forward> 向另外一个 JSP 文件传递请求。
  • <jsp:plugin> 在生成的页面中包含 Applet 和 JavaBean 对象。在执行的过程中会被替换成 embed 或者 object 标签。
  • <jsp:element> 动态创建 XML 元素。
  • <jsp:attribute> 定义动态创建的 XML 元素属性
  • <jsp:body> 动态创建 XML 元素的主体。
  • <jsp:text> 与 CDATA 连用,显示 CDATA 中的内容,但不执行 CDATA中的标签动作。比如以下代码:
<jsp:text><![CDATA[
<hello></hello>
<jsp:world/>
]]></jsp:text>


最后输出的结果是:

<hello></hello>
<jsp:world/>

里面的 <jsp:world/> 并没有被执行。


所有的动作元素都是在执行 Servlet 代码的过程中被执行。因此需要注意的是 jsp:include 动作,它是在 Servlet 被执行的过程中才引入文件的。这与<%@ include file=""%>不同,后者是在编译的时候引入的。

所有的动作元素都包含id和scope属性。id用于通过PageContext获取动作元素,scope用于定义对象的寿命。

useBean、setProperty、getProperty的用法。useBean的作用是引入一个JavaBean,需要提供id和class两个参数。id就是变量的名称,class就是变量的类型。setProperty可以放在useBean的标签里面,表示初始化的时候调用。如果沿用现有的JavaBean,那么标签里面的语句是不会调用的。
<jsp:useBean id="test" class="test.TestBean">
  <jsp:setProperty name="test" property="name" value=http://www.mamicode.com/"Value"/>>

动态创建元素的代码如下:
<jsp:element name="employee">
  <jsp:attribute name="name">张三</jsp:attribute>
  <jsp:body>张三是销售部经理</jsp:body>
</jsp:element>


该代码会产生:

<employee name="张三">张三是销售部经理</employee>

作者:白色咖啡

博客地址:http://blog.csdn.net/caipeichao2