分享

JSP

 碧海山城 2010-07-13

JSP

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

PrintWriter pr=response.getWriter();

Pt.println("'<html></html>");

Pt.close();

 

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

 

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

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

 

TomcatJSp的原文件和类文件放于<CATALION-HOME>/home目录下

 

JSP基础语法

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

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

 

JSP生命周期

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

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

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

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

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

6.销毁

 

常见jsp技术

① 请求转发:<jsp:forward page=""url>

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

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

③ <jsp:include page="">用于动态包含

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

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

 

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

 

PageContext,继承了JSPContext,用于:

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

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

3.请求转发和包含的方法,forwardinclude

 

 

 

 

 

 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多