JSP执行过程

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

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

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

JSP指令:

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

JSP有3大指令:

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

常用属性:

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

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

如若使用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命名空间的命名约定。

最新文章

  1. Python之实用的IP地址处理模块IPy
  2. SQL超过锁请求
  3. C# 调用api的方法
  4. asp中 grideview 更新 无法获取值 解决办法
  5. 浅谈JS面向对象之创建对象
  6. php网页,想弹出对话框, 消息框 简单代码
  7. CefSharp开源库的使用(一)
  8. 基于zepto的手机焦点图touchstart touchmove
  9. 二叉搜索树(Binary Search Tree)--C语言描述(转)
  10. [置顶] Android开发之Thread类分析
  11. html元素中class属性值多个空格分格是什么意思?
  12. MySQL操作中的一些细节及良好习惯--------持续更新中...
  13. Java入门1
  14. 更改checkbox的默认样式
  15. 深度学习入门实战(一):像Prisma一样算法生成梵高风格画像
  16. LeetCode数组解题模板
  17. bootstrape学习
  18. 如何连接oracle 12c可插拔数据库
  19. Blender节点笔记
  20. 【转】C# Enum,Int,String的互相转换 枚举转换

热门文章

  1. srs-librtmp pusher(push h264 raw)
  2. UNIX网络编程总结四
  3. CSS3选择器 ::selection选择器
  4. Java第二阶段之常用类
  5. C++数组读入MATLAB数据
  6. LeetCode--039--组合总和(java)
  7. tensorflow函数介绍 (5)
  8. tensorflow图像处理函数(1)
  9. TreeMap定制排序和自然排序
  10. flutter中的按钮组件