JSP页面组成

一、JSP的页面组成

    页面中包含指令标识、HTML代码、嵌入的JAVA代码和注释等内容;

  1、指令标识

      指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释执行的,不会产生任何内容输出到网页中。也就是说,指令标识对于客户端浏览器是不可见的。

     JSP的指令标识的语法格式:

     <%@ 指令名 属性1=“属性值”  属性2=“属性值”…..% >

     指令名 :用于指定指令名称,在JSP中包含pageinclude、taglib3条指令。

   用Eclipse 创建JSP文件时,在文件的最底端会默认添加一条指令,用于指定JSP所使用的语言、编码方式等:

 <%@page language="java" contentType="text/html" charset=GB18030 pageEncoding="GB18030"%>

①page指令   用于定义整个JSP页面的相关属性,这些属性在JSP中被服务器解析成Servlet时会转换为相应的Java代码。Page指令包含的属性有15个:

     (1)language属性  

        该属性用于设置JSP页面使用的语言,目前只支持Java。

     <%@page language="java"%>

    (2)extends属性   

       该属性用于设置JSP页面继承的Java类,所有JSP页面在执行之前都会被服务器解析为Servlet,而Servlet是由Java定义的,所以JSP和Servlet都可以继承指定的父类。

<%@ page extends="package.class" %>一般别去动

   (3)import属性

      该属性用于设置JSP导入的类包。JSP页面可以嵌入Java代码片段,这些Java代码在调用API时需要导入相应的类包。

<%@ page import="package.class" %>

<%@ page import="package.class1,...,package.classN" %>

  • <%@ page import="package.class" %>
  • <%@ page import="package.class1,...,package.classN" %>

   (4)pageEncoding属性 

       该属性用于定义JSP页面的编码格式,也就是指定文件编码。JSP页面中的所有代码都是用该属性指定的字符集,如果该属性值设置为ISO-8859-1,那么JSP页面就不支持中文字符。通常设置编码格式为GBK,因为它可以显示简体中文和繁体中文。

    <%@page pageEncoding="GB18030"%>

 (5)contentType属性

      该属性用于设置JSP页面的MIME类型和字符编码,浏览器会据此显示页面内容。

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

  • Format
    • <%@ page contentType="MIME-Type" %>
    • <%@ page contentType="MIME-Type;
                      
      charset=Character-Set" %>定义结果的输出格式

 

  (6)session属性

    该属性指定JSP页面是否使用HTTP的session会话对象。其属性值是boolean类型,可选值为true或false。默认值为true,表示可以使用session会话对象;如果设置为false,则当前JSP页面将无法使用session会话对象。

 <%page session="false"%>

 (7)buffer属性

    该属性用于设置JSP的out输出对象使用的缓冲区大小,默认值为8KB,且单位只能使用KB。

  • <%@ page buffer="sizekb" %>
  • <%@ page buffer="none" %>

  (8)autoFlush属性

   该属性用于设置JSP页面缓存满时,是否自动刷新缓存。

  <%@page autoFlush="true"%>

  (9)isErrorPage属性

      通过该属性可以将当前JSP页面设置成错误处理页面,已处理另一个JSP页面的错误,也就是异常处理。这意味着当前JSP页面业务的改变。

  (10)errorPage属性

     该属性用于指定处理当前JSP页面异常错误的另一个JSP页面,指定的JSP错误处理页面必须设置isErrorPage属性为true。errorPage属性的属性值是一个url字符串。

   <%@page errorPage="url"%>

②include指令

   文件包含指令include是JSP的另一条指令标识。通过该指令可以在一个JSP页面中包含另一个JSP页面。不过该指令是静态包含,也就是说被包含文件中所有内容会被原样包含到该JSP页面中,即使被包含文件中有JSP代码,在包含时也不会被编译执行。使用include指令,最终将生成一个文件,所以在被包含和包含文件中,不能有相同名称的变量。

   <%@incliude file="path"%>

   该指令只有一个file属性,用于指定要包含文件的路径。

③taglib指令

   在JSP文件中,可以通过taglib指令标识声明该页面中所使用的标签库,同时引用标签库,并指定标签的前缀。在页面中引用标签库后,就可以通过前缀来引用标签库中的标签。

