contextServlet
一:读取配置文件中的参数信息
1.新建servlet文件ContextServlet1,代码为:
import java.io.IOException;
import java.util.Enumeration; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ContextServlet1 extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String url1 = this.getServletConfig().getServletContext().getInitParameter("url");
String url2 = this.getServletContext().getInitParameter("url");//这两行代码效果相同
System.out.println("url1:" + url1);
System.out.println("url2:" + url2);
System.out.println("--------------------------");
Enumeration<String> initParameterNames = this.getServletContext().getInitParameterNames();
while(initParameterNames.hasMoreElements()){
String nextElement = initParameterNames.nextElement();
String elementValue = this.getServletContext().getInitParameter(nextElement);
System.out.println("elementsValue:" + elementValue);
}
}
}
2.配置web.xml:
在web.xml根元素下加入下面代码:
<context-param>
<param-name>url</param-name>
<param-value>mysql:http://localhost:3306</param-value>
</context-param>
<context-param>
<param-name>address</param-name>
<param-value>this is the context-param's address</param-value>
</context-param>
<context-param>
<param-name>career</param-name>
<param-value>coder,enger,ceo</param-value>
</context-param>
3.发布工程,浏览器中输入:http://localhost/myday03/servlet/ContextServlet1
控制台打印结果:
url1:mysql:http://localhost:3306
url2:mysql:http://localhost:3306
--------------------------
elementsValue:coder,enger,ceo
elementsValue:mysql:http://localhost:3306
elementsValue:this is the context-param's address
二:程序写入contextServlet参数,并取出<统计网页访问次数>:
1.新建servlet文件ContextServlet2代码:
import java.io.IOException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//servletContext,session,request. jsp page. //servletContext是一个域对象,那么有两个概念。
// 1.域就肯定是一个容器。(可以放任何对象)。
// 2.域是有一个作用范围的。对于servletContext对象来说,它的作用范围就是整个web应用范围。
//
public class ContextServlet2 extends HttpServlet {
/*
* 首先通过init方法给其设置一个初始化的值。这个值设置了之后就是一个全局的。
* 通过servletContext对象设置的数据都是全局的。
* servletContext就当前的web应用。(non-Javadoc)
* @see javax.servlet.GenericServlet#init()
*/
public void init() throws ServletException {
int timesValue = 0;
//代码中一般是键值对,键在前,值在后,
this.getServletContext().setAttribute("timesName", timesValue);
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
/*为了统计网站的访问次数,首先将之前的全局的times给获得。
* 每次来自客户端的请求都将该全局的times+1
* 调用getAttribute("name")就可以获得全局的times.
*
*/
int timesValue = (Integer) this.getServletContext().getAttribute("timesName");
timesValue++;
//将变化后的times重新添加到容器中,
this.getServletContext().setAttribute("timesName", timesValue);
System.out.println("本网站已被访问:" + timesValue + "次!");
}
}
2.浏览器中输入:http://localhost/myday03/servlet/ContextServlet2
控制台输出:
本网站已被访问:1次!
本网站已被访问:2次!//第二次刷新时得到的结果。每刷新一次就得到一个新的结果。
三:将上述在控制台中输出的结果改为在浏览器中输出:
import java.io.IOException;
import java.text.DateFormat;
import java.util.Date; import javax.servlet.*;
import javax.servlet.http.*;
public class RefreshServelet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//refresh头实现定时刷新到某个页面.
//一般可用作定时刷新,
//应用:股票,聊天室,
// response.setHeader("Refresh", "2;url=http://www.baidu.com");
response.setHeader("Refresh", "0");
response.setContentType("text/html;charset=utf-8");
response.getWriter().print("每秒刷新一次:"+ new Date(System.currentTimeMillis()).toLocaleString());
// response.getWriter().print("每秒刷新一次:"+ DateFormat.format(); }
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
} }
contextServlet的更多相关文章
- spring4+hibernate4+maven环境搭建
本文主要介绍利用maven搭建spring4+hibernate4开发环境. 首先我们创建一个maven项目,具体步骤就不详细介绍了,看看我们pom.xml文件 <project xmlns=& ...
- ServletContext2
------------ContextServlet.java--------------节选-- protected void doGet(HttpServletRequest request, H ...
- JavaEE:Servlet简介及ServletConfig、ServletContext
Servlet简介 1.Servlet是sun公司提供的一门用于开发动态web资源的技术*静态web资源:固定数据文件*动态web资源:通过程序动态生成数据文件2.Servlet技术基于Request ...
- 【JAVAWEB学习笔记】13_servlet
JavaWeb核心之Servlet 教学目标 案例一.完成用户登录功能 案例二.记录成功登录系统的人次 一.Servlet简介 1.什么是Servlet Servlet 运行在服务端的Java小程序, ...
- Servlet (二)ServletContext
package cn.sasa.serv; import java.io.IOException; import javax.servlet.ServletContext; import javax. ...
- SpringMVC源码解析-DispatcherServlet启动流程和初始化
在使用springmvc框架,会在web.xml文件配置一个DispatcherServlet,这正是web容器开始初始化,同时会在建立自己的上下文来持有SpringMVC的bean对象. 先从Dis ...
- spring的开发
spring与web的整合 1. 整合的原理: Spring容器随着tomcat容器ServletContext的启动而启动,并且在初始化完成后放到整个应用都可以访问的范围. ApplicationC ...
- Servlet学习(三)——实例:用户登录并记录登陆次数
1.前提:在Mysql数据库下建立数据库web13,在web13下创建一张表user,插入几条数据如下: 2.创建HTML文件,命名为login,作为登录界面(以post方式提交) <!DOCT ...
- jboss6.1安装配置
Jboss6.1的用途,配置,使用详解 一..简介: JBoss是全世界开发者共同努力的成果,一个基于J2EE的开放源代码的应用服务器因为JBoss代码遵循LGPL许可,你可以在任何商业应用中免费使 ...
随机推荐
- ie6,ie7,ie8 css bug汇总以及兼容解决方法
1:li边距“无故”增加 任何事情都是有原因的,li边距也不例外. 先描述一下具体状况:有些时候li边距会突然增 加很多,值也不固定(只在IE6/IE7有这种现象),让人摸不着头脑,仔细“研究”发现是 ...
- 提取 ECharts 中的svg地图信息
地图的需求还是蛮大的,全国都要自己画的话,还是需要投入比较大的人力. ECharts中有地图,那我们能不能把里面的地图文件提取出来呢,主要逻辑在map.js中. 看源代码发现,ECharts中地图信息 ...
- 动态Script标签 解决跨域问题
动态Script 解决跨域问题 1.动态创建scriptcreateScript : function(src){ var varScript = document.createElement(&q ...
- 怎样在Eclipse中使用debug模式调试程序
最基本的操作是: 1, 首先在一个java文件中设断点,然后运行,当程序走到断点处就会转到debug视图下, 2, F5键与F6键均为单步调试,F5是step into,也就是进入本行代码中执行,F6 ...
- php 输出带变量字符串
(一) <?php $a=50;echo "Hello World 我有"."$a"."元";?> 看此例子,变量a的输出,在p ...
- chrome实现全浏览器跨域ajax请求
如图,在chrome快捷方式上打开属性栏,在‘目标’栏加上后缀--disable-web-security --user-data-dir.即可实现在此浏览器上所有网页的跨域请求.
- Javascript 装载和执行
http://coolshell.cn/articles/9749.html http://www.cnblogs.com/cheche/archive/2011/03/06/1971955.html
- css Block formatting context BFC
w3c关于BFC解释: http://www.w3.org/TR/CSS21/visuren.html#block-formatting Mdn描述: A block formatting conte ...
- [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(三)
我们已经设计了一个基于qemu的watchdog了.下一步工作就是创建一个含有我们的watchdog的虚拟计算机器了. 准备工作: 1. 使用virt-manager或者virsh创建一个虚拟机器. ...
- 用showModalDialog写的简单弹出框传参与反参
vReturnValue = window.showModalDialog(sURL [, vArguments] [,sFeatures]) sURL -- 必选参数,类型:字符串.用来指定对话框要 ...