博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
servlet学习笔记(二)
阅读量:5814 次
发布时间:2019-06-18

本文共 1821 字,大约阅读时间需要 6 分钟。

  hot3.png

继续学习servlet,这里开始学习servlet session的用法。

先看API 中对HttpSession接口的定义:

Provides a way to identify a user across more than one page request or visit to a Web site and to store information about that user.

The servlet container uses this interface to create a session between an HTTP client and an HTTP server. The session persists for a specified time period, across more than one connection or page request from the user. A session usually corresponds to one user, who may visit a site many times. The server can maintain a session in many ways such as using cookies or rewriting URLs.

本人英语水平欠佳,翻译不了这段话,但是大体意思还是明白的:session保存了用户的信息,可以在不同的页面间共享用户信息。维持会话还可以通过cookies或者重定向的方法,恩,先学习session,后面再介绍cookies。

对于session,韩顺平老师有个形象的介绍:某个浏览器访问了servlet服务器,服务器便为该浏览器开辟出一块单独内存,在这块内存中保留浏览器的信息,这就是session,可以把session看做是一个二维表,表中以属性:属性值保存用户数据。听了这个介绍,概念上便清晰了许多,下面看session的具体使用。

这里模拟用户登录之后,将用户名和密码保存在session中作为学习的例子:

public void doGet(HttpServletRequest req,HttpServletResponse res){		try{			//接收用户名和密码			String u = req.getParameter("username");			String p = req.getParameter("pass");				//1得到session				HttpSession hs = req.getSession(true);				//2修改session的存在时间				hs.setMaxInactiveInterval(2000);				hs.setAttribute("user",u);                                                                hs.setAttribute("pass",p);                       }catch(Exception ex)		{			ex.printStackTrace();		}	}

当然这里省略了用户验证的步骤,首先通过HttpServletRequest对象的getSession()方法获得HttpSession对象,然后将属性和属性值通过serAttribute()方法写到session中,session缺省的存在时间是半小时,可以通过setMaxInacticeInterval()来手动设置存在时间。

再看一下session的读取:

//得到session		HttpSession hs = req.getSession(true);                String user = (String)hs.getAttribute("user")                String pass = (String)hs.getAttribute("pass");

通过getAttribute()就可以获得相应属性的值了,返回值为Object类型。还有其他方法,详见参考手册。

 

 

转载于:https://my.oschina.net/zyzzy/blog/52286

你可能感兴趣的文章
一维数组
查看>>
Linux学习笔记之三
查看>>
CentOS 6.6 FTP install
查看>>
图解Ajax工作原理
查看>>
oracle导入导出小记
查看>>
聊一聊log4j2配置文件log4j2.xml
查看>>
NeHe OpenGL教程 第七课:光照和键盘
查看>>
修改上一篇文章的node.js代码,支持默认页及支持中文
查看>>
Php实现版本比较接口
查看>>
删除设备和驱动器中软件图标
查看>>
第四章 TCP粘包/拆包问题的解决之道---4.1---
查看>>
html语言
查看>>
从源码看集合ArrayList
查看>>
spring-boot支持websocket
查看>>
菜鸟笔记(一) - Java常见的乱码问题
查看>>
我理想中的前端工作流
查看>>
记一次Git异常操作:将多个repository合并到同一repository的同一分支
查看>>
CodeIgniter 3.0 新手捣鼓源码(一) base_url()
查看>>
Chrome 广告屏蔽功能不影响浏览器性能
查看>>
vSphere 6将于2月2日全球同步发表
查看>>