在浏览器与服务器进行交互时,往往需要把涉及到的一些数据保存下来,这时就需要使用cookie或session进行状态管理。

这篇文章先来说说session怎么用,首先在servlet中创建一个session来保存信息,举个例子,在做登陆验证时,如果登陆成功,需要将用户的信息保存到session中,怎么保存呢?下面给出代码:

 public class Login_Do extends HttpServlet {
String order_name = "";
String order_password = "";
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
order_name= new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8") ;
order_password = request.getParameter("password");
PrintWriter out = response.getWriter();
JSONObject json = new JSONObject();
String msg = "";
try {
json.put("msg",login());
out.print(json.toString());
HttpSession session = request.getSession();
session.setAttribute("user_name", login()); } catch (SQLException e) {
e.printStackTrace();
}
}
public String login() throws SQLException{
Order_User_Dao u = new Order_User_Dao();
Order_User user = new Order_User();
user = u.login(order_name,order_password);
if(!"".equals(user.getUser_name())){
return user.getUser_name(); //如果登陆成功,会返回用户的用户名
}
else
return null;
}
}

关于session的创建是那两行红色字体,将用户名绑定到了session对象上,那怎么使用呢?

HttpSession session = request.getSession();
String user_name = String.valueOf(session.getAttribute("user_name"));

使用这个方法,无论是在servlet中,还是前台脚本段里,都可以轻松的获取所需要的信息。

再来说说怎么清楚session,当浏览器关闭时,我们需要清除掉session,一个是考虑到安全性,一个是要确保你退出后其他用户可以登录,这就用到session的invalidate方法了。

在jsp中,当退出时写上

<%
session.invalidate();
%>

就会清除掉绑定在session上的信息。

关于session的优缺点:

优点:1:session会将所有状态写在服务器端,所以相对于cookie比较安全,一般用来保存登录用户的信息或其他重

要信息

2:session可以保存的数据类型比较丰富,而cooike只能保存字符串

3:session保存的数据大小更大,而cooike只能保存大约4k的信息,理论上session是没限制的

缺点:由于将信息保存到服务器端,对系统资源占用比较大。

玩转web之servlet(六)---session介绍及简单使用(登录验证中保存信息)的更多相关文章

  1. Web开发: servlet的session为null?

    servlet的session(会话)显示为null,一般是web.xml中配置不对或者在浏览器输入的url不正确造成的. web.xml配置如下: <servlet> <servl ...

  2. Android 实现http通信(servlet做服务器端) HttpClient、HttpURLConnection实现登录验证

    一,写好服务器端 在eclipse或其它javaee开发工具中新建一个web项目(我这里的项目名是:Android),建一个servlet(我这里的servlet名是:LoginServlet),模拟 ...

  3. Web开发技术---简单的登录验证

    制作一个APP或系统最基础的是登录界面,下面通过一个简单的登录注册界面的程序,来熟练掌握Web开发的技术. 一.知识点: 1.在网页界面获取用户的输入信息 2.标签的基本应用 3.用户输入结果的错误提 ...

  4. 玩转Web之servlet(一)---怎样创建一个servlet

    Servlet概念:servlet就是用java编写的服务器端的小程序,用来完成下B/S架构(即浏览器和服务器架构)下客户端请求的响应处理. servlet通常在容器中运行Tomcat是常见的serv ...

  5. 玩转Web之servlet(三)---一张图看懂B/S架构

    学WEB, 首先 要明确B/S架构,本文将简单说一下小编的愚见,若有不当,欢迎大家指正. 首先,什么是B/S架构?B/S是Broweser/Server的缩写,即浏览器/server模式,简单说就是c ...

  6. 玩转Web之servlet(五)---- 怎样解决servlet的线程安全问题

    servlet默认是存在线程安全问题的,但是说白了,servlet的线程安全问题实际上就是多线程的线程安全问题,因为servlet恰巧是一个多线程才会出现安全性问题. 浏览器每次通过http协议去提交 ...

  7. 玩转Web之servlet(四)---B/S是如何使用http协议完成通信过程的

    在上一篇文章中,我简单的说了一下B/S架构的流程图,关于浏览器和服务器之间的通信过程知识含糊的说了一下,在这篇文章中我再总结一下B/S架构里是如何利用http协议去完成通信的. (一)通讯过程 1:浏 ...

  8. 玩转Web之servlet(二)---servlet常见错误

    1>403:tomcat发生错误 2> 404 :意思是服务器依据请求资源路径,找不到对应的资源        解决:1.依据http://localhost:8080/Web工程名/ur ...

  9. 玩转Web之servlet(四)---B/S是怎样使用http协议完毕通信过程的

    在上一篇文章中,我简单的说了一下B/S架构的流程图,关于浏览器和server之间的通信过程知识含糊的说了一下,在这篇文章中我再总结一下B/S架构里是怎样利用http协议去完毕通信的. (一)通讯过程 ...

随机推荐

  1. Lambda高手之路第一部分

    转http://www.cnblogs.com/lazycoding/archive/2013/01/06/2847574.html 介绍 Lambda表达式是使代码更加动态,易于扩展并且更加快速(看 ...

  2. shodan

    https://www.shodan.io/ from:http://www.exploit-db.com/wp-content/themes/exploit/docs/33859.pdf 0x00 ...

  3. java特权制度设计篇

    数据库表设计 1.1.1.   模块管理(jk_module) 项 类型 说明 id long 就是数据库记录idx号 name string 模块名称 orderid int 排序id  由小到大显 ...

  4. Iconfinder 如何杜绝盗版,哈希算法检测图像重复

    原地址:http://blog.jobbole.com/65914/ 本文由 伯乐在线 - 小鱼 翻译自 Silviu Tantos.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. [伯乐在线导读 ...

  5. 浅谈 PHP 神盾的解密过程

    原文:浅谈 PHP 神盾的解密过程 前些日子一个朋友丢了个shell给我,让我帮忙解密,打开源码看了下写着是 “神盾加密” , 牛逼闪闪的样子.百度下发现神盾是个很古老的东西,最后一次更新是在 201 ...

  6. Company Story | Vistaprint

    Company Story | Vistaprint Company Story A Gap in the Small Business Marketplace It’s rare that a hi ...

  7. Wix打包系列 (六)制作升级和补丁包

    原文:Wix打包系列 (六)制作升级和补丁包 前面我们已经知道怎么制作一个完整安装包了,但我们的软件往往不能一次性就满足客户的需要,当客户需要我们给软件进行升级的时候,我们应该怎么做呢? 在这之前,我 ...

  8. 【Python】Coding the Matrix:Week 5 Perspective Lab

    这个Lab的内容光是说明就有7页之巨,我反复看了很久才看懂一点点,Lab主要完成的是从不同坐标系表示之间变换的方法. 原始的图片,从Camera basis的表示转换成WhiteBoard basis ...

  9. hdu 4961 Boring Sum(数学题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4961 Problem Description Number theory is interesting ...

  10. Java学习文件夹

    每天进步一点点,先研究一门语言深入研究下去.