jsp中application的知识点总结:
1.一个Web应用程序启动后,将会自动创建一个application对象,在整个应用程序的运行过程中只有这一个application对象,即所有访问该网站的客户都共享一个application对象。
2.作用:在整个应用运行期间保存共享数据,实现用户间数据的共享。
3.application对象的生命周期:从Web服务器启动,直到Web服务器关闭。
application对象是应用程序级的,如果application中不存在String name,则通过方法Object getAttribute(String name)获得的对象时null。
在同一个网站下的任何地方都可以对application对象进行操作,主要操作有两个,即下面的两个方法:
Object getAttribute(String name) 从 application对象中提取指定的对象。
void setAttribute(String name,Object value) 将对象添加到application对象中。
本应用的基本介绍:
通过application,实现共享留言板功能,效果图如下:
inputMessage.jsp:
<%@ page language="java" import="java.text.*,java.util.*"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Insert title here
checkMessage.jsp:
<%@ page language="java" import="java.text.*,java.util.*"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Insert title here
<%!Vector v = new Vector();
int i = 0;%>
<%
String datetime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(Calendar.getInstance().getTime()); //获取系统时间
%>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String title = request.getParameter("title");
String message = request.getParameter("message");
%>
<%
if (name == null || "".equals(name.trim())) {
//trim()主要解决里面只有空格的问题
name = " 网友" + (int) (Math.random() * 100000 + 10000);
}
if (title == null || "".equals(title.trim())) {
title = " 无";
}
if (message == null || "".equals(message.trim())) {
message = " 无";
}
%>
<%
i++;
String str = "第" + "" + i + " " + "楼 "
+ ".留言人: " + name + ".标题: " + title
+ ".内容:
" + message
+ ".时间: " + datetime + ".
";
v.add(str);
application.setAttribute("message", v);
%>
留言成功.
返回留言板
showMessage.jsp:
<%@page
import="com.sun.org.apache.xml.internal.serializer.utils.StringToIntTable"%>
<%@ page language="java" import="java.util.*"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
Insert title here
<%
Object o = application.getAttribute("message");
if (o == null) {
out.print("暂时还没有留言呢");
} else {
Vector v = (Vector) o;
for (int i = v.size() - 1; i >= 0; i--) {
// 注意必须用/. String[] st1 = v.get(i).split("/.");
// for (int j = 0; j < st1.length; j++) {
// out.print(st1[j] + "
");
// }
// out.print("
");
StringTokenizer st = new StringTokenizer(v.get(i), ".");
while (st.hasMoreElements()) {
out.print(st.nextToken() + "
");
}
}
}
%>