Servlet之初始化参数和传递数据(ServletConfig,ServletContext )
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 )的更多相关文章
- 从以下哪一个选项中可以获得Servlet的初始化参数。
从以下哪一个选项中可以获得Servlet的初始化参数. A.Servlet B.ServletContext C.ServletConfig D.GenericServlet 解答:C servlet ...
- JavaWeb---通过ServletConfig获取Servlet的初始化参数
package com.zyz; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import j ...
- 通过Servlet获取初始化参数
获取初始化参数在web.xml中配置Servlet时,可以配置一些初始化参数.而在Servlet中可以通过ServletConfig接口提供的方法来获取这些参数.(其实还可以通过ServletCont ...
- servlet内置对象(传递数据)
一个servlet向另一个servlet发送数据,可以将数据放置在一个容器中(io.数据库.servlet的内置对象),servlet的内置对象成本最小. 一共有三个内置对象. 名字 类型 reque ...
- 在javaweb中从servlet端向jsp端传递数据的方法
1.servlet端: request.setAttribute("student", student)://向请求域中添加名称为student,内容为student中内容的数据( ...
- 获得Servlet的初始化参数
通过ServletConfig接口的getInitParameter(java.lang.String name)方法
- javaee学习-servlet初始化参数
1.需要定义ServletConfig对象来接收servlet配置的初始化参数. 2.当servlet配置了初始化参数后,web容器在创建servlet实例对象时, 会自动将这些初始化参数封装到Ser ...
- Servlet中的初始化参数、上下文参数、以及@Resource资源注入
配置初始化参数.上下文参数.以及使用@Resource注解进行资源注入,目的是为了降低代码的耦合度.当项目需求进行变更的时候,不需要反复更改源代码,只需更改web.xml文件即可. 一:Servlet ...
- web.xml中servlet初始化参数的设置
<context-param><param-name>param1</param-name><param-value>value1</param- ...
随机推荐
- [poj1644]放苹果
题目链接:http://poj.org/problem?id=1664 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5, ...
- Java基础总结--Java编程环境变量配置
1.jdk--bin--都是命令行程序(图形化是对命令行的封装)eg javac&java执行javac必须切换到其所在目录--太麻烦---想在任意目录下使用要执行一个命令--先在当前目录下找 ...
- Windows下swoole扩展的编译安装部署
1. 到cygwin官网下载cygwin. 官网地址:https://www.cygwin.com/ 2. 打开下载好的cygwin安装包,开始安装cygwin. 选择cygwin的安装目录(这个同时 ...
- LeetCode 48. Rotate Image(旋转图像)
You are given an n x n 2D matrix representing an image. Rotate the image by 90 degrees (clockwise). ...
- HDU 6140 Hybrid Crystals
Hybrid Crystals Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- The Euler function(线性筛欧拉函数)
/* 题意:(n)表示小于n与n互质的数有多少个,给你两个数a,b让你计算a+(a+1)+(a+2)+......+b; 初步思路:暴力搞一下,打表 #放弃:打了十几分钟没打完 #改进:欧拉函数:具体 ...
- JavaNIO阻塞IO
package com.java.NIO; import java.io.IOException; import java.net.InetSocketAddress; import java.nio ...
- c++学习笔记---02---从一个小程序说起
从一个小程序说起 这一讲的主要目的是帮助大家在C语言的背景知识上与C++建立联系. 问题探索 问题:对一个整型数组求和. 要求:定义一个存储着 n 个元素的数组,要求用C语言完成这个任务. 赶紧的:大 ...
- CentOS7安装配置vncserver
系统环境:CentOS Linux release 7.4.1708 Kernel:3.10.0-693.el7.x86_64 系统现状:最小化安装,没有安装任何图形支持软件 安装图形化支持 不建议安 ...
- MVC架构下,使用NPOI读取.DOCX文档中表格的内容
1.使用NPOI,可以在没有安装office的设备上读wiod.office.2.本文只能读取.docx后缀的文档.3.MVC架构中,上传文件只能使用form表单提交,转到控制器后要依次实现文件上传. ...