javaweb笔记五
JSP:java server page服务器脚本语言。(脚本===插件),是一种在html代码中,嵌入java代码的方式。
解决servlet产生动态页面缺陷而产生的一门技术。
js:客户端脚本语言
jsp引擎:在web容器中,需要提供一个jsp引擎,将客户端请求的jsp页面翻译成java类。
jsp和servlet的区别:
按照servlet规范,由jsp引擎所翻译的java类,必须实现HttpJspPage接口。而HttpJspPage接口是Servlet的子接口,所以,jsp引擎所翻译的
Java类,同样满足servlet规范。从这个意义上说,jsp本质是servlet,拥有和servlet类似的生命周期。只不过jsp重在显示页面,而servlet
重在逻辑处理。
JSP生命周期:(3--7和servlet生命周期流程一样)
1、由JSP引擎将JSP页面翻译成JAVA代码(aa.jsp-->aa_jsp.java)
2、将JAVA代码编译成class字节码文件(aa_jsp.java-->aa_jsp.class)
3、加载到容器
4、由容器实例化成对象
5、初始化阶段相关的方法是jspInit()
6、请求到达,调用服务阶段相关的方法是_jspService()
7、销毁阶段相关的方法是jspDestroy()
JSP网页主要由元素(Element)和模板数据(Template Data)两个部分组成 :
模板数据是JSP的静态部分,WEB容器不处理 ;元素则是必须经由WEB容器解释
jsp脚本元素有三种:
声明:<%! %>定义jsp类的成员变量、静态变量和方法。
脚本:<% %>丰富_jspService()方法,在脚本中定义的变量都是_jspService()的局部变量。
表达式:<%= %>也是在丰富_jspService()方法,相当于打印语句,向客户端输出内容,表达式后不能加分号
jsp的注释:
jsp注释 <%-- --%>对于jsp注释,web容器是不翻译的,jsp注释只在源代码中可见,最为安全,可以注释掉java代码
html注释 <!-- -->容器可以识别,不能注释java代码。web容器会以out.println()方式输出到客户端,客户端和服务器都可见,最不安全。
java注释 只在服务器端可见,客户端不可见。
jsp隐式对象:
jsp引擎在翻译jsp页面时,会在_jspService()方法中,传入由web容器封装的请求、响应对象,同时在_jspService()方法开始时,定义了九个变量
,并且完成了这些变量的初始化。开发者所写的脚本,表达式,是在丰富_jspService()方法,所以,可以直接使用这些变量,而不用定义,
这些变量成为jsp的隐式对象。
jsp隐式对象有九个:(无需声明,可以直接使用)
四个作用域:
pageContext:作用于页面(只在jsp页面有效)===ServletContext
request:作用于请求(请求范围内有效)
session:作用于会话(一次会话有效)
application:作用于全局(在全局范围有效)
两个输出:
response:响应对象
out:打印输出流
page:当前jsp类对象(this)
config:配置对象
exception:异常对象
提供整个JSP页面的相关信息<%@ %>,用于JSP页面与容器之间的通信
在JSP中,有三种类型的指令:
page指令为当前页面提供处理指令
include指令用于把另一个文件包含在JSP中
taglib指令指定如何包含和访问自定义标签库
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
page指令常见的属性:contentType:设置响应信息的MIME类型和编码集====pageEncoding:设置响应信息的编码集,MIME类型默认为text/html
import:在jsp类中,导入其他包中的类,多个包用逗号分开。
session:客户端访问jsp时,是否创建session对象,默认为true
exception:当errorPage出现运行异常时,才会产生该异常对象。
errorPage:当前jsp中抛出了运行异常,跳转到errorPage属性所指定的页面。
isErrorPage:当该属性设置为true时,表示当前jsp为异常处理页面。在当前jsp类中,会定义exception隐式对象,接收从出错页面中传递过来的异对象。
在web.xml中,可以定义:(在相应信息为指定状态码时,跳转到指定页面)
<error-page>
<error-code>404</error-code>
<location>/noFind.jsp</location>
</error-page>
javaweb笔记五的更多相关文章
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
- 《MFC游戏开发》笔记五 定时器和简单动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9332377 作者:七十一雾央 新浪微博:http:// ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- java之jvm学习笔记五(实践写自己的类装载器)
java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...
- Crazyflie笔记五: CRTP 实时通信协议(一)(转)
源:Crazyflie笔记五: CRTP 实时通信协议(一) 这里详细介绍了 Crazyflie 的 CRTP实时通信协议的相关内容,由于内容很长,分几篇博文来讲述.这里是第一节内容.欢迎交流:301 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记五:类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Django开发笔记五
Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.页面继承 定义base.html: <!DOC ...
- ES6学习笔记<五> Module的操作——import、export、as
import export 这两个家伙对应的就是es6自己的 module功能. 我们之前写的Javascript一直都没有模块化的体系,无法将一个庞大的js工程拆分成一个个功能相对独立但相互依赖的小 ...
随机推荐
- Delphi 模式窗体返回值ModalResult的使用方法及注意事项(转)
1.基础知识简介: ModalResult是指一个模式窗体(form.showmodal)的返回值,一般用于相应窗体上按钮的ModalResult属性: 显示完窗体(关闭)后,会返回此属性预设的值做为 ...
- 深入理解ajax系列第八篇——表单提交
前面的话 在以前,网站的用户与后端交互的主要方式是通过HTML表单的使用.表单的引入在1993年,由于其简单性和易用性,直到电子商务出现之前一直保持着重要位置.理解表单提交,对于更深入地理解ajax是 ...
- IDEA 调试技巧
转载:http://blog.csdn.net/victor_cindy1/article/details/52336983 1.这里以一个web工程为例,点击图中按钮开始运行web工程. 2.设置断 ...
- We Need More Bosses CodeForces - 1000E(缩点 建图 求桥 求直径)
题意: 就是求桥最多的一条路 解析: 先求连通分量的个数 然后缩点建图 求直径即可 #include <bits/stdc++.h> #define mem(a, b) memset(a ...
- 32个Python爬虫实战项目,满足你的项目慌
爬虫项目名称及简介 一些项目名称涉及企业名词,小编用拼写代替 1.[WechatSogou]- weixin公众号爬虫.基于weixin公众号爬虫接口,可以扩展成其他搜索引擎的爬虫,返回结果是列表,每 ...
- 自动更新前加密:Clickonce用法
一.加密dll 新建一个windows form application: static void Main(string[] args) { Process. ...
- 【JLOI 2012】时间流逝(期望,树上高斯消元)
题目链接 这是一道传统的期望题,可是有一些套路值得我去掌握. 我们用$s$来表示一种状态,就是当前拥有的能量圈,是一个正整数拆分的形式. 用$f_{s}$表示如果遇到果冻鱼后丢掉了最小的能量圈后的状态 ...
- 40+ 个非常有用的 Oracle 查询语句
40+ 个非常有用的 Oracle 查询语句,主要涵盖了日期操作,获取服务器信息,获取执行状态,计算数据库大小等等方面的查询.这些是所有 Oracle 开发者都必备的技能,所以快快收藏吧! 日期/时间 ...
- Apache POI - Excel
基于模板的EXCEL报表组件ExcelUtils:http://blog.csdn.net/hanqunfeng/article/details/4834875 http://blog.csdn.ne ...
- System V 与 POSIX
System V 以及POSIX 对信号量.共享内存.消息队列等进程之间共享方式提供了自己的解决方案.因此,在学习时难免存在疑惑,到底有什么区别,哪种方式更佳.经过网上搜索各种博客,做出简单的总结. ...