一、什么是JSP?
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
1)为什么说,Servlet是一个动态Web开发技术呢?
Servlet是基于服务端的一种动态交互技术,
HttpServletRequest表示客户端到服务端的对象
HttpServletResponse表示服务端到客户端的对象
2)JSP是SUN公司开发的一个基于服务端的一种动态WEB开发技术
3)JSP的代码结构/内容=HTML+JSP所有元素内容
4)在IDE工具中,开发JSP,pageEncoding有二层含义:
a)指明当前JSP中的中文采用什么方式编码(如果在IDE工具外)
b)指明当前JSP页面保存时采用什么方式编码
5)项目中,JSP最佳实践模式:
Servlet:适合控制器
JSP:适合显示
JavaBean:模型
二、JSP工作原理
1)Web容器根据客户端访问的资源类别(Web容器会根据资源的第一行代码确定),如果你访问的是JSP资源,就交由JSP引擎处理如果你访问的是Servlet资源,就交由Servlet引擎处理
2)如果是JSP资源,JSP引擎会将其翻译成Servlet资源,传入相关的对象,如果是静态资源,以out.write()形式输出,如果是动态资源,以out.print()形式输出
3)此时JSP引擎在翻译正确后,将其输出给Servlet引擎,当作Servlet处理。
4)如果再次访问同一个.jsp文件,翻译工作依然进行,Servlet引擎工作可以减化,所以这是为会么第N次较第1次快的原因
三、JSP基本语法
1)JSP模版元素
2)JSP脚本表达式
JSP脚本表达式(expression)用于将程序数据输出到客户端
a)语法:<%="字符串变量或表达式"%>
b)结束无分号
c)默认输出到浏览器
3)JSP脚本片断
a)语法:<% ...java代码; %>
b)脚本片断中的注释符号与java代码一致
注意:JSP修改后,无需重新部署,直接刷新,Web容器会自动比较新旧二个版本的JSP
c)多个JSP脚本片断中定义的变量,本质是_jspService()方法中的局部变量,可以访问
4)JSP声明
JSP页面中编写的所有代码,默认会翻译到servlet的service方法中, 而Jsp声明中的java代码被翻译到_jspService方法的外面,即实例变量。
a)语法:<%! ...java代码 %>
b)JSP声明的变量或方法,会成为Servlet的实例变量或实例方法或普通方法
c)JSP脚本片断中不能定义局部方法,方法只能定义在JSP声明中
5)JSP注释
1)语法:<%-- 注释的内容 --%>
2)对于HTML注释来说,JSP引擎会将其翻译成servlet内容,对于JSP注释来说,JSP引擎不会将其翻译成servlet内容
3)注释不能嵌套使用
6)JSP指令
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。在JSP 2.0规范中共定义了三个指令。
1)指令是程序员控制JSP引擎做什么的依据
2)有三类:
a)page
b)include
c)tablib
下篇继续,,,