‘<%@taglib prefix="tagPrefix" url="tagURL"%>

    prefix:用于指定标签的前缀。该前缀不能命名为jsp、jspx、java、javax、sun、servlet

   url:用于指定标签库文件的存放位置。

2、脚本标识

JSP中的脚本标识包括3部分,即JSP表达式(Expression)、声明标识(Declaration)和脚本程序(Scriptlet)。通过这些标识,在JSP页面中可以像编写Java程序一样来声明变量、定义函数或进行各种表达式的运算。

 ①JSP表达式

    JSP表达式用于向页面中输出信息,语法如下:

      <%=表达式%>                                             向页面中输出信息时用到,声明和定义时不加等号!!!!

  表达式可以是任何Java语言的完整表达式,该表达式的最终运算结果将被转换为字符串。JSP表达式不仅可以插入到网页的文本中,用于输出文本内容,也可以插入到HTML标记中,用于动态设置属性值。

②声明标识

  声明标识用于在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法可以被整个JSP页面访问。

  格式如下:

     <%! 声明变量或方法的代码%> 

    <%!

          声明变量或方法的代码      

       %>

③代码片段

   所谓代码片段,就是在JSP页面中嵌入的Java代码或是脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或是流行控制语句等;而通过脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和响应、访问session会话等。格式如下:

   <% Java代码或脚本代码%>

3、JSP注释

  ①单行注释 

    单行注释以“//”开头,后面接注释内容。

  //注释内容

 ②多行注释

  多行注释以“/*”开头,以“*/”结束。在这个标识中间的内容为注释内容,并且注释内容可以换行。

/*

  注释内容

  注释内容

*/

③提示文档注释

  提示文档注释在被javadoc文档工具生成文档时读取,文档是对代码结构和功能的描述。

  /**

   提示信息

  提示信息

 */

④隐藏注释

  隐藏注释不仅在浏览器中看不到,在查看HTML源代码时也看不到,所以这种注释的安全性比较高。

  <%--注释内容--%>

⑤动态注释

  由于HTML注释对JSP嵌入的代码不起作用,因此可以利用它们构成动态的HTML注释文本。

 

4、动作标识

①包含文件标识

jsp的动作标识用于向当前页面中包含其他的文件。被包含的文件可以是动态文件,也可以是静态文件。

  或

  

      子动作标识//用于向被包含的动态页面中传递参数。

  • Code in MainPage.jsp

  

 

   

  • 将结果传递到包含页面,随时响应,实时改变
    • Using jsp:include to include pages at request time在请求时嵌入加载
  • <%@ include file="…" %>
    • Using <%@ include ... %> (the include directive) to include files at page translation time
  • Usage
    • Understanding why jsp:include is usually better than the include directive
  • Applets
    • Using jsp:plugin to include applets for the Java Plug-in (rare!)

 

  • Format
    • <%@ include file="Relative URL" %>将两个页面合二为一,只能响应一次,不能适时改变
  • Purpose
    • To reuse JSP content in multiple pages, where JSP content affects main page
  • Notes
    • Servers are not required to detect changes to the included file, and in practice they don't.
    • Thus, you need to change the JSP files whenever the included file changes.

 

②请求转发标识页面跳转

   通过>动作标识可以将请求转发到其他的web资源。执行请求转发后,当前页面将不再被执行,而是去执行该标识指定的目标界面。

  格式:

   <jsp:forward page=“url”>

    或

   <jsp:forward page=“url”>

   子动作标识      用于向转向的目标文件中传递参数

  </jsp:forward>

  ③传递参数标识<jsp:param>

   jsp的动作标识可以作为其他标识的子标识,用于为其他标识传递参数。

   格式:

      <jsp:param name=“参数名” value=“参数值”/>

  • Syntax

  name="parameterName"

                          value=" parameterValue" />  

  • Code in other.jsp
    • <%= request.getParameter()%>

 

④内部对象的转发

Internal object response

  • response.sendRedirect()
    • response.sendRedirect("a.jsp");
    • The address bar of browser changes

 

二、JSP

    

 

你可能感兴趣的:(Web)