zoukankan      html  css  js  c++  java
  • 玩转web之servlet(六)---session介绍及简单使用(登录验证中保存信息)

    在浏览器与服务器进行交互时,往往需要把涉及到的一些数据保存下来,这时就需要使用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是没限制的
    缺点:由于将信息保存到服务器端,对系统资源占用比较大。






  • 相关阅读:
    C# 使用SqlBulkCopy类批量复制大数据 快速导入Excel大量数据
    Git的安装与使用
    未能加载文件或程序集“Microsoft.VisualStudio.Web.PageInspector.Loader, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。
    Android SDK Manager不能显示所有包的解决办法
    editor多功能文本框在有些计算机上不能正常加载,解决方法,本人用的是把js调用方法放到<body></body>后面)
    MVC URL参数传递+变为空格解决方法
    SQL 查询不重复数据
    Java基本数据类型取值范围
    统计数组中的逆数对个数
    Docker 安装 ElasticSearch
  • 原文地址:https://www.cnblogs.com/oversea201405/p/3752160.html
Copyright © 2011-2022 走看看