cookie session 表单登录 Ajax登录

cookie

客户端的缓存技术,浏览器技术

作用:

提高网页效率,减轻服务器的负载

Cookie的创建和发送

Cookie的创建和发送

Cookie的创建

Cookie cookie=new Cookie("名称","值")

Cookie的发送:

resp.addCookie(cookie)

Cookie到期时间的设置

到期时间,用来指定该cookie何时失效。默认为当前浏览器关闭即失效

大于0的整数

表示cookie存活指定的秒数

小于0的整数

表示不存储,默认关闭浏览器失效

0

表示删除

获取Cookie的值

req.getCookies();

设置到期时间:

Cookie对象名.setMaxAge();.

Cookie的注意点:

1、cookie不跨电脑和浏览器

2、cookie设置中文问题

Cookie中不能出现中文,如果有中文则通过URLEncoder.encode()来进行编码

获取时通过URLDecoder.decode()来进行解码

Cookie的覆盖

在相同的domain和path下,如果出现相同的name的cookie对象,后面的cookie对象会将前面的覆盖

Cookie的路径

1、cookie.setPath("/");当前服务器下,所有的资源都可以获得Cookie

2、在相同的domain下,只有访问资源的路径中包含cookie设置的path值,才能访问到cookie对象


session

session是一次会话,在会话中可以存在多次请求

1、创建|获取session对象(当访问资源时,会先判断session对象是否存在,存在,则获取,或者创建)

HttpSession session=req.getSession();

2、会话标识符

session.isNew();

3、是否为新的会话

session.isNew();

4、创建的时间

session.getCreationTime();

5、最后的访问时间

session.getLastAccessedTime();

Session域对象

Session用来表示一次会话,在一次会话中数据是可以共享的,这是session作为域对象存在

通过setAttribute(name,value)方法向域对象中添加数据

通过getAttribute(name)方法从域对象中获取数据

通过removeAttribute(name)方法从域对象中移出数据

session的销毁

1、默认到期时间

当最大不活动时间到达默认到期时间,session会销毁

在服务器规定时间内没有任何有效的操作,session对象就会销毁

Tomcat服务器默认时间是30分钟。单位是分钟

可以修改默认的时间:

Tomcat下的web。xml目录中

<session-config>

<session-timeout></session-timeout>

</session-config>

2、自己设置到期时间

通过session.setMaxInactiveINterval(int)方法来设置session最大活动时间,单位为秒

通过session.getMaxInactiveINterval(int)方法来获取最大不活动时间

3、默认关闭浏览器即失效

session底层依赖cookie;默认关闭浏览器即失效

4、关闭服务器(非正常关闭)

当非正常关闭服务器时,session 销毁;

当正常关闭服务器时,Session 将被序列化 到磁盘上,在工作空间 work 目录下的 SESSION.ser 文件中,下次启动服务时,自动加 载到内存

5、手动销毁

session.invalidate()方法;

ServletContext 对象,又称 Application 对象

作用:

1、作为域对象用来共享数据,此时数据在整个应用程序中共享

2、该对象中保存了当前应用程序相关信息

获取ServletContext 对象的方法:

1、通过request对象获取

ServletContext sc =request.getServletContext();

2、通过session对象获取

ServletContext sc1=request.getSession().getServletContext();

3、通过Config对象获取

ServletContext sc2=getServletConfig().getServletContext();

4、直接获取

ServletContext sc3=getServletContext();

常用方法:

1、获取服务器的版本信息

.getServerInfo()

2、获取项目在服务器的真实路径

.getRealPath("/");

文件上传

  需要第三方的jar包的支持。

  commons-fileupload.jar 是文件上传的核心包

  commons-io.jar 是 filefupload 的依赖包,同时又是一个工具包。

  注:jar包需要放在项目的WEB-INF的lib目录下,不需要bulid path。

  核心对象:

DiskFileItemFactory – 设置磁盘空间,保存临时文件。只是一个工具类

  ServletFileUpload – 文件上传的核心类,此类接收 request,并解析

核心方法:

ServletFileUpload.parseRequest(request); – List 解析 request

实现步骤:

1、 创建一个 DiskFileItemFactory 工厂类,并制定临时文件和大小

2、 创建 ServletFileUpload 核心类,接收临时文件,做请求的转换

3、 通过 ServletFileUpload 类转换原始请求,得到 FileItem 集合

4、 遍历集合中的各个元素并处理

