servlet容器与web容器的概念

原创 2015年07月10日 11:20:17
一般的说法是这样的,servlet容器的主要任务是管理servlet的生命周期。而web容器更准确的说应该叫web服务器,它是来管理和部署 web应用的。还有一种服务器叫做应用服务器,它的功能比web服务器要强大的多,因为它可以部署EJB应用,可以实现容器管理的事务,一般的应用服务器 有weblogic和websphere等,它们都是商业服务器,功能强大但都是收费的。web容器最典型的就是tomcat了,Tomcat是web容 器也是servlet容器。

一、request.getParameter() 和request.getAttribute() 区别
(1)request.getParameter()取得是通过容器的实现来取得通过类似post,get等方式传入的数据,request.setAttribute()和getAttribute()只是在web容器内部流转,仅仅是请求处理阶段。
(2)request.getParameter()方法传递的数据,会从Web客户端传到Web服务器端,代表HTTP请求数据。request.getParameter()方法返回String类型的数据。
request.setAttribute()和getAttribute()方法传递的数据只会存在于Web容器内部
还有一点就是,HttpServletRequest类有setAttribute()方法,而没有setParameter()方法。
拿一个例子来说一下吧,假如两个WEB页面间为链接关系时,就是说要从1.jsp链接到2.jsp时,被链接的是2.jsp可以通过getParameter()方法来获得请求参数.
假如1.jsp里有

请输入用户姓名:

的话在2.jsp中通过request.getParameter(“username”)方法来获得请求参数username:
< % String username=request.getParameter(“username”); %>
但是如果两个WEB间为转发关系时,转发目的WEB可以用getAttribute()方法来和转发源WEB共享request范围内的数据,也还是说一个例子吧。
有1.jsp和2.jsp
1.jsp希望向2.jsp传递当前的用户名字,如何传递这一数据呢?先在1.jsp中调用如下setAttribute()方法:

<% String username=request.getParameter(“username”); request.setAttribute(“username”,username); %> 在2.jsp中通过getAttribute()方法获得用户名字: <% String username=(String)request.getAttribute(“username”); %>
二、request.getAttribute()与request.setAttribute()
request.getAttribute(“nameOfObj”)可得到JSP页面一表单中控件的Value。其实表单控件中的 Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value。
而不同页面间传值使用request.setAttribute(position, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request就会失去它的作用范围,再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。
P.S.:JavaScript与JSP中不能相互传值,因为JavaScript运行在客户端,而JSP运行在服务器端。若想使它们之间可以相互传递参数,可以在JSP中设置一个hidden控件,用它的value结合上面所说的用法来传递所需的数值。

版权声明:本文为Charles Dong原创文章,未经博主允许不得转载。(charles@xingbod.cn)

理解Servlet和Servlet容器、Web服务器等概念

转载自http://blog.csdn.net/iAm333之前在开源中国看到一篇文章《初学 Java Web 开发,请远离各种框架,从 Servlet 开发》,觉得很不错。想到自己之前一直对各种框架...
  • lz233333
  • lz233333
  • 2017年03月29日 21:39
  • 1582

Servlet,Servlet容器,Jsp容器,Web容器

Servlet是一种运行在服务器端的java应用程序,具有独立于平台(java语言具有平台无关性)和独立于协议的特性(Servlet不对具体的协议实现,而是自定义协议,用HttpServlet对HTT...
  • QMW19910301
  • QMW19910301
  • 2016年12月05日 14:54
  • 1012

初学者对Servlet、JSP及Web容器之间关系的理解

Servlet就是一个Java程序,一个Servlet应用程序经常包含一个或者多个Servlet也就是当用户发送请求,例如提交表单,那么需要一个或多个Servlet协同作用,而访问的jsp页面也是一个...
  • u012318703
  • u012318703
  • 2015年09月05日 23:08
  • 1280

servlet和web容器之间的关系

Java是一种动态加载和运行的语言。也就是说当应用程序持有一个类的地址(CLASSPATH)和名称(包名和类名)的情况下,可以在程序运行期 间任何时候加载这个类,并创建和使用该类的对象。Servlet...
  • seelye
  • seelye
  • 2013年01月05日 16:46
  • 10586

以Tomcat为例介绍Servlet容器启动过程

在这里以Tomcat为例介绍Servlet容器启动过程Tomcat的总体结构Tomcat启动server服务器对外提供Service服务,Container作为Service的核心组件(Contain...
  • u014431852
  • u014431852
  • 2015年07月24日 16:15
  • 7268

JavaWeb 容器与组件

容器是Java EE体系结构中的重要部分。本章一开始曾谈到,正如房屋为居民提供了水管和电力一样,Java EE也为应用程序提供了基础设施。那么,容器就像这所房子的房间。房间里有人或者其他物品,并且通过...
  • shenlin2011
  • shenlin2011
  • 2014年05月04日 20:44
  • 1067

Servlet容器与Servlet,Tomcat的关系

当初在Apache开发时还未出现Servlet的概念,所以Apache不能内置支持Servlet。实际上,除了Apache,其他许多Web服务器软件都不能直接支持Servlet。为了支持Servlet...
  • baidong008
  • baidong008
  • 2014年07月16日 21:17
  • 1927

深入理解Java Servlet与Web容器之间的关系

理解Java Servlet与Web容器之间的关系,有利于理解Java Web应用的运行方式。进而让Java开发者能够设计和开发出更合理的Java Web应用程序。...
  • cc6208048
  • cc6208048
  • 2015年12月23日 16:36
  • 1102

servlet容器与web容器的概念

一般的说法是这样的,servlet容器的主要任务是管理servlet的生命周期。而web容器更准确的说应该叫web服务器,它是来管理和部署 web应用的。还有一种服务器叫做应用服务器,它的功能比web...
  • cao478208248
  • cao478208248
  • 2014年10月17日 10:00
  • 210

J2EE中容器:WEB容器、EJB容器

J2EE中容器充当中间件的角色。主要的容器包括: WEB容器:给处于其中的应用程序组件(JSP,SERVLET)提供一个环境,使JSP,SERVLET直接更容器中的环境变量接口交互,不必关注其它系统...
  • niuhea
  • niuhea
  • 2014年03月10日 09:26
  • 10723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:servlet容器与web容器的概念
举报原因:
原因补充:

(最多只允许输入30个字)