java web

Servlet的缺陷:
Servlet的编码、部署和调试任务繁琐。
生成动态网页繁琐,不利于项目分工

jsp:全称叫java server page

jsp页面要被WEB容器翻译成java类,按照servlet规范,所有jsp翻译生成的类,必须实现HttpjspPage接口,而HttpjspPage是Servlet的子接口。也就意味所有jsp翻译生成类也会实现Servlet。所以,从这个意义说,jsp本质是Servlet.
jsp重在于页面显示,而servlet重在于逻辑处理。

jsp引擎:jsp引擎是web容器编写的类,负责将jsp页面翻译成java类。在web容器/conf/web.xml中进行注册。

jsp生命周期:
由jsp引擎将jsp页面翻译成java代码。
将java代码编译成class字节码文件。
加载到容器
由容器实例化成对象
初始化阶段相关的方法是jspInit()
请求到达,调用服务阶段相关的方法是_jspService()
销毁阶段相关的方法是jspDestroy()

jsp网页主要由元素(Element)和模板数据(TemplateData)两个部分组成

模板数据是jsp的静态部分
WEB容器不处理
元素则是必须经由WEB容器解释
元素都是以XML做为语法基础,并且大小写要一致

jsp脚本元素
声明:<%! %>定义jsp类的成员变量、静态变量和方法
脚本:<%  %>丰富_jspService(),在脚本中定义的变量,全部是_jspService()的局部变量。
表达式:<%= %>丰富_jspService(),相当于out.print()向页面输出内容。注意,后面不能加分号。

jsp注释:
jsp注释<%-- --%> 容器不翻译,只在源代码中可见,最为安全
Html注释:<!-- --> html会通过out.print输出到客户端。客户端和服务器均可见,最不安全。
java注释://   /* */给java代码书写的注释,只在服务器端可见。

jsp隐式对象:jsp引擎翻译的jsp类中,在_jspService()中会定义九个变量,并将这些变量做初始化。由于脚本和表达式是在丰富_jspService()方法。所以可以直接使用这些变量。这些变量称为jsp的隐式对象。

jsp隐式对象有9个:
4个作用域:
pageContext:只在当前jsp页面有效
request:作用请求
session:作用于会话
application:作用于全局

2个输出:
response:响应对象
out:打印输出流
page:当前对象
config:配置对象
exception:异常对象

page指令:
contentType:设置MIME类型和编码集
pageEncoding:设置编码集,MIME类型默认为text/html;
import:导入该jsp类中所用到的类。如果需要导入多个类,中间以逗号分开。

session:默认为true。表示访问该jsp页面时,产生会话对象。

errorPage:表示当前jsp页面如果抛出了运行异常,则跳转指定出错页面。
isErrorPage:表示该jsp页面为出错处理页面。定义了exception隐式对象,接收异常对象。

<%@include file="">叫做指令包含,也叫静态包含。在编译时发生。将本身jsp和包含的jsp放在一起编译,形成一个class文件。所有两个页面不能存在同名变量,指令包含也只能包含文件。

<jsp:include page="">叫做动态包含,在请求时发生。本身jsp包含的是另一个jsp执行的结果。形成两个class文件。所有两个页面可以存在同名变量。动作包含可以包含文件,也可以包含servlet输出结果,同时,可以传递参数。
<jsp:include page="/out">
<jsp:param value="ppp" name="myid">
</jsp:include>

<jsp:forward page="relativeURL"/> 控制权交给了另一个JSP。相当于内部转发
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值