欢迎来到天天文库
浏览记录
ID:48011990
大小:147.82 KB
页数:5页
时间:2020-01-14
《JSP和Servlet的关系浅谈.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、JSP和Servlet的关系浅谈JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。由于包括大量的HTML标签、大量的静态文本及格式等,导致Servlet的开发效率极为低下。所有的表现逻辑,包括布局、色彩及图像等,都必须耦合在Java代码中,这的确让人不胜其烦。JSP的出现弥补了这种不足,JSP通过在标准的HTML页面中插入Java代码,其静态的部分无须Java程序控制,只有那些需要从数据库读取并根据程序动态生
2、成信息时,才使用Java脚本控制。从表面上看,JSP页面已经不再需要Java类,似乎完全脱离了Java面向对象的特征。事实上,JSP是Servlet的一种特殊形式,每个JSP页面就是一个Servlet实例——JSP页面由系统编译成Servlet,Servlet再负责响应用户请求。JSP其实也是Servlet的一种简化,使用JSP时,其实还是使用Servlet,因为Web应用中的每个JSP页面都会由Servlet容器生成对应的Servlet。对于Tomcat而言,JSP页面生成的Servlet放在work路径对应的Web应用下。看下面一个简单
3、的JSP页面:<%@pagecontentType="text/html;charset=gb2312"language="java"%>
4、Tomcat之后,可以在Tomcat的Catalinalocalhostjsptestorgapachejsp目录下找到如下文件(假如Web应用名为jsptest,上面JSP页的名为test1.jsp):test1_jsp.java和test1_jsp.class。这两个文件都是Tomcat生成的,Tomcat根据JSP页面生成对应Servlet的Java文件及class文件。下面是test1_jsp.java文件的源代码,这是一个特殊的Java类,是一个Servlet类://JSP页面经过Tomcat编译后默认的包package
5、org.apache.jsp;importjavax.servlet.*;importjavax.servlet.http.*;importjavax.servlet.jsp.*;//继承HttpJspBase类,该类其实是个Servlet的子类publicfinalclasstest1_jspextendsorg.apache.jasper.runtime.HttpJspBaseimplementsorg.apache.jasper.runtime.JspSourceDependent{privatestaticjava.util.Vec
6、tor_jspx_dependants;publicjava.util.ListgetDependants(){return_jspx_dependants;}//用于响应用户的方法publicvoid_jspService(HttpServletRequestrequest,HttpServletResponseresponse)throwsjava.io.IOException,ServletException{//获得页面输出流JspFactory_jspxFactory=null;PageContextpageContext=nul
7、l;HttpSessionsession=null;ServletContextapplication=null;ServletConfigconfig=null;//获得页面输出流JspWriterout=null;Objectpage=this;JspWriter_jspx_out=null;PageContext_jspx_page_context=null;//开始生成响应try{_jspxFactory=JspFactory.getDefaultFactory();//设置输出的页面格式response.setContentTyp
8、e("text/html;charset=gb2312");pageContext=_jspxFactory.getPageContext(this,request,respon
此文档下载收益归作者所有