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 对象来传递

最新文章

  1. 自定义ViewGroup须知
  2. zabbix微信告警(虚拟机脚本测试成功,zabbix上收不到信息)
  3. ThinkPHP的RBAC
  4. CSS3初学篇章_4(边框样式/段落样式)
  5. sql: sql developer tunnel转接
  6. spring mvc 下载文件链接
  7. Brackets 前端编辑器试用
  8. sass或scss入门
  9. 纯CSS3实现轮播图
  10. Python基础——0前言
  11. bzoj3051[WC2013]平面图(树上倍增+平面图转对偶图+扫描线)
  12. hdu-3746(kmp)
  13. web前端知识大纲:系列一 js篇
  14. Linux系统中的常用命令
  15. JavaScript 全屏展示
  16. C# 申请非托管内存
  17. lakala proportion轨迹分析代码
  18. dockerk个人学习(0)
  19. 第十一章 企业项目开发--消息队列activemq
  20. android studio 中出现&quot;...ProjectScript\buildscript\cache.properties.lock&quot;

热门文章

  1. ALV添加文字输入框
  2. 开源纯C#工控网关+组态软件(四)上下位机通讯原理
  3. Asp.net MVC4高级编程学习笔记-模型学习第五课MVC表单和HTML辅助方法20171101
  4. hadoop2的mapreduce操作hbase数据
  5. THINKPHP中几个缓存的问题
  6. Leetcode题解(28)
  7. Uncle Tom&#39;s Inherited Land*
  8. Assigning Workstations
  9. 注销/etc/passwd带来的系统登陆不上
  10. css变量