转载

JSP课程:浅谈指令和标签

在JSP中定义了一些称之为JSP指令和Action的元素,JSP指令是为了JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。在JSP页面中使用Action元素可以完成各种通用的JSP页面功能,也可以实现一些处理复杂业务逻辑的专用功能。

以下是今天JSP课程的重点内容:

Ⅰ.JSP课程―JSP指令

1.JSP指令的基本语法格式:

<%@指令属性名="值"%>

举例:

  1. <%@pagecontentType="text/html;charset=gb2312"%'>%@pagecontentType="text/html;charset=gb2312"%> 

注意:属性名部分是大小写敏感的。

2.在目前的JSP2.0中,定义了page、include和taglib这三种指令,每种指令中又都定义了一些各自的属性。

3.如果要在一个JSP页面中设置同一条指令的多个属性,可以使用多条指令语句单独设置每个属性,也可以使用同一条指令语句设置该指令的多个属性。

<1>第一种方式:

  1. <%@pagecontentType="text/html;charset=gb2312"%> 
  2. <%@pageimport="java.util.Date"%> 

<2>第二种方式:

  1. <%@pagecontentType="text/html;charset=gb2312"import="java.util.Date"%> 

4.page指令:

<1>定义:用于定义JSP页面的各种属性,无论page指令出现在JSP页面中的什么地方,它作用的都是整个JSP页面,为了保持程序的可读性和遵循良好的编程习惯,page指令最好是放在整个JSP页面的起始位置。

<2>JSP2.0规范中定义的page指令的完整语法:

  1. <%@page  
  2. [language="java"]  
  3. [extends="package.class"]  
  4. [import="{package.class|package.*},..."]  
  5. [session="true|false"]  
  6. [buffer="none|8kb|sizekb"]  
  7. [autoFlush="true|false"]  
  8. [isThreadSafe="true|false"]  
  9. [info="text"]  
  10. [errorPage="relative_url"]  
  11. [isErrorPage="true|false"]  
  12. [contentType="mimeTyp[;charset=characterSet]"|"text/html;charset=ISO-8859-1"]  
  13. [pageEncoding="characterSet|ISO-8859-1"]  
  14. [isELIgnored="true|false"]  
  15. %> 

5.include指令:

<1>定义:include指令用于通知JSP引擎在翻译当前JSP页面时将其他文件中的内容合并进当前JSP页面转换成的Servlet源文件中,这种在源文件级别进行引入的方式称之为静态引入,当前JSP页面与静态引入的页面紧密结合为一个Servlet。

<2>语法:

  1. <%@includefile="relativeURL"%> 

其中的file属性用于指定被引入文件的相对路径。

Ⅱ.JSP课程――JSP标签:

1.JSP还提供了一种称之为Action的元素,在JSP页面中使用Action元素可以完成各种通用的JSP页面功能,也可以实现一些处理复杂业务逻辑的专用功能。

2.Action元素采用XML元素的语法格式,即每个Action元素在JSP页面中都以XML标签的形式出现。

3.JSP规范中定义了一些标准的Action元素,这些元素的标签名都以jsp作为前缀,并且全部采用小写,例如,<jsp:include>、<jsp:forward>等等。

4.JSP标签内容:

<1><jsp:include>标签用于把另外一个资源的输出内容插入进当前JSP页面的输出内容之中,这种在JSP页面执行时的引入方式称之为动态引入。
语法:

  1. <jsp:includepagejsp:includepage="relativeURL|<%=expression%>"flush="true|false"/> 

page属性用于指定被引入资源的相对路径,它也可以通过执行一个表达式来获得。
flush属性指定在插入其他资源的输出内容时,是否先将当前JSP页面的已输出的内容刷新到客户端。

<2><jsp:forward>标签用于把请求转发给另外一个资源。

语法:

  1. <jsp:forwardpagejsp:forwardpage="relativeURL|<%=expression%>"/> 

page属性用于指定请求转发到的资源的相对路径,它也可以通过执行一个表达式来获得。

<3><jsp:param>标签:

当使用<jsp:include>和<jsp:forward>标签引入或将请求转发给的资源是一个能动态执行的程序时,例如Servlet和JSP页面,那么,还可以使用<jsp:param>标签向这个程序传递参数信息。

语法1:

  1. <jsp:includepagejsp:includepage="relativeURL|<%=expression%>"> 
  2. <jsp:paramnamejsp:paramname="parameterName"value="parameterValue|<%=expression%>"/> 
  3. </jsp:include> 

语法2:

  1. <jsp:forwardpagejsp:forwardpage="relativeURL|<%=expression%>"> 
  2. <jsp:paramnamejsp:paramname="parameterName"value="parameterValue|<%=expression%>"/> 
  3. </jsp:include> 

<jsp:param>标签的name属性用于指定参数名,value属性用于指定参数值。在<jsp:include>和<jsp:forward>标签中可以使用多个<jsp:param>标签来传递多个参数。

Ⅲ.JSP课程―JSP中文乱码问题:

1.JSP程序存在有与Servlet程序完全相同的中文乱码问题:

<1>输出响应正文时出现的中文乱码问题;

<2>读取浏览器传递的参数信息时出现的中文乱码问题。

2.JSP引擎将JSP页面翻译成Servlet源文件时也可能导致中文乱码问题:

<1>JSP引擎将JSP源文件翻译成的Servlet源文件默认采用UTF-8编码,而JSP开发人员可以采用各种字符集编码来编写JSP源文件,因此,JSP引擎将JSP源文件翻译成Servlet源文件时,需要进行字符编码转换。

<2>如果JSP文件中没有说明它采用的字符集编码,JSP引擎将把它当作默认的ISO8859-1字符集编码处理。

3.如何解决JSP引擎翻译JSP页面时的中文乱码问题。

<1>通过page指令的contentType属性说明JSP源文件的字符集编码;

<2>page指令的pageEncoding属性说明JSP源文件的字符集编码;

<3>在部署描述符中说明一组JSP源文件的字符集编码。

正文到此结束
Loading...