ServletConfig

容器初始化一个Servlet的时候,会为这个Servlet建一个唯一的Servletconfig的对象(Servlet的配置对象)

容器会从部署的描述文件(web.xml)中 读出servlet 初始化参数 交给 ServletConfig对象

再把ServletConfig对象传递给Serlvet的 init() 方法

  • ServletConfig 的配置标签需要写到 Servlet 标签中,标签如下:
		<init-param>
<param-name>number</param-name>
<param-value>100</param-value>
</init-param>
  • 在Servlet中获取ServletConfig 对象:

HttpServlet 中的 getServletConfig 方法来获取

注意:ServletConfig 只能在配置的Servlet中使用,其他的Servlet是无法访问里面的配置参数的


ServletContext

  • ServletContext 的配置标签需要写到 web-app (根标签)中 ,具体如下:
		<context-param>
<param-name>appname</param-name>
<param-value>Servlet应用</param-value>
</context-param>
  • 在Servlet中获取ServletContext对象:

HttpServlet中的 getServletContext 方法来获取

注意:ServletContext 配置的内容可以在整个项目中进行访问

因为ServletContext的数据是应用所有的servlet共享,可以通过该对象存储数据

		ServletContext.setAttribute("nama","value");

		ServletContext.getAttribute("name");

思考:能否通过送给ServletContext设置一个属性,来判断用户是否为登陆状态,从而确定用户能否访问的到登陆才能访问到的页面?

: 是不可以的。因为ServletContext设置的属性 虽然是整个项目都可以访问得到,但是ServletContext是一直存在的。如果不删除属性,只有当项目卸载重新发布的时候才能删除,这显然是有问题。因此我们不是用它,我们用session来代替,当用户关闭窗口的时候session过一短时间就会自动销毁。


补充

利用请求域属性来传递数据 (分派 RequestDispatcher )

在ServletRequest 接口中定义了:

void setAttribute(java.lang.String name, java.lang.Object o)   //将对象存储到ServletRequest中

java.lang.Object getAttribute(java.lang.String name)  //检索存储在ServletRequest对象中的对象

那么,如果是一次请求中(分派),从第一个Servlet中传递值给第二个Servlet,需要通过 ServletRequest 对象来传递

Servlet之初始化参数和传递数据(ServletConfig,ServletContext )的更多相关文章

  1. 从以下哪一个选项中可以获得Servlet的初始化参数。

    从以下哪一个选项中可以获得Servlet的初始化参数. A.Servlet B.ServletContext C.ServletConfig D.GenericServlet 解答:C servlet ...

  2. JavaWeb---通过ServletConfig获取Servlet的初始化参数

    package com.zyz; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import j ...

  3. 通过Servlet获取初始化参数

    获取初始化参数在web.xml中配置Servlet时,可以配置一些初始化参数.而在Servlet中可以通过ServletConfig接口提供的方法来获取这些参数.(其实还可以通过ServletCont ...

  4. servlet内置对象(传递数据)

    一个servlet向另一个servlet发送数据,可以将数据放置在一个容器中(io.数据库.servlet的内置对象),servlet的内置对象成本最小. 一共有三个内置对象. 名字 类型 reque ...

  5. 在javaweb中从servlet端向jsp端传递数据的方法

    1.servlet端: request.setAttribute("student", student)://向请求域中添加名称为student,内容为student中内容的数据( ...

  6. 获得Servlet的初始化参数

    通过ServletConfig接口的getInitParameter(java.lang.String name)方法

  7. javaee学习-servlet初始化参数

    1.需要定义ServletConfig对象来接收servlet配置的初始化参数. 2.当servlet配置了初始化参数后,web容器在创建servlet实例对象时, 会自动将这些初始化参数封装到Ser ...

  8. Servlet中的初始化参数、上下文参数、以及@Resource资源注入

    配置初始化参数.上下文参数.以及使用@Resource注解进行资源注入,目的是为了降低代码的耦合度.当项目需求进行变更的时候,不需要反复更改源代码,只需更改web.xml文件即可. 一:Servlet ...

  9. web.xml中servlet初始化参数的设置

    <context-param><param-name>param1</param-name><param-value>value1</param- ...

随机推荐

  1. C语言位操作

    #include <stdio.h> void print(int); int main(void) { int flag = 0xffe4; print(flag); printf(&q ...

  2. hack查询地址

    悲催的IE! http://browserhacks.com/

  3. 【JAVA零基础入门系列】Day11 Java中的类和对象

    今天要说的是Java中两个非常重要的概念--类和对象. 什么是类,什么又是对象呢?类是对特定集合的概括描述,比如,人,这个类,外观特征上,有名字,有年龄,能说话,能吃饭等等,这是我们作为人类的相同特征 ...

  4. 2017上海QCon之旅总结(中)

    本来这个公众号的交流消息中间件相关的技术的.上周去上海参加了QCon,第一次参加这样的技术会议,感受挺多的,所以整理一下自己的一些想法接公众号和大家交流一下. 三天的内容还挺多的,原计划分上下两篇总结 ...

  5. 爱上朴实的CSS细节

    英文原文:Learning to Love the Boring Bits of CSS  未来的CSS太让人兴奋了:一方面,是全新的页面布局方式:另一方面,是酷炫的滤镜.颜色等视觉效果.这些CSS, ...

  6. 一个简单大方的赞后+1,踩后-1js动画效果

    js部分 <script type="text/javascript"> <!-- $(document).ready(function(e) { $('a.zh ...

  7. 关于Makefile,Makefile.in,Makefile.am,Configure功能及相互关系的问题

    makefile写法 在 Unix 上写程式的人大概都碰过 Makefile,尤其是用 C 来开发程式的人.用 make来开发和编译程式的确很方便,可是要写出一个 Makefile就不简单了.偏偏介绍 ...

  8. code forces 436 C. Bus

    C. Bus time limit per test 2 seconds memory limit per test 256 megabytes input standard input output ...

  9. Rank of Tetris

    Rank of Tetris Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...

  10. 2016 ICPC总结

    2016 ICPC总结 九月份开学,开始知识点的补充,刚开始的几周都在刷acmsteps,十月开始进行专题性的学习,首先进行的数据结构,给自己定的计划,十一月前看完数据结构,刚开始的时候看的都是以前的 ...