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- ...
随机推荐
- Entity Framework Core 2.0 使用入门
一.前言 Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core.以前我也嫌弃EF太重而不去使用它,但是EF Core(E ...
- 64、django之模型层(model)--建表、查询、删除基础
要说一个项目最重要的部分是什么那铁定数据了,也就是数据库,这篇就开始带大家走进django关于模型层model的使用,model主要就是操纵数据库不使用sql语句的情况下完成数据库的增删改查.本篇仅带 ...
- Java基础笔记1
java (开源,跨操作系统)j2ee jre java基础 javaoop java高级 JDK(JAVA developer Kitool): java开发工具 (开发人员使用) JRE(java ...
- Azure ASM虚拟机部署“安全扩展”
Azure虚拟机,默认情况下没有安装杀毒软件.如果您有此需求可以通过Azure 扩展进行安装,有关Azure反恶意软件的官方说明请参考:https://docs.azure.cn/zh-cn/secu ...
- (11.06)Java小知识
最近由于课程变化,学习计划也跟着改动,留给我写博客的时间也越来越少.今天晚上没有课,抽空过来图书馆写一写,许久不写感觉都有点陌生了! 今天要和大季家分享的衔接了上一篇博客,是关于方法的嵌套调用与递归调 ...
- css3 滚动条出现 页面不跳动
.wrap-outer { margin-left: calc(100vw - 100%); } .wrap-outer { padding-left: calc(100vw - 100%); } ...
- rem 单位
rem(font size of the root element)是指相对于根元素的字体大小的单位. 主流的一些web app的适配解决方案: 流式布局: 流式布局在页面布局的时候都是通过百分比 ...
- Webpack 入门教程
Webpack 是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. 本章节基于 Webpack3.0 测试通过. 从图中我们可以看出,W ...
- 谷歌浏览器Chrome播放rtsp视频流解决方案
找半天,HTML5的可以支持RTMP 但是无法播放RTSP,flash也止步于RTMP,最后同事推荐了个开源的好东东 VLC ,请教谷歌大神之后,这货果然可以用来让各浏览器(IE activex方式, ...
- 使用jquery ajaxForm提交表单
一.首先引用Jquery <script src="~/Scripts/jquery-1.9.1.min.js"></script> <script ...