Servlet和JSP的关系以及此关系在Tomcat中的体现

典型的Servlet运行环境有JSWDKTomcatResin等,相比 JRunWeb SphereWeb Logic等等,前者配置比较简单,功能较简单,而且免费,更适合初学者!

 

学习servlet之前首先得了解一个servlet的运行环境,下面认识一下tomcat6.0.30的目录结构:

RUNNING.txt文件中简单描述了这些文件夹的做用和使用tomcat服务器的其他相关信息。今天我们主要讲解一下confwebappswork等文件夹在我们的应用程序运行中的作用。

 

我们的应用程序主要部署在webaps文件夹下,在某个项目文件夹下含有WEB-INF文件夹,我们的应用程序就部署在其中,其中含有的元素如下图所示:

 

下面举个简单servlet例子,代码如下:

 

对此java文件进行javac编译,将编译好的文件放到classes文件夹下,然后配置web.xml文件,如下图所示:

而后便可以启动tomcat,在浏览器中访问到我们的servlet程序了。运行结果如下图所示:

(1)    控制台的结果

2)浏览器中的结果

 

从上述浏览器中输出的信息我们会发现,其实servlet写的文件就是可以用于浏览器访问的,跟我们的html和一些动态网页的展现功能是很相似的。而servlet的实质就是针对运行于客户端浏览器中的Applet程序而提出的一种运行于服务器端的小应用程序。

 

servlet存在一些缺陷,这也是JSP产生的主要原因,如下所示:

    1)写静态页面必须部署后才能看到效果,很难控制页面的外观。
          2)
从技术角度来说ServletJava代码和HTML静态代码的混合代码。
          3)
从市场竞争角度来说,微软推出了ASP产品。

JSP主要有如下几点改进:

    1)JSP是标签式的文本文件(ServletJava文件)

    2)JSP不需要编译(其实是由服务器监测JSP文件的变化,再将其翻译成 Servlet 代码)

      服务器对其进行编译并在第一次请求时创建一个Servlet实例。所以,第一次访问JSP页面时会后延迟

    3)JSP不用写配置文件

    4)JSP以静态代码为主,Java代码为辅。Servlet反之。

   5)J2EE蓝图的一部分(ServletJSP以及EJBJ2EE的三大组件)

 

下面编写并部署一个JSP程序,JSP代码文件如下所示:

 

不需要在web.xml文件中进行配置,直接运行tomcat,便可访问,结果如下所示:

由此可以看出JSP也是一种servlet。在第一次访问我们的JSP时,tomcat会对这个文件进行编译,将之编译成一个servlet类,其位置在work文件夹下。在servlet举例中我们知道运行它是需要配置web.xml文件的,那jsp编译成servlet类后不需要配置web.xml文件吗?这个当然需要,只不过tomcat已经存在了一个默认的配置,该文件的是:conf文件夹下的web.xml

到此可以看出tomcat实现了像访问servlet的一样的方式来访问JSP!具体的流程图如下所示:

对上图进行一点解释,如果是第一次调用这个jsp页面则需要从第0步顺次执行,否则只执行第5步。

JSP从本质上来说内核还是Servlet,但与Servlet不是替代关系而是一种互补的关系。  JSP适合于写显示层的动态页面,而Servlet则适合写控制层的业务控制(页面转发)JSP往纯标签方向发展,Servlet往纯代码方向发展,他们以Servlet内核(请求响应式的工作方式)往两个方向发展。

一点补充:servletjsp的调用流程分别如下所示:

 

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值