session对象

Shiro学习(10)Session管理

无人久伴 提交于 2019-12-26 02:32:52
Shiro提供了完整的企业级会话管理功能,不依赖于底层容器(如web容器tomcat),不管JavaSE还是JavaEE环境都可以使用,提供了会话管理、会话事件监听、会话存储/持久化、容器无关的集群、失效/过期支持、对Web的透明支持、SSO单点登录的支持等特性。即直接使用Shiro的会话管理可以直接替换如Web容器的会话管理。 会话 所谓会话,即用户访问应用时保持的连接关系,在多次交互中应用能够识别出当前访问的用户是谁,且可以在多次交互中保存一些数据。如访问一些网站时登录成功后,网站可以记住用户,且在退出之前都可以识别当前用户是谁。 Shiro的会话支持不仅可以在普通的JavaSE应用中使用,也可以在JavaEE应用中使用,如web应用。且使用方式是一致的。 Java代码 login("classpath:shiro.ini", "zhang", "123"); Subject subject = SecurityUtils.getSubject(); Session session = subject.getSession(); 登录成功后使用Subject.getSession()即可获取会话;其等价于Subject.getSession(true),即如果当前没有创建Session对象会创建一个;另外Subject.getSession(false)

Shiro - 关于session

北城以北 提交于 2019-12-26 02:32:04
Shiro Session session管理可以说是Shiro的一大卖点。 Shiro可以为任何应用(从简单的命令行程序还是手机应用再到大型企业应用)提供会话解决方案。 在Shiro出现之前,如果我们想让你的应用支持session,我们通常会依赖web容器或者使用EJB的Session Bean。 Shiro对session的支持更加易用,而且他可以在任何应用、任何容器中使用。 即便我们使用Servlet或者EJB也并不代表我们必须使用容器的session,Shiro提供的一些特性足以让我们用Shiro session替代他们。 基于POJO 易定制session持久化 容器无关的session集群 支持多种客户端访问 会话事件监听 对失效session的延长 对Web的透明支持 支持SSO 使用Shiro session时,无论是在JavaSE还是web,方法都是一样的。 public static void main(String[] args) { Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro/shiro.ini"); SecurityUtils.setSecurityManager(factory.getInstance()); Subject

laravel 学习之第二章

喜欢而已 提交于 2019-12-26 01:03:53
Controller Controller之Request 获取请求的值 namespace App\Http\Controllers; use Illuminate\http\Request; public function request(Request $request) { echo $request->input('name'); echo $request->input('name', 'default'); if($request->has('nikename')){ ... } $aRequest = $request->all(); } // 无需对参数转成实体,因为在输出时候会自动转成实体,并且在插入数据库,laravel 自动实现参数绑定。 判断请求类型 echo $request->method(); if($request->isMethod('GET'){ ... } $flag = $request->ajax(); //判断是否是ajax请求 $flag = $request->is('student/*'); //判断是否是student下的控制器 注意:s必须小写 $request->url(); // 获取当前url Controller之Session Route::group(['middleware' => 'web'],

laravel学习笔记2--表单

萝らか妹 提交于 2019-12-26 01:02:38
一、Controller 1、Request 1.1、取值:input // 1、取值 echo $request->input('name'); // 2、取不到值时打印默认值 echo $request->input('name', '默认值'); 1.2、判断是否有该参数:has // 3、判断是否有该参数 if ($request->has('name')) { echo $request->input('name'); } else { echo '不存在该参数'; } 1.3、获取所有的参数:all // 4、获取所有的参数 $res = $request->all(); 1.4、判断请求类型 1.4.1、method echo $request->method(); 1.4.2、isMethod if ($request->isMethod('GET')) { echo 'YES'; } else { echo 'NO'; } 1.4.3、ajax $res = $request->ajax(); 1.4.4、is:判断请求路径是否符合要求 $res = $request->is('student/*'); 1.4.5、url:获取请求的url $res = $request->url(); 2、Session 2.1、Session的配置文件: 2.2

Java会话(session)管理

 ̄綄美尐妖づ 提交于 2019-12-26 00:59:52
会话概述 什么是会话 简单的理解:用户打开浏览器,点击多个超链接,访问Web服务器上多个资源,然后关闭浏览器,整个过程称之为一次会话。 需要解决的问题 每个用户在使用浏览器与服务器会话的过程中,会产生一些用户数据,如用户登陆标记,WEB应用程序必须要为每个用户在一次或多次会话过程中保存这些数据。 两种技术 Cookie Cookie是 客户端 技术,WEB应用程序把每个用户数据以Cookie的形式发送给各自的的浏览器,当用户使用浏览器再次访问WEB应用时,就会带上这些Cookie,这样,WEB应用可以为每个用户分别处理各自的数据了。 HttpSession 简称Session,是 服务器端 技术,服务器在运行时为每个用户的浏览器创建一个其 独享的HttpSession对象 。由于用户各自独享session,所以可以把各自的数据存放在各自的session域中,当用户去访问当前web应用其他web资源时,其他web资源再从用户各自的session中取出数据为其服务。 Cookie类 1、 javax.servlet.http.Cookie Cookie的属性: name:必须的,Cookie名 value:必须的,Cookie名对应的数据 comment:可选,备注 path:默认值就是产生Cookie的Servlet对应的URI 有一个cookie它的路径是:/app/servlet

java Web(4)

♀尐吖头ヾ 提交于 2019-12-26 00:59:06
Web 应用程序状态管理   通过隐藏表单域 hidden,cookie,session,重写URL来实现;   cookie存在于客户端,浏览器关闭时失效   cookie原理:服务器在响应请求时将一些数据以“键-值”对的形式通过响应信息保存在客户端   Servlet中提供了如下一系列操作Cookie的API   Cookie(name, value):构造方法用于创建一个或多个Cookie   setMaxAge(int lifetime):设置Cookie的过期时间(以秒为单位)。默认值为负值(Cookie将在浏览器关闭时过期)   getMaxAge():获取Cookie的过期时间。   getName():获取Cookie的名字   setValue(String value):指定Cookie的值。   getValue():获取Cookie的值   要将Cookie发送到客户端,Servlet应该按照下列的操作步骤执行:   创建一个或多个Cookie,使用构造方法指定Cookie的名字和值   使用setValue方法为Cookie设置属性值   使用HttpServletResponse对象的addCookie()方法将Cookie插入到响应头中   要读取客户端传入的Cookie,Servlet执行下列操作步骤:  

session和cookie知识点总结

心已入冬 提交于 2019-12-26 00:58:54
cookie小结: 1、cookie是在服务端创建 2、cooki是保存在浏览器这一端 3、cookie的生命周期可以通过 cookie.setMaxAge(2000); (如果不设置生命周期,cookie的生命周期当浏览器关闭时就消亡) 4、cooki可以被多个浏览器共享(这是与session的区别) 5、一个web应用可以保存多个cookie。但保存在同一个cookie文本在客户端浏览器下。 6、cookie存放时候是以明文方式存放,因此安全性较低,可以通过加密后存放。 { cookie的细节: 1、一个浏览器最多放入300个cookie,一个web站点最多20个cookie,而且一个cookie大小限制4k 2cookie的生命周期: setMaxAge(正数) 设置生命周期 setMaxAge(0) 删除该cookie setMaxAge(负数) cookie的生命周期是会话级别 } //先得到cookie Cookie cookies[]=request.getCookies(); for(Cookie cookie:cookies){ if (cookie.getName().equals("id");{ System.out.println('id"); // 删除 cookie.setMaxAge(0); response.addCookie(cookie);/

Java Session

六眼飞鱼酱① 提交于 2019-12-25 11:51:19
一、Session简单介绍    在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象) , 注意:一个浏览器独占一个session对象(默认情况下)。 因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。 二、Session和Cookie的主要区别 Cookie是把用户的数据写给用户的浏览器。 Session技术把用户的数据写到用户独占的session中。 Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。 三、session实现原理 3.1、服务器是如何实现一个session为一个用户浏览器服务的?   服务器创建session出来后,会把session的id号,以cookie的形式回写给客户机,这样,只要客户机的浏览器不关,再去访问服务器时,都会带着session的id号去,服务器发现客户机浏览器带session id过来了,就会使用内存中与之对应的session为之服务。可以用如下的代码证明: package xdp.gacl.session; import java.io.IOException; import javax.servlet

