JSP application和session作用域 (实现application实现计数器和session实现cookie禁用登录)


一、application作用域

application作用域中存储的数据所有的客户端是共享的。
当项目从服务器移走,或者服务关闭后重新启动,application才失效。

application实现计数器

实现的jsp代码

<% 
		Object str = application.getAttribute("count");
		if(str==null){
		//当第一个人访问时,将初始值为1
			application.setAttribute("count", 1);
		}else{
		//当不是第一个人时,先将类型转换,再加一
			Integer i = (Integer)str;
			application.setAttribute("count", i+1);
		}	
%>
	<p>当前访问的人数为:<%=application.getAttribute("count") %></p>

二、session作用域

session意思是会话,客户端和服务器端建立的一次会话。
打开浏览器,在地址栏输入url地址访问服务器的时候,会话创建成功了。即在服务器端存储也在客户端存储。

存储的内容是:sessionid。
客户端存储一份,服务器端存一份
sessionid的获取主要是通过cookie,浏览器允许cookie服务器就会在客户端写入。

  1. 对于cookie可用时

    session.setAttribute("username", name);
    response.sendRedirect(url);
    
就会产生新的问题: 在客户端,禁用cookie,还能正常使用session吗?
  1. 对于cookie禁用时

    session.setAttribute("username", name);
    String address = request.getContextPath()+"需要跳转的url";
    String url = response.encodeURL(address); 
    response.sendRedirect(url);
    

    1 获取新的访问路径: request.getContextPath()
    2 通过: response.encodeURL() 生成新的jsessionid

session实现cookie禁用登录

需要三个jsp文件 login,dologin,welcome;
login

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		String address =  request.getContextPath()+"/dologin.jsp";
	//带jsessionid的url
		String url = response.encodeURL(address);
	%>
	<form action="<%=url %>" method="post">
		<table>
			<tr>
				<td>用户名:<input type="text" name="username"/></td>
			</tr>
			<tr>
				<td>&nbsp;&nbsp;&nbsp;密码:<input type="password" name="pwd"/></td>
			</tr>
			<tr>
				<td >
					<input type="submit" name="login" value="登录"/>
					<input type="button" name="exit" value="退出"/>
				</td>
			</tr>
		</table>
	</form>
</body>
</html>

dologin

<%@page import="com.openlab.dao.UserDao"%>
<%@page import="com.openlab.bean.User"%>
<%@page import="com.openlab.dao.imp.UserDaoImp"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
			//1 设置格式
			response.setCharacterEncoding("UTF-8");		
			//2 获得参数
			String name = request.getParameter("username");
			String pwd = request.getParameter("pwd");
			//UserDao是数据库与用户登录之间的接口,实现类在UserDaoImp中
			UserDao ud = new UserDaoImp();
			//组件user对象 ,testName是校验数据库中的用户信息
			User user = ud.testName(name);
			//3 判断是否为空
			if(user!=null){
				//用户名正确
				if(pwd.equals(user.getPwd())){
				//密码正确
				//登录成功后
				session.setAttribute("username", name);
				String address = request.getContextPath()+"/welcome.jsp";
				String url = response.encodeURL(address);
				response.sendRedirect(url);
				}else{
				//密码不正确
				response.sendRedirect("login.jsp");
				}			
			}else{
			//用户名为错误
			response.sendRedirect("login.jsp");
			}
	%>
</body>
</html>

welcome

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

	<%	int i=0;
		Object name = session.getAttribute("username");
		//防止不登录,直接进入欢迎页面
		if(name==null){
			response.sendRedirect("login.jsp");
		}
	%>
		<p>欢迎您:<%=name%></p>
		
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第1章 JAVA WEB开发简介 1.1、WEB发展历程 1.2、企业开发架构 1.3、JAVA EE架构 1.4、JAVA EE核心设计模式 1.5、Struts开发框架 1.6、本章摘要 1.7、开发实战讲解 第2章 HTML、JavaScript简介 2.1、服务器与浏览器 2.2、HTML简介 2.2.1、HTML元素概览 2.2.2、创建显示WEB页 2.2.3、创建表单WEB页 2.3、JavaScript简介 2.3.1、JavaScript的基本语法 2.3.2、事件处理 2.3.3、window对象 2.4、本章摘要 2.5、开发实战讲解 第3章 XML简介 3.1、认识XML 3.2、XML解析 3.2.1、DOM解析操作 3.2.2、SAX解析操作 3.2.3、XML解析的好帮手:JDOM 3.2.4、最出色的解析工具:DOM4J 3.3、使用JavaScript操作DOM 3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、编写第一个jsp文件 4.5、交互性 4.6、本章摘要 4.7、开发实战讲解 第5章 JSP基础语法 5.1、JSP注释 5.2、Scriptlet 5.2.1、第一种Scriptlet: 5.2.2、第二种Scriptlet: 5.2.3、第三种Scriptlet: 5.3、Scriptlet标签 5.4、page指令 5.4.1、设置页面的MIME 5.4.2、设置文件编码 5.4.3、错误页的设置 5.4.4、数据库连接操作 5.5、包含指令 5.5.1、静态包含 5.5.2、动态包含 5.6、跳转指令 5.7、实例操作:用户登陆程序实现JSP + JDBC实现) 5.7.1、创建数据库表 5.7.2、程序实现思路 5.7.3、程序实现 5.8、本章摘要 5.9、开发实战讲解(基于Oracle数据库) 第6章 JSP内置对象 6.1、JSP内置对象概览 6.2、四种属性范围 6.2.1、page属性范围(pageContext范围) 6.2.2、request属性范围 6.2.3、session属性范围 6.2.4、application属性范围 6.2.5、深入研究page属性范围 6.3、request对象 6.3.1、乱码解决 6.3.2、接收请求参数 6.3.3、显示全部的头信息 6.3.4、角色验证 6.3.5、其他操作 6.4、response对象 6.4.1、设置头信息 6.4.2、页面跳转 6.4.3、操作Cookie 6.5、session对象 6.5.1、取得Session Id 6.5.2、登陆及注销 6.5.3、判断新用户 6.5.4、取得用户的操作时间 6.6、application对象 6.6.1、取得虚拟目录对应的绝对路径 6.6.2、范例讲解:网站计数器 6.6.3、查看application范围的属性 6.7、WEB安全性及config对象 6.7.1、WEB安全性 6.7.2、config对象 6.8、out对象 6.9、pageContext对象 6.10、本章摘要 6.11、开发实战讲解(基于Oracle数据库) 第7章 JavaBean 7.1、JavaBean简介 7.2、在JSP中使用JavaBean 7.2.1、WEB开发的标准目录结构 7.2.2、使用JSP的page指令导入所需要的JavaBean 7.2.3、使用指令 7.3、JavaBean与表单 7.4、设置属性: 7.4.1、设置指定的属性 7.4.2、指定设置属性的参数 7.4.3、为属性设置具体内容 7.5、取得属性: 7.6、JavaBean的保存范围 7.6.1、page范围的JavaBean 7.6.2、request范围的JavaBean 7.6.3、session范围的JavaBean 7.6.4、application范围的JavaBean 7.7、JavaBean的删除 7.8、实例操作:注册验证 7.9、DAO设计模式 7.9.1、DAO设计模式简介 7.9.2、DAO开发 7.9.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Le`soleil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值