5、 判断每个元素是否是普通表单项,如果是则按照普通表单项处理

6、 如果不是普通表单项,则是文件,通过处理的方式进行处理(上传)

具体步骤:

1、设置请求的编码(处理POST请求)

2、需要在项目的WebContent目录下创建两个文件夹 (upload:文件最终上传的目录  temp:临时目录)

3、得到两个文件夹的路径(在服务器下的真实路径)

4、声明DiskFileItemFactory工厂类,用于在指定磁盘上设置一个临时目录

5、声明ServletFileUpload,接收上面的临时文件。

6、通过ServletFileUpload核心上传类,解析请求,返回集合 List<FileItem>

7、判断集合是否为空

8、遍历集合,得到集合中每一个元素

9、判断元素是否是普通表单,如果是,按照普通表单项取值

10、如果是非普通表单,则为文件上传

a、得到文件名,通过判断和截取得到文静后缀,生成随机文件名,拼接成新的文件名

b、将文件写入指定目录中(upload目录)

c、删除临时文件

文件下载方式:

1、超链接下载

浏览器遇到能够识别的资源会直接显示,遇到不能识别的资源则会进行下载

download属性

当a标签设置download属性时,点击链接会进行下载;

download属性如果没有设置对应的值,下载时的文件就是下载名;如果设置过属性值则下载名为设置的值


表单登录

前台:

表单

表单提交地址

表单类型

id属性值

表单元素

文本框

设置name和id属性值

密码框

设置name和id属性值

普通按钮

设置id属性值,绑定点击事件

表单校验

1、获取表单元素的值

2、判断表单元素的值是否为空

如果为空,显示提示信息

如果不为空,则提交表单

后台:

1、获取前台传递的姓名和密码  request.getParameter("表单元素的name属性值");

2、参数的非空校验(姓名和密码)

如果为空,请求转发跳转到登录页面,并return

3、通过姓名和密码去数据库查询用户对象,返回用户对象(创建JavaBean User类)

JDBC的查询操作(创建DBUtil工具类)

1、通过DBUtil工具类得到数据库连接

2、定义sql语句

3、预编译sql语句

4、设置参数,下标从1开始

5、执行查询,返回resultSet结果集

6、判断并分析结果集

如果查询到数据,将数据填充到用户对象中

7、关闭资源

8、返回用户对象

注:需要将mysql的jar包拷贝到项目的WEB-INF的lib目录下

4、判断用户对象是否为空

如果为空,表示账号密码不正确,登录失败,请求转发跳转到登录页面,并return

5、如果用户对象不为空

表示登录成功,重定向跳转到首页


Ajax登录

前台:

表单元素

文本框

设置id属性值

密码框

设置id属性值

普通按钮

设置id属性值,绑定点击事件

非空校验

1、获取表单元素的值

2、判断表单元素的值是否为空

如果为空,显示提示信息

如果不为空,则发送ajax请求

$.ajax({

type:"post", // 请求类型 GET|POST

url:"loginServlet", // 请求路径

data:{ // 需要传递给后台的参数

"uname":uname,

"upwd":upwd

},

success:function(result){ // 回调函数:用来接收后台返回的结果

/*

需要得到数据:

成功或失败 1=成功,0=失败

为什么失败   字符串:错误原因

{

code:0,

msg:"xxx失败"

}

*/

// 判断是否登录成功

if (result.code == 1) { // 登录成功

// 通过js跳转页面

window.location.href = "index.html";

} else {

// 登录失败

// 设置提示信息

$("#msg").html(result.msg);

}

}

});

后台:

1、获取前台传递的参数

2、参数的非空校验(姓名和密码)

如果为空,需要通过输出流将结果响应给ajax的回调函数,并return

3、通过姓名和密码去数据库查询用户对象,返回用户对象(创建JavaBean User类)

JDBC的查询操作(创建DBUtil工具类)

1、通过DBUtil工具类得到数据库连接

2、定义sql语句

3、预编译sql语句

4、设置参数,下标从1开始

5、执行查询,返回resultSet结果集

6、判断并分析结果集

如果查询到数据,将数据填充到用户对象中

7、关闭资源

8、返回用户对象

注:需要将mysql的jar包拷贝到项目的WEB-INF的lib目录下

4、判断用户对象是否为空

如果为空,需要通过输出流将结果响应给ajax的回调函数,并return

5、如果用户对象不为空

表示登录成功,需要通过输出流将结果响应给ajax的回调函数

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容