深入理解HTTP Session

五迷三道 提交于 2019-12-25 03:34:42
session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合,session一次的含义也很不相同。这里只探讨HTTP Session。 为了说明问题,这里基于Java Servlet理解Session的概念与原理,这里所说Servlet已经涵盖了JSP技术,因为JSP最终也会被编译为Servlet,两者有着相同的本质。 在Java中,HTTP的Session对象用javax.servlet.http.HttpSession来表示。 1、概念:Session代表服务器与浏览器的一次会话过程,这个过程是连续的,也可以时断时续的。在Servlet中,session指的是HttpSession类的对象,这个概念到此结束了,也许会很模糊,但只有看完本文,才能真正有个深刻理解。 2、Session创建的时间是: 一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session=“false”%> 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句 HttpSession session =

【web开发】四个域对象

天涯浪子 提交于 2019-12-24 19:55:56
一、域对象 范围由小到大:page request session application servlet的那4个域分别对应的是4个Class(详见api,javax.servlet.jsp.PageContext) page--PageContext request--HttpServletRequest session--HttpServletSession application--ServletContext request,session,application都是基于page扩展的对象 所以可以根据page(pageContext)来获取任一一个域的对象 getPage() getRequest() getSession() getServletContext() 每个域对象都提供了setAttribute getAtribute的方法 ,用于保存各自存储属性的范围 getPage().getAttribute()/setAttribute() getRequest().getAttribute()/setAttribute() getSession().getAttribute()/setAttribute() getServletContext().getAttribute()/setAttribute() 二、实例 ServletContext的测试代码及结果: