JSP

来源:百度文库 编辑:神马文学网 时间:2024/03/29 23:13:17

JSP

JSP是Servlet的扩展,作用是简化网站创建过程和维护动态网站。如果在使用Servlet生成html,则得通过PrintWriter,这样编程就会很麻烦,

PrintWriter pr=response.getWriter();

Pt.println("'");

Pt.close();

 

相比于静态html文件和Servlet,JSP吸取了两种优点,摒弃两种缺点,大大简化了动态网页生成的工作。当容器收到XXX.JSP的请求时,Servlet容器按一下过程来处理:

 

1.查找HSP对应的Servlet,如果已经存在,就调用它的服务方法

2.如果jsp文件对应的servlet不存在,则解析jsp文件,得到servlet资源文件,接着编译生成servlet类,然后再初始化并运行servlet

 

Tomcat将JSp的原文件和类文件放于/home目录下

 

JSP基础语法

引用包:<%@page import="java.io.*">

隐含对象:Servlet可以访问Servlet容器提供的ServletContext、ServletRequest、ServletResponse对象、JSP中可以直接通过固定的引用变量来引用这些对象。

 

JSP生命周期

1.解析阶段:Servlet容器解析JSP文件的代码

2.翻译阶段,Servlet容器把jsp文件翻译成servlet原文件

3.编译阶段:SERVLET容器编译servlet源文件,生成SERVLET类

4.初始化:加载servlet,创建实例,调用init方法

5.运行阶段:调用与jsp对应的SERVLET实例的服务方法,service

6.销毁

 

常见jsp技术

① 请求转发:

不同于RequestDispatcher.forward(req,res),不会执行后面的代码

② 包含<%@ include page=""/>静态文件

③ 用于动态包含

静态包含,会将包含的多个文件合并成一个jsp源码,然后再对合并后的JSP文件,进行翻译和编译,可以是html文件/jsp文件

动态包含:分别编译不同的servlet,html/JSP/SERVLT,有一个flush属性,表示源组件在包含目标组件钱,先把已经生成的响应正文提交给客户端,既如果该文件已经生成servlet,先把那句源码返回,再次访问时即正常

 

前者通常用来包含不会发生变化的内容,动态通常包含会发生变化的内容

 

PageContext,继承了JSPContext,用于:

1.向各种范围内存取属性

2.获得由servlet容器提供的其他对象的引用方法,getPage、getRequest、getOut、、、

3.请求转发和包含的方法,forward、include