java_第一年_JavaWeb(7)

JSP执行过程html

  1. 客户端发出请求访问JSP文件
  2. JSP Container将要访问的JSP文件转译为Servlet的源代码(转译时期),并将其编译成.class文件(编译时期);
  3. 执行编译后的.class文件并将结果返回给客户端(请求时期)

在转译后的Servlet的源代码中(.java),存在_jspService的方法,该方法将JSP中的java代码原封不动地翻译出来,而其中的html则经过out.write("<html标签>\r\n")这样的方法翻译出来;java

JSP声明<%! java代码%>;JSP注释<%--注释内容--%>;web

JSP指令:jsp

基本的语法格式<%@ 指令 属性名= ‘值’ %>spa

JSP有3大指令:翻译

  • Page指令:用于定义JSP页面的各类属性;

经常使用属性:code

import属性,引入多个包和类,之间用逗号隔开;注:Jsp页面默认自动导入的包有java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*;xml

errorPage属性,指明当出错后所跳转的页面,其中“/”表示 WEB程序的根目录;也能够在web.xml中设置好其出错后的处理方式,不过其优先级低于errorPage指令;htm

如若使用web.xml设置出错处理方式,是经过<error-page>标签实现的,该标签有3个子元素:<error-code>:(指定错误状态码)、<exception-type>:(指定异常类的彻底限定名)、<location>(指定处理的跳转页面);对象

isErrorPage属性,默认状况下的false状态,能够在错误页面中设置为true,其做用_jspService方法中会多提供声明一个exception对象,可经过该对象获取错误信息,如:

<body> 异常信息以下:<%=exception.getMessage()%>
</body>
  • include指令:引入文件,会将两个jsp翻译成一个Servlet,为静态引入,被引入文件常常用.jspf加以区分,经常使用语法以下:
    <%@include file="/xxx/xxx" %>

    其中第一个“/”表示当前web应用;

与jsp:include指令加以区分,这个指令为动态指令,其运行流程是将所include的文件运行后将结果返回;

  • taglib指令:声明用户使用自定义标签,将标签库描述符文件导入jsp页面中,语法以下:
    <%@taglib uri="/xxx" prefix="xxx"%>

     

uri属性:定位标签库描述符的位置。惟一标识和前缀相关的标签库描述符,能够使用绝对或相对

prefix属性:标签的前缀,区分多个自定义标签。不能够使用保留前缀和空前缀,遵循XML命名空间的命名约定。

相关文章
相关标签/搜索