您的位置:首页 > Web前端 > JavaScript

Jsp 学习笔记

2013-05-23 23:23 211 查看
学完servlet之后,似乎jsp就有点弱了,在吃完jsp这顿快餐之后,顺便记录了学习过程中的要点:

1. jsp注释 和 html注释的区别
注释方式:jsp <%-- xxx --%> html&xml <!-- xxx -->
区别:jsp注释的内容不会打给浏览器,而html注释的内容会打给浏览器,因为浏览器认识这种注释。

2. Page指令
errorPage :用于jsp页面出错时,给用户一个友好提示界面。还可以在web.xml 文件中配置 <error-page>标签,来对web中所有的页面进行全局的配置,如出现500或404时,可以给用户一个友好的提示页面。
乱码问题:

pageEncoding="UTF-8" 指定web服务器用UTF-8码表翻译jsp -> servlet

contentType="text/html; charset=UTF-8" 指定浏览器用UTF-8码表翻译servlet -> html (由于服务器默认会将response也翻译为pageEncoding指点的码表,所以contentType可以不写)

3. include指令
静态包含(编译时包含):<%@ include file="/public/head.jsp" %> 在翻译成servlet时,就将head.jsp中的内容包含进 目标jsp,head.jsp
不翻译为单独的servlet

动态包含(运行时包含):<% request.getRequestDispatcher("/public/head.jsp").include(request,response) %> 在翻译成servlet时,就将head.jsp翻译为servlet,在运行时,动态地将head.jsp中的内容包含进
目标jsp,head.jsp会被翻译为单独的servlet
注意:静态包含性能比动态包含要好得多,所以尽量使用静态包含。

4. 九大隐式对象
out对象: 带有缓冲区,只有在 1.设置page指令的buffer属性 关闭了out对象的缓存功能 ,2. out对象的缓冲区已满,3. 整个jsp页面结束
,才将out对象缓冲区中的内容真正写入到servlet引擎提供的缓冲区(response)中。所以response调用的输出,总是比out对象先输出。

pageContext对象:

5. pageContext
1. 由于一个也是良好的jsp页面中不能出现一行java代码,为了移除这些java代码,就需要用到自定义标签库。

2. pageContext(page域) 的作用范围: 创建jsp页面时(生) -> 翻译成servlet时(死) ,它是最小的域对象。

3. 查找数据: pageContext.findAttribute("data"); //查找顺序 page -> request -> session -> application (EL表达式就是这个原理)

6. Jsp标签
1. forward标签<jsp: forward>: 根据mvc模式,应将首页请求交给servlet处理,但是,由于在web.xml 中不能配置servlet,所以只能在web.xml
中配置首页的jsp,然后在首页的jsp中,使用forward标签跳转到一个servlet ,进行处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: