- 浏览: 91093 次
文章分类
最新评论
servletContext接口是Servlet中最大的一个接口;
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
session对应的是浏览器,而servletContext是对应的web容器,供多个浏览器共享;
应用场景:
1、记录在线人数
2、你是第多少位访问者
3、公共聊天室
4、获取项目全路径/读取资源文件
String realPath = this.getServletContext().getRealPath("/images/1.jpg");
提供不同用户共享,数据量不大,不写入数据库 时可用servletContext对象;
通过ServletConfig.getServletContext获取,类似session也是单例的;
创建:
获取:
<% ServletContext sc = this.getServletContext();
String name = (String)sc.getAttribute("name");
%>
<%=name %>
<a href="<%=path%>/servlet/ServletCo"> ServletContext </a><br>
<a href="<%=path%>/pages/sc.jsp"> ServletContext.jsp </a><br>
先重启tomcat,先执行ServletContext ,后无论那台执行ServletContext.jsp,都得到nick;
删除属性:
sc.removeAttribute("name");
网页计数器:
在tomcat停止或重启时 将上次访问量存入数据库:
方案:启用init()和destroy()方法:
同理init,从数据库中读取上次的访问量;
隔断时间存入数据库(一小时/次):Timer,在init()方法中每3600s写入一次;
项目下载地址:
WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用。
session对应的是浏览器,而servletContext是对应的web容器,供多个浏览器共享;
应用场景:
1、记录在线人数
2、你是第多少位访问者
3、公共聊天室
4、获取项目全路径/读取资源文件
String realPath = this.getServletContext().getRealPath("/images/1.jpg");
提供不同用户共享,数据量不大,不写入数据库 时可用servletContext对象;
通过ServletConfig.getServletContext获取,类似session也是单例的;
创建:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ServletContext sc = this.getServletContext(); sc.setAttribute("name", "nick"); System.out.println(System.currentTimeMillis()); request.getRequestDispatcher("/pages/sc.jsp").forward(request, response); return; }
获取:
<% ServletContext sc = this.getServletContext();
String name = (String)sc.getAttribute("name");
%>
<%=name %>
<a href="<%=path%>/servlet/ServletCo"> ServletContext </a><br>
<a href="<%=path%>/pages/sc.jsp"> ServletContext.jsp </a><br>
先重启tomcat,先执行ServletContext ,后无论那台执行ServletContext.jsp,都得到nick;
删除属性:
sc.removeAttribute("name");
网页计数器:
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //登陆一次算一次访问 //http://www.nick.org:8182/login/servlet/ServletCo?id=111 String id = request.getParameter("id"); ServletContext sc = this.getServletContext(); if(null !=id && id.equals("111")) { Integer count = (Integer)sc.getAttribute("count"); if(count == null) { count =1; }else { count++; } sc.setAttribute("count", count); } //防止刷新!用responset跳走 //request.getRequestDispatcher("/pages/sc.jsp").forward(request, response); response.sendRedirect(request.getContextPath()+"/pages/sc.jsp"); return; }
在tomcat停止或重启时 将上次访问量存入数据库:
方案:启用init()和destroy()方法:
<servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>MyInitServlet</servlet-name> <servlet-class>org.nick.server.MyInitServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
public void destroy() { super.destroy(); Integer count = 0; //关闭web容器时ServletContext中的计数 count = (Integer)this.getServletContext().getAttribute("count"); String sql = "insert into ser_count (time,count) value (?,?)"; Object[] parameters = {new java.util.Date(),count}; DBUtil.executeUpdate(sql, parameters); System.out.println("here done"); }
同理init,从数据库中读取上次的访问量;
隔断时间存入数据库(一小时/次):Timer,在init()方法中每3600s写入一次;
public void init() throws ServletException { Timer timer = new Timer(); timer.schedule(new MyTask(), 0, 1000*2); }
public class MyTask extends TimerTask { @Override public void run() { System.out.println("okk"); } }
项目下载地址:
- login.rar (823.3 KB)
- 下载次数: 0
- servlets_jsp.rar (685.3 KB)
- 下载次数: 0
发表评论
-
41、解决HttpServletResponse输出的中文乱码问题
2015-04-12 21:48 1215response返回有两种,一种是字节流outputs ... -
41、轮询
2015-04-12 08:50 0浏览器关闭使session失效 ... -
40、spring ajax/easyui 中文乱码的解决
2015-04-04 14:52 692使用spingmvc,在JS里面通过ajax发送请求,并 ... -
39、.net
2015-03-28 23:12 542熟悉java编程,自然学习c#就会比较容易,有几个点需要说明下 ... -
38、servlet-- JSTL+EL(c标签、${})
2015-03-23 15:57 780参看:http://www.cnblogs.com/xdp-g ... -
37、servlet--jsp
2015-03-23 15:07 493不管是JSP还是Servlet,虽然都可以用于开发动 ... -
36、servlet--防止表单重复提交
2015-03-23 14:33 7101、在网络延迟会或服务器反应过慢的情况下让用户有时间点击多次s ... -
34、servlet--会话技术/购物车demo/y验证码
2015-03-21 23:40 586会话Session and Cookie 1、session: ... -
33、servlet--转发/web开发指导思想
2015-03-21 12:31 445转发: req.getRequestDispatcher(&q ... -
32、servlet --重定向/下载/缓存/中文乱码
2015-03-20 23:21 1055重定向1、sendRedirect rep.sendRedir ... -
31、servlet--开发方式
2015-03-20 21:55 634servlet:利用java技术开发动态网页的技术,是学习ja ... -
30、servlet---tomcat原理
2015-03-20 18:20 675Servlet出现得早,servlet很强大,但是se ... -
29、servlet--jsp执行过程
2015-03-20 15:08 446J2EE的13种核心技术:JDBC、JNDI、EJBs、 ... -
29、springmvc+spring+mybatis+oracle12的demo
2015-03-15 20:29 0每次搭建都要重头搭建,累~~ 注意:用12c的jdbc 在安 ... -
27、Tomcat多次加载项目问题
2015-03-12 15:30 563错误配置方式: <Host name="lo ... -
26、数据分页(jsp+servlet)
2015-03-12 15:19 472随着数据库中存储的数据的增多,满足用户查询条件的数据也 ... -
llll.文档设计
2015-03-11 13:31 0设计文档与代码实现到 ... -
24、webservice_短信接口
2015-03-11 10:48 801http://blog.csdn.net/sxdtzhaoxi ... -
25、RMI_demo1
2015-03-11 10:48 426Java RMI 指的是远程方法调用 (Remote Meth ... -
23、svn
2015-03-11 10:48 422<参看>http://blog.csdn.net/ ...
相关推荐
`javax.servlet-api-3.1.0.jar`不仅包含这些基本组件的接口和类,还提供了如HttpServletRequest、HttpServletResponse等用于处理HTTP请求和响应的类,以及ServletConfig和ServletContext等用于获取配置信息的对象。...
3. `javax.servlet.ServletContext`:表示Servlet容器的全局信息,如服务器的名称、web应用的路径等,还可以用来与其他Servlet共享数据。 4. `javax.servlet.http.HttpServletRequest`和`javax.servlet....
4. **ServletContext接口**:代表了整个Web应用程序的上下文,提供全局信息和资源,如共享的初始化参数、加载静态资源等。 而jsp-api.jar文件则包含了JSP的相关API,它使开发者能够用Java编写动态网页。关键组件...
6. **ServletContext接口**:代表一个Web应用程序的上下文,所有Servlet共享同一个ServletContext对象。它提供了一个全局的信息存储区域,以及广播事件的能力。 7. **过滤器Filter**:Servlet 2.5引入了Filter接口...
5. **javax.servlet.ServletContext**:表示整个Web应用程序的上下文,提供全局信息和资源访问。 **在Eclipse或MyEclipse中使用Servlet-API** 要将Servlet-API引入到Eclipse或MyEclipse项目中,通常需要以下步骤: ...
5. **ServletContext**:表示整个Web应用的共享环境,所有Servlet都可以访问。它可以用来存储全局信息,或者广播事件到所有Servlet。 6. **HttpServletRequest**和**HttpServletResponse**:这两个接口分别代表HTTP...
- Servlet 3.0提供对Java Naming and Directory Interface (JNDI) 的支持,可以通过`ServletContext`的`lookup()`方法进行资源查找。 10. **部署和热部署**: - 开发者可以使用Servlet 3.0的热部署功能,无需重启...
4. `ServletContext`接口:提供了整个Web应用的上下文信息,可以用来共享数据或访问全局配置。 而JSP-API(JavaServer Pages API)则是JSP技术的核心,允许开发者使用HTML、XML或者其他标记语言来创建动态网页。JSP...
`ServletConfig`接口存储了Servlet的配置信息,`ServletContext`则代表了整个Web应用的上下文,可以用来共享全局数据。 在实际开发中,我们通常会继承` HttpServlet `类,并覆盖`doGet()`和`doPost()`等方法来处理...
`ServletContextListener`接口则用于监听Servlet上下文(`ServletContext`)的生命周期事件,如Web应用程序启动和停止。通过实现该接口,开发者可以在Web应用启动时初始化资源,停止时清理资源,提高程序的健壮性。 ...
5. **ServletContext**:`javax.servlet.ServletContext`接口表示整个Web应用的上下文。它允许Servlet访问全局信息,如应用的初始化参数、其他Servlet、静态资源等。 6. **Request和Response对象**:`...
5. **ServletContext**: - 它提供了全局的信息共享,比如在整个Web应用中存储和获取数据,或者注册监听器。 6. **ServletConfig**: - 每个Servlet实例都有一个ServletConfig对象,它包含Servlet的初始化参数。 ...
javax.servlet.ServletContext javax.servlet.ServletRequest javax.servlet.http.HttpUtils javax.servlet.ServletResponse javax.servlet.ServletException javax.servlet.http.HttpServlet javax.servlet....
ServletContext接口表示整个Web应用的上下文,提供了访问应用级资源和与其他Servlet通信的能力。例如,`getContextPath()`返回Web应用的根路径,`getAttribute(String name)`获取全局属性。 6. **...
4. `ServletConfig`接口:每个Servlet在被加载时都会获得一个`ServletConfig`对象,它包含Servlet的初始化参数和ServletContext引用。 Servlet API 2.5版本的特性: - 支持JSP 2.1:Servlet 2.5与JSP 2.1版本兼容,...
2. **监听器(Listener)拓展**:Servlet 2.5增加了更多类型的监听器,如`ServletContextListener`、`HttpSessionListener`等,可以监听到ServletContext、session和request等对象的生命周期事件。 3. **注解支持...
5. **ServletContext接口**:代表了Servlet的运行时环境,提供了获取整个Web应用的信息,如初始化参数、其他Servlet、MIME类型映射等。 6. **HttpServletRequest和HttpServletResponse接口**:分别表示HTTP请求和...