- 浏览: 534445 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (377)
- J2EE (61)
- ORACLE (36)
- JS (15)
- EXT (0)
- win7 (12)
- TOMCAT (10)
- game (1)
- ie (5)
- etc (8)
- ibatis (3)
- ORACLE 客户端 (1)
- bat (3)
- 健康 (127)
- baby (4)
- html (12)
- myeclipse (16)
- 射手 字幕默认下载 位置 (1)
- office (0)
- car (2)
- xxx (1)
- python简介 (1)
- FusionCharts (1)
- dorado (4)
- english (3)
- weblogic (3)
- request/servlet (3)
- wsdl (1)
- offie2010 visio2010 下载 (1)
- nexus5 (0)
- chrome (3)
- ssi (2)
- 安卓 (3)
- nexus ipad (1)
- mysql (4)
- json (3)
- struts (6)
- datagrid (1)
- highcharts (1)
- tools (2)
- tool (1)
- spring3 (1)
- jedit (1)
- java (4)
- windows (1)
- easyui (2)
- 液晶显示器色温 (1)
- mybatis (1)
- where (1)
- sublime (1)
- spring4 (3)
最新评论
-
spring_springmvc:
如何在java Web项目中开发WebService接口,地址 ...
java 调用WebService服务接口 -
chenzheng8975:
阅
人生三大陷阱 -
ygbb007:
直接OD就能破解的
myBase Desktop 6.0 破解方法 -
lanlansnss:
直接删除nyfedit.ini文件即可
myBase Desktop 6.0 破解方法 -
yunzhu:
LZ写博客不太注重排版啊,排版不行别人没法看的
PermGen space
JSP application用上下文getServletContext()
JSP application对象的使用_
application 对象 1 什么是 application 对象 ? (1) 当 Web 服务器启动时,Web 服务器会自动创建一个
application 对象。 服务器启动时, 服务器会自动创建一个 对象。 application 对象一旦创建,它将一直存在,直到 Web 服务器关闭。
对象一旦创建,它将一直存在, 服务器关闭。 一个 Web 服务器通常有多个 Web 服务目录 (网站),当 Web 服务器启动时,它自动为每个 Web
服务目录都创建一个 application 对象,这些 application 对象 各自独立,而且和 Web 服务目录一一对应。对象, 因此,
application 对象 访问同一个网站的客户都共享一个 application 对象, 可以实现多客户间的数据共享。访问不同网站的客户, 对象不同。
访问不同网站的客户,对应的 application 对象不同。 (2) application 对象的生命周期: Web 服务器启动,对象的生命周期 从
的生命周期: 直到 Web 服务器关闭。 注意: 应用程序启动后, 对象, 注意:一个 Web 应用程序启动后,将会自动创建一个 application
对象,而 对象, 且在整个应用程序的运行过程中只有一个 application 对象,也即所有访问该网 只有一个 对象。站的客户都共享一个
application 对象。 (3) application 对象的作用范围: 对象的作用范围 application 对象是一个应用程序级的对象,
的作用范围: 对象是一个应用程序级的对象, 它作用于当前 Web 应用程序,也即作用于当前网站,所有访问当前网站的客户作用于当前网站, 作用于当前网站 对象。
都共享一个 application 对象。 具体来说: 具体来说:不管哪个客户来访问网站 A,也不管客户访问网站 A 下哪个页 ,面文件,都可以对网站
对象进行操作, 面文件,都可以对网站 A 的 application 对象进行操作,因为,所有访问网站 A 的客户都共用一个 application 对象。
因此,当在 application 对象中存储数据后,所有访问网站 A 的客户都能够 对其进行访问,实现了多客户之间的数据共享。实现了多客户之间的数据共享。
实现了多客户之间的数据共享 (4) application 对象的基类是:javax.servlet.ServletContext 类。 对象的基类是: 注 意
: 有 些 Web 服 务 器 不 直 接 支 持 使 用 application 对 象 , 必 须 用 ServletContext 类来声明
application 对象,再调用 getServletContext()方法来获取 调用 方法来获取 对象。 当前页面的 application 对象。
(5) ServletContext 类:用于表示应用程序的上下文。 用于表示应用程序的上下文。 一个 ServletContext 类的对象表示一个 Web
应用程序的上下文。 应用程序的上下文。 具体来说: 服务器中, 应用程序的运行时环境, 具体来说:在 Web 服务器中,提供了一个 Web
应用程序的运行时环境,专 门 负 责 Web 应 用 程 序 的 部 署 、 编 译 、 运 行 以 及 生 命 周 期 的 管 理, 通 过
ServletContext 类,可以获取 Web 应用程序的运行时环境信息。 应用程序的运行时环境信息。 常识:JSP 引擎、Servlet 引擎、JSP
容器和 Servlet 容器,都是指 Web 服务 常识: 器,Web 服务器用于管理所有 Web 应用程序。 (6) application
对象的常用方法,如下所示: 对象的常用方法,如下所示: 方法名 String getAttribute(String name) Enumeration
getAttributeNames() void object) void removeAttribute(String name)
ServletContext getContext(String uripath) String getContextPath()
setAttribute(String name, Object 描述 根据属性名称获取属性值。 获取所有的属性名称。设置属性,指定属性名称和属性值。
根据属性名称删除对应的属性。 获取指定 URL 的 ServletContext 对象。 获取当前 Web 应用程序的根目录。 String
getInitParameter(String name) int getMajorVersion() int getMinorVersion() String
getMimeType(String file) String getServletInfo() String getServletContextName()
void log(String message) 根据初始化参数名称,获取初始化参数值。 获取 Servlet API 的主版本号。获取 Servlet
API 的次版本号。 获取指定文件的 MIME 类型。 获取当前 Web 服务器的版本信息。 获取当前 Web 应用程序的名称。将信息写入日志文件中。 2
----------------------------------------------------------------------
application 是javax.servlet.ServletContext接口的对象
2.在此对象之中提供了大量的方法,但是这些方法中最重要的应用就只有两组:
3.1。属性的操作
4. setAttribute(),getAttribute(),removeAttribute()
5.
6.2。取得虚拟目录对应的真实路径:
7.<import="java.io.*"%>
8.<h1><%=application.getRealPath("/")%>
9.就是得到的以下的docBase内容
10.<Context path="/demo" docBase="D:\webdemo" /> ----server.xml中
11.
12.3。getServletContext()方法
13. 一般application表示的是上下文,但是在实际的开发中,往往很少直接使用application,而使用getServletContext()方法来表示application.
14.范例:
15. <h1><%=getServletContext().getRealPath()%></h1>
16.这个方法表示由容器调用,如果非要加上对象的话,直接加上this关键字
17.
18.既然已经知道了真实路径,那么就可以进行
19.
20.<%
21. request.setCharacterEncoding("GBK");
22. String fileName = this.getServletContext().getRealPath("/")+"Notes"+File.separator+request.getParameter("filename");
23. String content = request.getParameter("content");
24. PrintStream ps = new PrimtStream(new FileOutputStream(new File(fileName)));
25. ps.println(content);
26. ps.close();
27.%>
28.
29.范例:列出一个文件夹下的文件名称
30.<%
31.String fileName = this.getServletContext().getRealPath("/")+"note";
32.File f = new File(fileName);
33.String files[] = f.list();
34.for(int i=0;i<files.length;i++){
35.%>
36. <h3><%=files[i]%></h3>
37.<%
38.}
39.%>
40.--------------------------------------------处理换行的问题
41.<%
42. request.setCharacterEncoding("GBK");
43. String fileName = this.getServletContext().getRealPath("/") +"notes"+File.separator + request.getParameter("filename");
44. String content = request.getParameter("content").replaceAll("\r\n","<br>");
45. PrintStream ps = new PrintStream(new FileOutputStream(new File(fileName)));
46. ps.println(content);
47. ps.close();
48. %>
49.或者在读出来后直接 replaceAll("\r\n","<br>");
50.
51.
52.4.可以使用application完成一个网站的计数器操作
53.每次当有新的用户来的时候,就要求记录的数字加1,在用户第一次来的时候进行计算
54.<%
55. if(session.isNew()){
56. save(++count,path); //这个方法是把计数器记录到一个文件当中
57. }
58.%>
59.<%
60. String path = getServletContext().getRealPath("/")+"count.txt";
61. int count = load(path); //这个方法是从文件中读取记录
62.%>
63.<h2>您是第<%=count%>位访问者</h2>
64.
65.--------------------------------------------------------------
66.简单的聊天室程序
67.main.jsp
68.<frameset rows="80%,20%">
69. <frame name="top" src="content.jsp" />
70. <frame name="bottom" src="input.jsp"/>
71.</frameset>
72.input.jsp
73.<contentType="text/html;charset=GBK"%>
74.<import="java.util.*"%>
75.<form action="input.jsp" method="post"> ----注意,这是传给自己,也就是传给自己后面的代码,为什么要传给自己,原因是我们不希望点击提交后变成别的页面,所以传给自己,或者使用js哦
76. 请输入内容:<input type="text" name="content"/>
77. <input type="submit" value="说话" />
78.</form>
79.<% //这里所做的事情就是得到当前说话的内容,然后放入application的list中
80. request.setCharacterEncoding("GBK");
81. if(request.getParameter("content") == null)return; //如果没有说话,那么不需更新刷新
82. List all = null;
83. all = (List)getServletContext().getAttribute("notes");
84. if(all == null){
85. all = new ArrayList();
86. }
87. all.add(request.getParameter("content"));
88. getServletContext().setAttribute("notes",all);
89.%>
90.
91.content.jsp //这个页面的任务就是每隔一段时间刷新一次,然后打印所有的留言
92.
93.<contentType="text/html;charset=GBK"%>
94.<import="java.util.*"%>
95.<%
96. response.setHeader("refresh","2");
97. request.setCharacterEncoding("GBK");
98. List all = (List)getServletContext().getAttribute("notes");
99. if(all == null){
100.%>
101. <h2>没有留言</h2>
102.<%
103. }else{
104. for(Iterator it = all.iterator();it.hasNext();){
105.%>
106. <h3><%=it.next()%></h3>
107.<%
108. }
109. }
110.%>
application 是javax.servlet.ServletContext接口的对象
在此对象之中提供了大量的方法,但是这些方法中最重要的应用就只有两组:
1。属性的操作
setAttribute(),getAttribute(),removeAttribute()
2。取得虚拟目录对应的真实路径:
<import="java.io.*"%>
<h1><%=application.getRealPath("/")%>
就是得到的以下的docBase内容
<Context path="/demo" docBase="D:\webdemo" /> ----server.xml中
3。getServletContext()方法
一般application表示的是上下文,但是在实际的开发中,往往很少直接使用application,而使用getServletContext()方法来表示application.
范例:
<h1><%=getServletContext().getRealPath()%></h1>
这个方法表示由容器调用,如果非要加上对象的话,直接加上this关键字
既然已经知道了真实路径,那么就可以进行
<%
request.setCharacterEncoding("GBK");
String fileName = this.getServletContext().getRealPath("/")+"Notes"+File.separator+request.getParameter("filename");
String content = request.getParameter("content");
PrintStream ps = new PrimtStream(new FileOutputStream(new File(fileName)));
ps.println(content);
ps.close();
%>
范例:列出一个文件夹下的文件名称
<%
String fileName = this.getServletContext().getRealPath("/")+"note";
File f = new File(fileName);
String files[] = f.list();
for(int i=0;i<files.length;i++){
%>
<h3><%=files[i]%></h3>
<%
}
%>
--------------------------------------------处理换行的问题
<%
request.setCharacterEncoding("GBK");
String fileName = this.getServletContext().getRealPath("/") +"notes"+File.separator + request.getParameter("filename");
String content = request.getParameter("content").replaceAll("\r\n","<br>");
PrintStream ps = new PrintStream(new FileOutputStream(new File(fileName)));
ps.println(content);
ps.close();
%>
或者在读出来后直接 replaceAll("\r\n","<br>");
4.可以使用application完成一个网站的计数器操作
每次当有新的用户来的时候,就要求记录的数字加1,在用户第一次来的时候进行计算
<%
if(session.isNew()){
save(++count,path); //这个方法是把计数器记录到一个文件当中
}
%>
<%
String path = getServletContext().getRealPath("/")+"count.txt";
int count = load(path); //这个方法是从文件中读取记录
%>
<h2>您是第<%=count%>位访问者</h2>
--------------------------------------------------------------
简单的聊天室程序
main.jsp
<frameset rows="80%,20%">
<frame name="top" src="content.jsp" />
<frame name="bottom" src="input.jsp"/>
</frameset>
input.jsp
<contentType="text/html;charset=GBK"%>
<import="java.util.*"%>
<form action="input.jsp" method="post"> ----注意,这是传给自己,也就是传给自己后面的代码,为什么要传给自己,原因是我们不希望点击提交后变成别的页面,所以传给自己,或者使用js哦
请输入内容:<input type="text" name="content"/>
<input type="submit" value="说话" />
</form>
<% //这里所做的事情就是 得到当前说话的内容,然后放入application的list中
request.setCharacterEncoding("GBK");
if(request.getParameter("content") == null)return; //如果没有说话,那么不需更新刷新
List all = null;
all = (List)getServletContext().getAttribute("notes");
if(all == null){
all = new ArrayList();
}
all.add(request.getParameter("content"));
getServletContext().setAttribute("notes",all);
%>
content.jsp //这个页面的任务就是每隔一段时间刷新一次,然后打印所有的留言
<contentType="text/html;charset=GBK"%>
<import="java.util.*"%>
<%
response.setHeader("refresh","2");
request.setCharacterEncoding("GBK");
List all = (List)getServletContext().getAttribute("notes");
if(all == null){
%>
<h2>没有留言</h2>
<%
}else{
for(Iterator it = all.iterator();it.hasNext();){
%>
<h3><%=it.next()%></h3>
<%
}
}
%>
-----------------------------------------------------------
给你一断代码,这个代码是防止用户重复登陆的,你修改下就可以了
package com.china.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import com.china.pojo.CitiesAndEmpPojo;
public class OnlineOperatorListener implements HttpSessionBindingListener {
// 当前被监听的操作员Pojo实例
private CitiesAndEmpPojo operatorPojo;
private HttpSession session = null;
// 容器上下文对象
private ServletContext application = null;
// 在线操作员列表
private static Hashtable<String, CitiesAndEmpPojo> operatorTable = null;
public OnlineOperatorListener(CitiesAndEmpPojo operatorPojo) {
this.operatorPojo = operatorPojo;
}
public synchronized boolean validateOperatorOnline(String operatorName) {
return operatorTable.containsKey(operatorName);
}
public void valueBound(HttpSessionBindingEvent event) {
// 创建Http会话对象
this.session = event.getSession();
// 创建容器上下文对象
this.application = this.session.getServletContext();
// 将用户保存到在线列表
operatorTable.put(this.operatorPojo.getEmpcode(), this.operatorPojo);
// 保存更改
this.application.setAttribute("OperatorTable", operatorTable);
}
public void valueUnbound(HttpSessionBindingEvent event) {
// 创建Http会话对象
this.session = event.getSession();
// 创建容器上下文对象
this.application = this.session.getServletContext();
// 将用户移出在线列表
operatorTable.remove(this.operatorPojo.getEmpcode());
// 保存更改
this.application.setAttribute("OperatorTable", operatorTable);
}
JSP application对象的使用_
application 对象 1 什么是 application 对象 ? (1) 当 Web 服务器启动时,Web 服务器会自动创建一个
application 对象。 服务器启动时, 服务器会自动创建一个 对象。 application 对象一旦创建,它将一直存在,直到 Web 服务器关闭。
对象一旦创建,它将一直存在, 服务器关闭。 一个 Web 服务器通常有多个 Web 服务目录 (网站),当 Web 服务器启动时,它自动为每个 Web
服务目录都创建一个 application 对象,这些 application 对象 各自独立,而且和 Web 服务目录一一对应。对象, 因此,
application 对象 访问同一个网站的客户都共享一个 application 对象, 可以实现多客户间的数据共享。访问不同网站的客户, 对象不同。
访问不同网站的客户,对应的 application 对象不同。 (2) application 对象的生命周期: Web 服务器启动,对象的生命周期 从
的生命周期: 直到 Web 服务器关闭。 注意: 应用程序启动后, 对象, 注意:一个 Web 应用程序启动后,将会自动创建一个 application
对象,而 对象, 且在整个应用程序的运行过程中只有一个 application 对象,也即所有访问该网 只有一个 对象。站的客户都共享一个
application 对象。 (3) application 对象的作用范围: 对象的作用范围 application 对象是一个应用程序级的对象,
的作用范围: 对象是一个应用程序级的对象, 它作用于当前 Web 应用程序,也即作用于当前网站,所有访问当前网站的客户作用于当前网站, 作用于当前网站 对象。
都共享一个 application 对象。 具体来说: 具体来说:不管哪个客户来访问网站 A,也不管客户访问网站 A 下哪个页 ,面文件,都可以对网站
对象进行操作, 面文件,都可以对网站 A 的 application 对象进行操作,因为,所有访问网站 A 的客户都共用一个 application 对象。
因此,当在 application 对象中存储数据后,所有访问网站 A 的客户都能够 对其进行访问,实现了多客户之间的数据共享。实现了多客户之间的数据共享。
实现了多客户之间的数据共享 (4) application 对象的基类是:javax.servlet.ServletContext 类。 对象的基类是: 注 意
: 有 些 Web 服 务 器 不 直 接 支 持 使 用 application 对 象 , 必 须 用 ServletContext 类来声明
application 对象,再调用 getServletContext()方法来获取 调用 方法来获取 对象。 当前页面的 application 对象。
(5) ServletContext 类:用于表示应用程序的上下文。 用于表示应用程序的上下文。 一个 ServletContext 类的对象表示一个 Web
应用程序的上下文。 应用程序的上下文。 具体来说: 服务器中, 应用程序的运行时环境, 具体来说:在 Web 服务器中,提供了一个 Web
应用程序的运行时环境,专 门 负 责 Web 应 用 程 序 的 部 署 、 编 译 、 运 行 以 及 生 命 周 期 的 管 理, 通 过
ServletContext 类,可以获取 Web 应用程序的运行时环境信息。 应用程序的运行时环境信息。 常识:JSP 引擎、Servlet 引擎、JSP
容器和 Servlet 容器,都是指 Web 服务 常识: 器,Web 服务器用于管理所有 Web 应用程序。 (6) application
对象的常用方法,如下所示: 对象的常用方法,如下所示: 方法名 String getAttribute(String name) Enumeration
getAttributeNames() void object) void removeAttribute(String name)
ServletContext getContext(String uripath) String getContextPath()
setAttribute(String name, Object 描述 根据属性名称获取属性值。 获取所有的属性名称。设置属性,指定属性名称和属性值。
根据属性名称删除对应的属性。 获取指定 URL 的 ServletContext 对象。 获取当前 Web 应用程序的根目录。 String
getInitParameter(String name) int getMajorVersion() int getMinorVersion() String
getMimeType(String file) String getServletInfo() String getServletContextName()
void log(String message) 根据初始化参数名称,获取初始化参数值。 获取 Servlet API 的主版本号。获取 Servlet
API 的次版本号。 获取指定文件的 MIME 类型。 获取当前 Web 服务器的版本信息。 获取当前 Web 应用程序的名称。将信息写入日志文件中。 2
----------------------------------------------------------------------
application 是javax.servlet.ServletContext接口的对象
2.在此对象之中提供了大量的方法,但是这些方法中最重要的应用就只有两组:
3.1。属性的操作
4. setAttribute(),getAttribute(),removeAttribute()
5.
6.2。取得虚拟目录对应的真实路径:
7.<import="java.io.*"%>
8.<h1><%=application.getRealPath("/")%>
9.就是得到的以下的docBase内容
10.<Context path="/demo" docBase="D:\webdemo" /> ----server.xml中
11.
12.3。getServletContext()方法
13. 一般application表示的是上下文,但是在实际的开发中,往往很少直接使用application,而使用getServletContext()方法来表示application.
14.范例:
15. <h1><%=getServletContext().getRealPath()%></h1>
16.这个方法表示由容器调用,如果非要加上对象的话,直接加上this关键字
17.
18.既然已经知道了真实路径,那么就可以进行
19.
20.<%
21. request.setCharacterEncoding("GBK");
22. String fileName = this.getServletContext().getRealPath("/")+"Notes"+File.separator+request.getParameter("filename");
23. String content = request.getParameter("content");
24. PrintStream ps = new PrimtStream(new FileOutputStream(new File(fileName)));
25. ps.println(content);
26. ps.close();
27.%>
28.
29.范例:列出一个文件夹下的文件名称
30.<%
31.String fileName = this.getServletContext().getRealPath("/")+"note";
32.File f = new File(fileName);
33.String files[] = f.list();
34.for(int i=0;i<files.length;i++){
35.%>
36. <h3><%=files[i]%></h3>
37.<%
38.}
39.%>
40.--------------------------------------------处理换行的问题
41.<%
42. request.setCharacterEncoding("GBK");
43. String fileName = this.getServletContext().getRealPath("/") +"notes"+File.separator + request.getParameter("filename");
44. String content = request.getParameter("content").replaceAll("\r\n","<br>");
45. PrintStream ps = new PrintStream(new FileOutputStream(new File(fileName)));
46. ps.println(content);
47. ps.close();
48. %>
49.或者在读出来后直接 replaceAll("\r\n","<br>");
50.
51.
52.4.可以使用application完成一个网站的计数器操作
53.每次当有新的用户来的时候,就要求记录的数字加1,在用户第一次来的时候进行计算
54.<%
55. if(session.isNew()){
56. save(++count,path); //这个方法是把计数器记录到一个文件当中
57. }
58.%>
59.<%
60. String path = getServletContext().getRealPath("/")+"count.txt";
61. int count = load(path); //这个方法是从文件中读取记录
62.%>
63.<h2>您是第<%=count%>位访问者</h2>
64.
65.--------------------------------------------------------------
66.简单的聊天室程序
67.main.jsp
68.<frameset rows="80%,20%">
69. <frame name="top" src="content.jsp" />
70. <frame name="bottom" src="input.jsp"/>
71.</frameset>
72.input.jsp
73.<contentType="text/html;charset=GBK"%>
74.<import="java.util.*"%>
75.<form action="input.jsp" method="post"> ----注意,这是传给自己,也就是传给自己后面的代码,为什么要传给自己,原因是我们不希望点击提交后变成别的页面,所以传给自己,或者使用js哦
76. 请输入内容:<input type="text" name="content"/>
77. <input type="submit" value="说话" />
78.</form>
79.<% //这里所做的事情就是得到当前说话的内容,然后放入application的list中
80. request.setCharacterEncoding("GBK");
81. if(request.getParameter("content") == null)return; //如果没有说话,那么不需更新刷新
82. List all = null;
83. all = (List)getServletContext().getAttribute("notes");
84. if(all == null){
85. all = new ArrayList();
86. }
87. all.add(request.getParameter("content"));
88. getServletContext().setAttribute("notes",all);
89.%>
90.
91.content.jsp //这个页面的任务就是每隔一段时间刷新一次,然后打印所有的留言
92.
93.<contentType="text/html;charset=GBK"%>
94.<import="java.util.*"%>
95.<%
96. response.setHeader("refresh","2");
97. request.setCharacterEncoding("GBK");
98. List all = (List)getServletContext().getAttribute("notes");
99. if(all == null){
100.%>
101. <h2>没有留言</h2>
102.<%
103. }else{
104. for(Iterator it = all.iterator();it.hasNext();){
105.%>
106. <h3><%=it.next()%></h3>
107.<%
108. }
109. }
110.%>
application 是javax.servlet.ServletContext接口的对象
在此对象之中提供了大量的方法,但是这些方法中最重要的应用就只有两组:
1。属性的操作
setAttribute(),getAttribute(),removeAttribute()
2。取得虚拟目录对应的真实路径:
<import="java.io.*"%>
<h1><%=application.getRealPath("/")%>
就是得到的以下的docBase内容
<Context path="/demo" docBase="D:\webdemo" /> ----server.xml中
3。getServletContext()方法
一般application表示的是上下文,但是在实际的开发中,往往很少直接使用application,而使用getServletContext()方法来表示application.
范例:
<h1><%=getServletContext().getRealPath()%></h1>
这个方法表示由容器调用,如果非要加上对象的话,直接加上this关键字
既然已经知道了真实路径,那么就可以进行
<%
request.setCharacterEncoding("GBK");
String fileName = this.getServletContext().getRealPath("/")+"Notes"+File.separator+request.getParameter("filename");
String content = request.getParameter("content");
PrintStream ps = new PrimtStream(new FileOutputStream(new File(fileName)));
ps.println(content);
ps.close();
%>
范例:列出一个文件夹下的文件名称
<%
String fileName = this.getServletContext().getRealPath("/")+"note";
File f = new File(fileName);
String files[] = f.list();
for(int i=0;i<files.length;i++){
%>
<h3><%=files[i]%></h3>
<%
}
%>
--------------------------------------------处理换行的问题
<%
request.setCharacterEncoding("GBK");
String fileName = this.getServletContext().getRealPath("/") +"notes"+File.separator + request.getParameter("filename");
String content = request.getParameter("content").replaceAll("\r\n","<br>");
PrintStream ps = new PrintStream(new FileOutputStream(new File(fileName)));
ps.println(content);
ps.close();
%>
或者在读出来后直接 replaceAll("\r\n","<br>");
4.可以使用application完成一个网站的计数器操作
每次当有新的用户来的时候,就要求记录的数字加1,在用户第一次来的时候进行计算
<%
if(session.isNew()){
save(++count,path); //这个方法是把计数器记录到一个文件当中
}
%>
<%
String path = getServletContext().getRealPath("/")+"count.txt";
int count = load(path); //这个方法是从文件中读取记录
%>
<h2>您是第<%=count%>位访问者</h2>
--------------------------------------------------------------
简单的聊天室程序
main.jsp
<frameset rows="80%,20%">
<frame name="top" src="content.jsp" />
<frame name="bottom" src="input.jsp"/>
</frameset>
input.jsp
<contentType="text/html;charset=GBK"%>
<import="java.util.*"%>
<form action="input.jsp" method="post"> ----注意,这是传给自己,也就是传给自己后面的代码,为什么要传给自己,原因是我们不希望点击提交后变成别的页面,所以传给自己,或者使用js哦
请输入内容:<input type="text" name="content"/>
<input type="submit" value="说话" />
</form>
<% //这里所做的事情就是 得到当前说话的内容,然后放入application的list中
request.setCharacterEncoding("GBK");
if(request.getParameter("content") == null)return; //如果没有说话,那么不需更新刷新
List all = null;
all = (List)getServletContext().getAttribute("notes");
if(all == null){
all = new ArrayList();
}
all.add(request.getParameter("content"));
getServletContext().setAttribute("notes",all);
%>
content.jsp //这个页面的任务就是每隔一段时间刷新一次,然后打印所有的留言
<contentType="text/html;charset=GBK"%>
<import="java.util.*"%>
<%
response.setHeader("refresh","2");
request.setCharacterEncoding("GBK");
List all = (List)getServletContext().getAttribute("notes");
if(all == null){
%>
<h2>没有留言</h2>
<%
}else{
for(Iterator it = all.iterator();it.hasNext();){
%>
<h3><%=it.next()%></h3>
<%
}
}
%>
-----------------------------------------------------------
给你一断代码,这个代码是防止用户重复登陆的,你修改下就可以了
package com.china.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionBindingEvent;
import javax.servlet.http.HttpSessionBindingListener;
import com.china.pojo.CitiesAndEmpPojo;
public class OnlineOperatorListener implements HttpSessionBindingListener {
// 当前被监听的操作员Pojo实例
private CitiesAndEmpPojo operatorPojo;
private HttpSession session = null;
// 容器上下文对象
private ServletContext application = null;
// 在线操作员列表
private static Hashtable<String, CitiesAndEmpPojo> operatorTable = null;
public OnlineOperatorListener(CitiesAndEmpPojo operatorPojo) {
this.operatorPojo = operatorPojo;
}
public synchronized boolean validateOperatorOnline(String operatorName) {
return operatorTable.containsKey(operatorName);
}
public void valueBound(HttpSessionBindingEvent event) {
// 创建Http会话对象
this.session = event.getSession();
// 创建容器上下文对象
this.application = this.session.getServletContext();
// 将用户保存到在线列表
operatorTable.put(this.operatorPojo.getEmpcode(), this.operatorPojo);
// 保存更改
this.application.setAttribute("OperatorTable", operatorTable);
}
public void valueUnbound(HttpSessionBindingEvent event) {
// 创建Http会话对象
this.session = event.getSession();
// 创建容器上下文对象
this.application = this.session.getServletContext();
// 将用户移出在线列表
operatorTable.remove(this.operatorPojo.getEmpcode());
// 保存更改
this.application.setAttribute("OperatorTable", operatorTable);
}
发表评论
-
HttpSession session用法详解
2015-02-05 16:02 2026javax.servlet.http.HttpSession ... -
struts2 action中获取request session application的方法
2014-05-22 16:48 480struts2 action中获取request sessio ... -
struts action获取页面参数
2014-05-22 15:07 829struts action获取页面参数 Map map = n ... -
Struts2配置文件详解——struts.properties
2014-05-22 11:40 879[size=large][size=medium]Struts ... -
struts2 动态方法调用 感叹号!
2014-05-22 11:25 1043struts2 动态方法调用 感叹号! Struts2的动态方 ... -
ServletRequest,HttpServletRequest ServletResponse,HttpServletResponse的区别
2013-05-28 17:08 2024ServletRequest,HttpServletReque ...
相关推荐
在Servlet中,我们需要通过`getServletContext()`方法来获取这个对象,但在JSP中,由于`application`对象已经被自动声明,可以直接使用。例如: ```jsp <% Application application = pageContext.getAttribute(...
- `getServletContext`:获取Servlet上下文。 3. **`exception` 对象**:捕获并处理异常。 - `getMessage`:获取异常信息。 - `getStackTrace`:获取异常堆栈跟踪。 4. **`out` 对象**:用于向客户端输出数据。...
- `getServletContext()`:获取Servlet上下文对象,用于访问应用程序级的资源。 - `getServletName()`:返回生成该JSP页面的Servlet的名称。 2. **out对象**: - `clear()`:清除输出缓冲区的内容。 - `clear...
3. **pageContext对象**:是JSP页面上下文的访问接口,提供了对页面内所有对象的访问,包括`session`、`application`等。`pageContext`对象的方法如`getOut()`返回用于输出的`JspWriter`,`getSession()`获取`...
- **getServletContext()**: 获取`ServletContext`对象,它是Web应用的上下文环境。 - **getSession()**: 获取`session`对象。 - **findAttribute(String name)**: 查找属性,从局部作用域开始,逐级向上查找直到...
2. **利用`request.getContextPath()`获取项目的上下文路径:** - 示例:如果项目名为“TEST”,则调用此方法返回的路径为`/TEST`。 3. **利用`request.getServletPath()`获取当前页面的目录全名:** - 示例:...
监听器通过实现Servlet API提供的接口,可以在特定事件发生时执行自定义逻辑,如跟踪用户会话、管理应用上下文、以及监控请求和响应等。本文将深入探讨JSP监听器的使用方法和常见应用场景。 **一、监听器接口** 1....
`pageContext`对象(`javax.servlet.jsp.PageContext`)提供了对所有其他JSP对象的访问,以及上下文范围的管理,包括page、request、session和application。 了解并熟练运用这些内置对象是开发JSP应用的基础,它们...
获取应用上下文对象,可以用来保存全局范围内的信息。 ### 12. 设置属性 ```java request.setAttribute("username", username); ``` 将属性保存在不同的作用域内:request、session或application。 ### 13. 获取...
- **application**: Servlet上下文对象,用于共享数据和配置信息。 - **page**: 当前JSP页面本身。 - **pageContext**: 提供访问其他内置对象的方法。 #### 十、四大共享范围 - **Page Scope**: 当前JSP页面范围内...
- **pageContext**:用于获取JSP页面的上下文环境信息的对象。 - **config**:获取服务器配置信息的对象。 - **page**:当前JSP页面的对象。 - **exception**:当出现异常时,可以获取到的异常对象。 #### 三、JSP...
- **定义**:`getServletPath()`方法返回客户端请求的servlet路径,即请求URL中除去上下文路径后的部分,通常是映射到某个Servlet的具体路径。 - **应用场景**:主要用于确定客户端请求的具体资源或Servlet。 - **...
在JSP环境中,获取路径主要围绕HTTP请求和应用上下文进行。以下是一些常用的方法: 1. **获取当前页面全路径**:`request.getRequestURI()`,返回的是当前请求的URI部分,包括上下文路径和请求的资源路径。例如,在...
`PageContext`类提供了对JSP页面上下文的全面访问,包括请求、响应、会话、应用等其他隐含对象,以及JSP页面的标签库和命名空间。它允许更高效地处理JSP特性和服务器特性。 8. `page`: 在Java中,`page`变量不是...
此方法返回客户端请求的当前页面的路径,包括上下文路径和请求路径。例如,在`http://example.com/TEST/test.jsp`中调用此方法将返回`/TEST/test.jsp`。 #### (2) 获取上下文路径:`request.getContextPath()` 这...
而 **pageContext**(`javax.servlet.jsp.PageContext`)是`page`的上下文,它不仅持有`page`,还包含了`request`、`response`对象,以及`servletcontext`和`servletconfig`等。`pageContext`作为一个桥梁,允许...
在JSP页面中,可以使用`request.getRequestURI()`来获取请求的完整路径,包括上下文路径和资源路径。如果需要获取文件的实际物理路径,可以通过`application.getRealPath(request.getRequestURI())`实现。而获取当前...
- **相对路径**:相对路径是相对于当前工作目录或上下文的路径。在Web应用中,"/"通常代表Web应用的根目录,而"./"表示当前目录,"../"则表示上一级目录。 **2. JSP/Servlet中的路径处理** - **服务器端的地址**:...
在Java编程中,理解路径的概念至关重要,...在实际开发中,应当避免过于依赖于特定的文件系统结构,尽可能使用相对路径,并在必要时使用`request.getContextPath()`来获取Web应用的上下文路径,从而确保路径的正确性。