一,Application
概念:
和上篇提到的cookie和session一样都是一种存储方式,cookie是将数据储存在浏览器中的前端,session是将数据存储在后端的,是会话级储存,而Application是应用级储存,数据是共享的。(项目中的界面都能打拿到Application,且数据都是一致的)。
案例:在线人数的计算
登陆人数可以变化,在上方显示当前登陆的人数
dologin.jsp界面(登陆处理界面)
<%@page import="web_06.com.util.DBHelper"%>
<%@page import="javax.servlet.http.Cookie"%>
<%@page import="java.net.CookieHandler"%>
<%@page import="oracle.jdbc.driver.OracleDriver" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.nio.charset.StandardCharsets" %>
<%@ page import="java.util.Arrays" %>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%
request.setCharacterEncoding("utf-8");
String yh = request.getParameter("yh");
String mm = request.getParameter("mm");
//获得连接
Connection con = DBHelper.getCon();
//获得执行对象
PreparedStatement ps = con.prepareStatement("select * from t1_user where t_name=? and t_pwd=?");
ps.setString(1, yh);
ps.setString(2, mm);
//获得结果集
ResultSet rs = ps.executeQuery();
//判断结果
if (rs.next()) {
//要实现存储资源共享,用application
//1,将用户名存入到服务器的卡库session中/存到后端
application.setAttribute("uname", yh);//在application中开一个空间储存数据
//计算当前的人数(存储在公共内存卡application中)
Object obj=application.getAttribute("count");//从application中取出count
if(obj==null){
obj=0;
}
Integer count=(Integer) obj;
count++;//登录成功人数+1
application.setAttribute("count", count);//取出人数
response.sendRedirect("index.jsp");
} else {
//重定向 客户端
response.sendRedirect("login.jsp");
}
//资源关闭
DBHelper.close(con, ps, rs);
%>
退出处理界面
<%@ page language="java" contentType="text/html; charset=UTF-8&