JSP
2016年7月7日
9:37
jsp:java server page JAVA服务器脚本语言
js页面要被web容器翻译成java类,按照servlet规范,所有jsp翻译生成了的类必须实现HttpJspPage接口。而HttpJspPage是Servlet的子接口。所以所有jsp翻译生成类也会实现Servlet,jsp本质是Servlet;jsp重在页面显示,而servlet重在于逻辑处理。
jsp引擎:是web容器编写的类,负责将jsp页面翻译成java类。在web容器/conf/web.xml中进行注册。
Jsp生命周期:1、由jsp引擎将jsp页面翻译成java代码2、将java代码编译成class字节码文件3、加载到容器4、由容器实例化对象5、初始化jspInit()6、调用_jspService()7、销毁
Jsp网页主要由元素(Element)和模版数据(TemplateDate)两个部分组成:
- 模版数据是jsp的静态部分, web容器不处理
- 元素是必须经由web容器解释 ,元素是以xml做为语法基础,并且大小写要一致
web容器支持两种不同格式的jsp语法,普通格式和xml兼容格式
- 普通jsp语法是设计给开发者用的
- xml兼容jsp语法是设计用来容易被开发工具使用的
jsp脚本元素:
声明:<%! %>定义jsp类的成员变量、静态变量、和方法
脚本:<% %>丰富_jspService(),在脚本中定义的变量,全部是_jspService()方法的局部变量。
表达式:<%= %>丰富下划线_jspService(),相当于out.print()向页面输出内容。注意,后边不能加分号。
jsp注释:
jsp注释:<%-- --%>容器不翻译,只在元代码中可见,最为安全
html注释:<!-- -->容器翻译到客户端,最不安全。
java注释:// /* */给java代码书写的注释,只在服务器端可见。
page指令:
contentType:设置mime类型和编码集
pageEncoding:设置编码集,MIME类型默认为text/html
import:导入jsp类中所用到的类。导入多个,中间以逗号分开。
session:默认为true。表示访问该jsp页面时,产生会话对象。
errorPage:表示当前jsp页面如果爆出了运行异常,则跳转指定出错页面
isErrorPage:表示该jsp页面为出错处理页面。定义了exception隐式对象,接收异常对象。
过滤器概述:一个中间web组件,用于过滤拦截源数据和目的数据之间的消息
EL表达式 ${userName} 可以获得值,从小的作用域开始找值,找到即停止找值
${sessionScope.userName} 指定搜索的范围,如果没有值,不会去其它范围查找
配置Filter
手动注册: <filter>
<filter-name>index</filter-name>
<filter-class>util.IndexFilter</fil ter-class>
</filter>
<filter-mapping>
<filter-name>index</filter-name>
<url-pattern>/index.jsp</url-pattern> <%-- 针对路径过滤--%>
<servlet-name>dd</servlet-name> <%-- 针对servlet过滤--%>
<dispatcher>FORWARD</dipathcher>
</filter-mapping>
注解注册:@WebFilter("/*")
过滤器的类型:
1、REQUEST:表示直接请求,按请求路径进行过滤。 默认方式
2、FORWARD: 表示通过内部转发到达目标资源之前,进行过滤。
3、INCLUDE: 表示包含指定资源时,进行过滤。
4、ERROR:表示发生异常时,进行过滤。
过滤器链:当一个请求到达目标资源时,可能会经过多个过滤器。这就形成了过滤器链。过滤器链执行顺序是:先经过<url-pattern>标签,再经过<servlet-name>标签。如果一个请求经过多个<url-pattern>标签,按部署顺序执行。