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许可,你可以在任何商业应用中免费使 ...
随机推荐
- java.util.Random 类的 nextInt(int num )
随机产生3个67~295的整数并找出数值居中的数 并输出中间的数例如:100,225和200,输出200 要随机产生某个范围内的整数,用 java.util.Random 类的 nextInt(int ...
- KETTLE使用入门
一.准备文件 1.安装java虚拟机 2.安装kettle安装文件 二.使用步骤 1.点击Spoon.bat,启动kettle,弹出DOS窗口如下: 2.进入主界面 3.新建资源库
- android 用 XML 自定义边框(只上下边框有色)
直接上代码: <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android ...
- elk之nginx
elk之nginx: ignore_older => 86400,不处理一天以前的文件. zjtest7-frontend:/usr/local/logstash-2.3.4/config# c ...
- 柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装、配置与监控
柯南君:看大数据时代下的IT架构(3)消息队列之RabbitMQ-安装.配置与监控 一.安装 1.安装Erlang 1)系统编译环境(这里采用linux/unix 环境) ① 安装环境 虚拟机:VMw ...
- 网易云课堂_C语言程序设计进阶_第5周:链表_1逆序输出的数列
1 逆序输出的数列(10分) 题目内容: 你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束.然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1. 输 ...
- Android建立模拟器进行调试
安装好android开发环境后.用到下面几个命令.android, adb, emulator android - 最主要的android命令.能够进行sdk更新,列出设备源,生成虚拟设备等. adb ...
- 更改DataTable列名方法
1.通过DataAdapter将查询的结果填充到DataSet的表(DataTable)中: 如:dataAdapter.Fill(dataSet),这时dataSet的表名默认为Table 如果使用 ...
- ##DAY9 UITabBarController
##DAY9 UITabBarController UIViewController的tabBarController UIViewController的tabBarItem #pragma mark ...
- svn版本控制
svn自动生成X.java.mine,X.java.r2333,X.java.r2368文件 这是你和别人的操作形成了冲突: 你和别人都从2333这个版本对X.java进行了修改, 别人先修改之后,先 ...