重温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/ ...
随机推荐
- 树莓派3B+ wifi 5G连接
新烧的Raspbian 系统,一开始需要设置wifi的一些配置,其中会选择一个国家(set country),一开始选择的是CN(中国),发现只能连接2.4G的网络,5G的网络连接不上,这很奇怪, 因 ...
- 3.Dubbo2.5.3快速启动Hello World
转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.服务提供者 (1)工程目录 (2)接口代码 HelloService.java package cn.lj ...
- Maven 安装源码和文档到本地仓库
一: 1: mvn source:jar 生成源码的jar包 2: mvn source:jar install 将源码安装到本地仓库 ,可以直接mvn source:jar install 一部 ...
- python之生成随机测验试卷
自己又开始懒散的态度生活,所以几乎有两个月没有更博了. 项目:美国各州首府地理考试,为防止作弊,35份试卷,50道题随机次序,生成独一无二的试卷. 基本想法: 1.将各州首府的地方和首府写入列表,以K ...
- web.py利用模板的详细步骤
<python网络编程学习笔记(10):webpy框架>(http://www.cnblogs.com/xiaowuyi/archive/2012/11/15/2771099.html#3 ...
- CAN设计与应用指南
CAN设计与应用指南 0.前言 这是我为公司写的一个关于CAN总线的入门文章,对全面理解CAN总线特性很有帮助,拿出来分享给大家. 1. 简介 CAN总线由德国BOSCH公司开发,最高速率可达到1Mb ...
- 第36章 SDIO—SD卡读写测试
第36章 SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/f ...
- scala-数组操作
package com.bigdata import scala.collection.mutable.ArrayBuffer object ArrayO { def main(args: Array ...
- 20155207 《网络对抗》 Exp9 Web安全基础
20155207 <网络对抗> Exp9 Web安全基础 实验内容 关于WebGoat Cross-Site Scripting(XSS)练习 Injection Flaws练习 CSRF ...
- jQuery调用Asp.Net后台方法
常用的ajax就不讲了,这里主要是说通过ajax调用asp.net后台的cs文件暴露的方法. 前台: <%@ Page Language="C#" AutoEventWire ...