jsp/servlet相关技术 (二) --- jsp的原理、注释、声明、脚本等
来源:互联网 发布:mac地址认证 编辑:程序博客网 时间:2024/05/22 14:06
1、jsp的基本原理
jsp的本质是servlet,当用户向指定的servlet发送请求时,servlet利用输出流动态生成html页面,包括每一个静态的html标签和所有在html页面中出现的内容。
jsp页面的内容有两部分组成:
1、静态部分:标准的html标签、静态的页面内容,这些与静态html页面相同
2、动态部分:受到java程序控制的内容,这些内容有java程序来动态生成
jsp的本质是servlet(一个特殊的java类),每个jsp页面就是一个servlet实例——jap页面由系统编译成servlet,servlet再负责响应用户请求。也就是说,jsp是servlet的一种简化,使用jsp时,其实还是使用servlet,因为web应用中的每个jsp页面都会由servlet容器生成对应的servlet。对于tomcat而言,jsp页面生成的servlet放在work路径对应的web应用下。例如新建一个test.jsp页面,在work对应 的目录下找到如下文件:test_jsp.java和test_jsp.class。
打开test_jsp.java,会发现这是一个servlet类,如下所示:
仔细阅读该java类,发现该类主要包含如下3个方法(去掉方法名的_jsp前缀,将首字母小写):
1、init():初始化jsp/servlet的方法
2、destroy():销毁jsp/servlet之前的方法
3、service():对用户请求生成相应的方法
分析jsp页面的工作原理,我们知道:
1、jsp页面必须在jsp服务器内运行
2、jsp文件必须生成servlet才能执行
3、每个jsp页面的第一个访问者速度最慢,因为必须等待jsp编译成servlet
4、jsp页面输送到客户端的是标准的html页面
2、jsp注释
jsp注释无法发送到客户端,因此无法通过源代码看到
jsp注释的格式:
<%-- 注释内容 --%>
html注释则可以在源代码中看到
html注释的格式:
<!-- 注释内容 -->
3、jsp声明
jsp声明用于声明变量和方法。jsp声明将会转换为对应servlet的成员变量或成员方法。
jsp声明的语法格式为:
<%! 声明内容 %>
注意:jsp声明的变量和方法可以使用public、private等访问控制符修饰,也可以使用static修饰,将其变为类属性和类方法,但不能使用abstract修饰声明的方法,因为抽象方法将导致jsp对应的servlet变成抽象类,从而无法实例化。
4、jsp的输出
jsp的输出表达式的方法:
<%=表达式 %>
注意:jsp输出表达式之后不能带分号
5、jsp脚本
jsp脚本的格式:
<% 脚本内容 %>
jsp脚本将转换成servlet里_jspService方法的可执行代码,说明jsp脚本也可以声明变量,但其中声明的变量时局部变量,不能使用private、public等访问控制符修饰,也不可使用static修饰。但是有一点,jsp脚本里无法声明方法,这是由于jsp脚本将转换成_jspService方法里的可执行代码,而java语法不允许在方法里定义方法,所以jsp脚本里不能定义方法。
- jsp/servlet相关技术 (二) --- jsp的原理、注释、声明、脚本等
- jsp原理分析 jsp声明和jsp脚本讲解 源码分析 及jsp注释讲解 jsp页面的访问量
- jsp的注释、声明、表达式、脚本段
- jsp指令与jsp注释以及jsp脚本和jsp声明、jsp表达式、jsp的生命周期
- JSP ---- 声明、表达式、脚本、注释
- JSP技术模型(四)JSP脚本元素和注释
- JSP技术模型(四)JSP脚本元素和注释
- jsp/servlet相关技术 (五) --- jsp内置对象(二)
- JSP注释 声明 输出表达式 脚本
- jsp注释及声明等基础用法
- jsp的servlet,jsp原理
- jsp/servlet及相关技术
- JSP/Servlet相关技术1
- Serlvet、html、Jsp三者的优缺点及Jsp的组成、Jsp和Servlet的分工、Jsp原理、Jsp注释
- Serlvet、html、Jsp三者的优缺点及Jsp的组成、Jsp和Servlet的分工、Jsp原理、Jsp注释
- jsp小结02 - JSP注释、声明、表达式、脚本
- Jsp/servlet的声明周期
- 对jsp中声明脚本和脚本段的详细解释(后台原理)
- tomcat如何配置到Windows服务里
- Socket通信——Java语言
- IOS开发之实现App消息推送
- Mac 实用工具
- 字节数组byte[]和整型,浮点型数据的转换——Java代码
- jsp/servlet相关技术 (二) --- jsp的原理、注释、声明、脚本等
- cocos2dx关于size的知识
- HDU 1285--确定比赛名次【拓扑排序 && 邻接表实现】
- excel表格添加文字太长了,需要换行?
- MySQL主主同步主键冲突处理
- 微软欢迎所有热爱开源软件的朋友们来投稿![征稿开放时间:2015年8月17日]
- linux定时任务的设置
- 代码规范问题总结(二)
- UITextField-设置大全-placeholder左上角显示