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工程拆分成一个个功能相对独立但相互依赖的小 ...
随机推荐
- 三星a9上测试egret与pixi.js的渲染性能
for (let i = 0; i < 500; i++) { let shape = new egret.Shape(); shape.graphics.beginFill(0xff0000) ...
- robotframework运行时后台报错UnicodeDecodeError
win10环境下报错: Traceback (most recent call last): File "C:\Python27\lib\site-packages\robotide\con ...
- 免费SSL证书(https网站)申请
如何拥有一个自己的免费的SSL证书,并且能够长期拥有.这篇文章让你找到可用的免费证书o(* ̄︶ ̄*)o 各厂商提供的免费SSL基本是Symantec(赛门铁克),申请一年,不支持通配符,有数量限制. ...
- 【刷题】BZOJ 2125 最短路
Description 给一个N个点M条边的连通无向图,满足每条边最多属于一个环,有Q组询问,每次询问两点之间的最短路径. Input 输入的第一行包含三个整数,分别表示N和M和Q 下接M行,每行三个 ...
- 【BZOJ4870】组合数问题(动态规划,矩阵快速幂)
[BZOJ4870]组合数问题(动态规划,矩阵快速幂) 题面 BZOJ 洛谷 题解 显然直接算是没法做的.但是要求的东西的和就是从\(nk\)个物品中选出模\(k\)意义下恰好\(r\)个物品的方案数 ...
- pthread_detach pthread_create实例
//pool.h 1 #ifndef POOL_H #define POOL_H #include <pthread.h> class pool { public: pool(); ~po ...
- 20145215《网络对抗》Exp2 后门原理与实践
20145215<网络对抗>Exp2 后门原理与实践 基础问题回答 例举你能想到的一个后门进入到你系统中的可能方式? 在网上下载软件的时候,后门很有可能被捆绑在下载的软件当中: 浏览网页的 ...
- 写一个栈,实现出栈、入栈、求最小值,时间复杂度为O(1)
#-*-coding:utf-8-*- ''' 需求:写一个栈,实现出栈.入栈.求最小值,时间复杂度为O(1) 思路:通过两个栈实现,一个栈stack,一个辅助栈min_stack,记录stack中的 ...
- vue axios的使用
详细可以看:https://www.kancloud.cn/yunye/axios/234845 这里介绍日常使用得比较多的get和post: import axios from 'axios' // ...
- python 爬虫 scrapy1_官网教程
Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...