学习Servlet编程2

1、HttpServletResponse

1.1http协议响应消息

常见响应状态码:

  • 200:成功响应 正常响应

  • 302:重定向 正常响应

  • 404:路径错误或资源不存在,检查url之类的

  • 405:请求的方法不合法(doget与dopost有没有写错)

  • 500:必然是服务器后端出错,它会有错误的日志

1.2response对象

1.2.1概念

response对象也是在浏览器(客户端)发送请求时由服务器创建出来给开发者使用的,用来设置我们想要发给浏览器的数据。

1.2.2response的api

response.getWrite().write("写入你想要发送给前端的内容")

写入中文时页面乱码:

response.setContentType("text/html;charset=utf-8");

response.sendRedirect("你想要重定向到的位置的url"):重定向用法

1.2.3重定向和请求转发

重定向特征:

  • 多次请求,由浏览器发起了新的一次请求

  • 浏览器地址栏有变化

  • 可以跳转到任意合法的url(包括内外部服务器资源)

请求转发特征:

  • 一次请求,服务器内部资源的一种跳转

  • 浏览器地址栏没有变化

  • 只能转发到服务器内部资源

借钱案例

请求转发:张三找李四借钱,李四没有钱又去找王五借钱,借到以后李四再把钱给了张三,但是张三不知道这个钱是王五的,这就是请求转发

重定向:张三找李四借钱,李四没有钱于是将王五的联系方式给了张三,张三转过头又向王五借钱,这就是重定向

2、会话技术

2.1概念

会话:一次会话包含浏览器与服务器之间的多次请求和响应。一次会话,从浏览器第一次发送请求开始,会话建立,直到其中一方主动断开连接为止,会话结束

会话技术解决的问题:解决多次请求和响应之间的共享数据

2.2cookie(客户端会话技术---小饼干)

共享数据存放在浏览器中,cookie存储的数据格式:名值对

2.2.1入门

  1. 在servlet中创建一个Cookie对象 new Cookie(String name,value)

  1. 使用response对象,response.addCookie()服务器告知浏览器存储一些cookie数据

  1. 在另外一个servlet,使用request.getCookies(),获取之前存储的cookie

2.2.2基本原理

服务器基于响应头set-cookie让浏览器保存cookie,后续对该服务器的所有请求,浏览器都会在请求消息中使用请求头cookie带上所有的cookie信息

2.2.3细节问题

默认情况下,浏览关闭则cookie信息消失(信息存在浏览器的内存中)

setMaxAge(int seconds):设置cookie在浏览器中保存的时间,seconds为负数,默认情况;为正整数,代表存活seconds秒;为0时,删除该cookie

cookie可以保存多个,多次调用response.addCookie(cookie)

cookie可以存储中文,不能存储空格,可以先编码,使用时在解码

编码:URLEncoder.encoder("待编码字符串","utf-8")

解码:URLDecoder.decoder("待解码字符串","utf-8")

2.2.4cookie特点

能保存的数据量较小,类型只能是String类型

保存在浏览器中,受浏览器的管控,个数受到限制,一般不超过20个

安全性较弱,容易被篡改

实践中多用于在用户没有登录时保存用户相关的配置信息

2.3session(服务端会话技术)

共享数据存放在服务器中

2.3.1基本原理

在一次会话中多次请求和响应之间共享数据,该共享数据存放在HttpSession对象中

HttpSession它也是一个域对象,作用范围就是一次会话

获取HttpSession:通过request.getSession()

2.3.2细节问题

服务器不重启,浏览器关闭之后再打开,获取到session对象不是同一个,默认情况JSEESIONID保存再浏览器内存中

浏览器不关闭,服务器重启,前后两次获取的session对象不是同一个,但是该对象的数据是一模一样的

2.3.3session对象何时会被销毁

  • 服务器关闭

  • 默认tomcat服务器会有30分钟session失效的功能,浏览器一定时间之内不和服务器交互,session就会失效

  • 配置tomcat服务器session默认不活跃的失效时间

  • ssession.invalidate()服务器可以主动关闭session

2.4session和cookie两种会话技术的区别

cookie共享数据保存再客户端,个数,大小都有限制,类型只能是字符串,不安全

session共享数据保存在服务端,个数,大小都没有限制,类型是任意对象,数据相对安全

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值