Day01----jsp

百闻不如一见,百说不如一练,实践是不变的真理。

1、jsp基础

1.1、jsp的执行过程:

jsp文件  -->  翻译成Java文件  --> 编译成class字节码文件  -->  构造类对象  -->  调用方法  --> Tomcat的work目录下存放jsp运行时的临时文件

1.2、jsp语法

jsp表达式:<%=变量或表达式%> 向浏览器输出变量或表达式的结果

jsp脚本:<%java代码%> 执行Java代码  原理:翻译到_jspService()方法中

jsp声明:<%!变量或方法%> 声明jsp的成员变量或成员方法

jsp注释:<%!-- jsp注释 --%> 注释jsp代码,不会翻译到Java文件,也不会执行

1.3、jsp文件的编码问题

pageEncoding:告诉Tomcat服务器使用什么编码翻译jsp文件(jsp --> java)

contentType:Tomcat服务器发送给浏览器的数据编码(Tomcat服务器 -->  浏览器)

1.4、异常错误相关

errorPage:当前jsp页面的错误处理页面

isErrorPage:指定当前页面是否为错误处理页面;false不是,则不能使用exception内置对象,反之可以

全局处理页面

<!-- 全局错误处理页面配置 -->
<error-page>
     <error-code>500</error-code>
     <location>/page/500.jsp</location>
</error-page>

2、jsp的内置对象

request;response;config;application;session;exception;page;out;pageContext

2.1、out对象:out对象类型,JspWriter类,相当于带缓存的PrintWriter

JspWriter:向jsp缓冲区写出内容(1、缓冲区满了;2、刷新缓存区;3、关闭缓存区;4、执行完毕jsp页面)

PrintWriter:直接向浏览器写出内容

3、jsp中的四个域对象:保存和获取数据,用于数据共享

pageContext(page域);request;session;application(context域)

4、EL表达式(替换jsp表达式):向浏览器输出域对象中的变量值或表达式计算的结果 ${ }

输出基本数据类型变量:从四个域中获取:${name};指定域获取:${pageScope}\

5、jsp标签(替换jsp脚本)

5.1、内置标签(动作标签):不需要在jsp页面导入标签

转发标签:<jsp:forward />

包含标签:<jsp:include />  包含与被包含的页面先各自翻译成Java源文件,然后运行时在合并在一起

动态包含:<jsp:include page="被包含的页面" />;可以向被包含页面传递参数;先翻译在合并

静态包含:<%@include file="被包含的页面">;不能向被包含页面传递参数;先合并在翻译

6、JSTL标签:Java标准标签库

核心标签库:C标签库;

国际化标签:fmt标签库;

EL标签库:fn函数库;

7、自定义标签

7.1、编写一个普通的Java类,继承SimpleTagSupport类,叫标签处理器类,覆盖doTag方法;在WEB-INF目录下建立tld文件,叫做标签库的声明文件;在jsp页面的头部使用taglib导入自定义标签库;在jsp中使用自定义标签

7.2、自定义标签的生命周期

SimpleTag接口

SetJspContext(JspContext  context)  传入PageContext对象

setParent(JspTag  tag)   传入父标签类对象

setXXX(参数)  给属性赋值

setJspBody(JspFrament  jspBody)  传入标签体内容

doTag()  执行标签

 

posted @ 2017-07-31 14:33  fugitiveXXH  阅读(106)  评论(0编辑  收藏  举报