重温httpsession①
Session—HTTPSession 服务器创建的,Javaweb提供的 与HTTP协议无关是服务器端对象,保存在服务器端。用来会话跟踪。
Cookie与服务器创建,与HTTP协议相关,保存在客户端上面。
SerVlet三大域对象
Request 多个 一次一个
Session 一个用户打开浏览器开始到关闭。一个用户一个Session
底层依赖于cookie 或是url重写。
服务器一方可以存放多个Session 放在一个map中
Servlet中得到Session对象 HTTPSession Session=request.getSession();
Jsp中得到Session对象:Session是jsp的内置对象,不用创建即可使用
Cookie底层不能跨浏览器。
|
<body> 保存Session. <br> <% session.setAttribute("aaa", "AAA"); %> </body> <body> 获取Session. <br> <% String s=(String)session.getAttribute("aaa"); %> <%=s %> </body> |
第二个例子
action="<%=path%>/LoginServlet"
重定向时我们的servlet的路径不显示在地址栏中。
重定向是使用 response.sendRedirect("必须得些项目名");
可以是本项目以外的路径。两次请求,不存在request域
转发时会看到servlet的路径,不用加项目名,必须是本项目内的路径
request.setAttribute("message", "用户名或密码错误");
request.getRequestDispatcher("anli/error.jsp").forward(request, response);
存在request域。一次请求
保存cookie用response
拿到cookie使用request 注意判断是否为空
|
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); String username=request.getParameter("username"); String password=request.getParameter("password"); if (username.equals("124")&&password.equals("zhangsan")) { Cookie cookie=new Cookie("uname", username); cookie.setMaxAge(60*60); response.addCookie(cookie); HttpSession session=request.getSession(); session.setAttribute("username", "124"); session.setAttribute("password", "zhangsan"); request.getRequestDispatcher("anli/success1.jsp").forward(request, response); }else { request.setAttribute("message", "用户名或密码错误"); request.getRequestDispatcher("anli/login.jsp").forward(request, response); } } <body> This is my JSP page. <br> <h1>登陆页面</h1> <% String uname=""; Cookie[]cookies=request.getCookies(); if(cookies!=null){ for(Cookie c:cookies){ if("uname".equals(c.getName())){ uname=c.getValue(); } } } %> <% String message=""; String mes=(String)request.getAttribute("message"); if(mes!=null){ message=mes; } %> <font color="red"><b><%=message %></b></font> <form action="<%=path%>/LoginServlet" method="pot"> <!-- 获取cookie中的uname的值放到用户名文本框中 --> 用户名:<input type="text" name="username" value="<%= uname%>"><br> 密码:<input type="password" name="password"><br> <input type="submit" value="提交"> </form> </body> |
Session的原理
Jssessionid
Jsp自动创建Session,servlet不自动创建
其他方法:getId()
Invalidate()
isNew()
重温httpsession①的更多相关文章
- 重温Java Web的技术细节
目录 一.背景 二.请求与响应 2.1.Http请求 2.2.Http响应 三.ServletConfig 3.1 测试ServletConfig参数 四.ServletContext 4.1 测试S ...
- java使用websocket,并且获取HttpSession,源码分析
转载请在页首注明作者与出处 http://www.cnblogs.com/zhuxiaojie/p/6238826.html 一:本文使用范围 此文不仅仅局限于spring boot,普通的sprin ...
- HttpSession与Hibernate中Session的区别
一.javax.servlet.http.HttpSession是一个抽象接口 它的产生:J2EE的Web程序在运行的时候,会给每一个新的访问者建立一个HttpSession,这个Session是用户 ...
- 被我们忽略的HttpSession线程安全问题
1. 背景 最近在读<Java concurrency in practice>(Java并发实战),其中1.4节提到了Java web的线程安全问题时有如下一段话: Servlets a ...
- 重温Servlet学习笔记--session对象
session的类型是属于HttpSession,HttpSession是由javaWeb提供的,用来会话跟踪的类.session是服务器端对象,保存在服务器端. HttpSession是servle ...
- 重温JSP学习笔记--三大指令九大内置对象
最近在温习javaweb的相关基础知识,鉴于我弄丢了记满了整整一本的笔记,决定以后把笔记和一些学习上的心得以及碰到的一些问题统统都放在网上,今天看了一下jsp的相关基础,以下是笔记: JSP三大指令: ...
- HttpSession
(Cookie是用来设置浏览器保存数据的时间的: Session是只要浏览器不关闭,数据则会存在,一旦关闭浏览器数据即消失 ) 1. HttpSession概述 * HttpSession是由Java ...
- JSP中的 HttpSession、pageContext对象
pageContext 隐含对象对应javax.servlet.jsp.PageContext,都自动的被加入至pageContext中, 您可以由它来取得与JSP相关的对应之Servlet对象,像是 ...
- 解剖SQLSERVER 第十篇 OrcaMDF Studio 发布+ 特性重温(译)
解剖SQLSERVER 第十篇 OrcaMDF Studio 发布+ 特性重温(译) http://improve.dk/orcamdf-studio-release-feature-recap/ ...
随机推荐
- 打开word文档时提示“Microsoft Office Word已停止工作”
我的电脑(Win10)有Office 2003和2013两个版本,可能由于之前超长待机等原因导致word 2003的文件(.doc)不能正常打开,没次都会提示“Microsoft Office Wor ...
- leetcode717—1-bit and 2-bit Characters
We have two special characters. The first character can be represented by one bit 0. The second char ...
- JS五星级评分效果(类似与淘宝打分效果)
今天晚上研究下 五星级评分效果,类似于淘宝后台评分效果,如下图所示: 思路: 当鼠标移到一颗星的时候 判断当前的索引 当前及当前的索引前面的星星亮起来 每当移到任何一颗星星时候 下面跟随提示 mous ...
- JAVA框架 Spring 事务
一.我们之前在hibernate的时候,需要直接写事务,需要绑定当前线程保证获取同一个连接,虽然hibernate的帮我们封装绑定当前现成的操作,但是需要我们手动的去开启和关闭事务. 而spring帮 ...
- WebView之加载网页时增加进度提示
上一节讲了一些webview的基本使用以及在记载网页时如何屏蔽掉第三方浏览器,使我们自己开发的程序成为一个微型浏览器.那么这一节将一下在webView加载网页的过程中如何加上进度提示.效果图如下: 主 ...
- C. Greedy Arkady
kk people want to split nn candies between them. Each candy should be given to exactly one of them o ...
- C. Sad powers
You're given Q queries of the form (L, R). For each query you have to find the number of such x that ...
- 降阶法计算行列式方法有个地方有Bug(原文也已更正,此为更正后部分)
今天用此函数做方程求解时发现有误,特此更正: /// <summary> /// 降阶法计算行列式 /// </summary> /// <param name=&quo ...
- 注冊成为Windows Phone开发人员而且解锁Windows Phone 8.1手机
注冊成为Windows Phone开发人员而且解锁Windows Phone 8.1手机 上篇文章介绍了怎样使用Qt Creator和Visual Studio构建Windows Phone 8.1应 ...
- SEO优化上首页之搜索引擎排名规则
搜索引擎建立索引的网页数以万亿计,用户搜索的关键词也是海量,如果每个用户提交搜索请求后,搜索引擎都去数以万亿的索引中重新排名网页,效率将非常低下.根据2-8法则,80%是查询是集中在相同的20%内容上 ...