Servlet干货

4 篇文章 0 订阅
3 篇文章 0 订阅

Servlet干货

什么是Servlet呢,抛去百度百科的专业解释,我个人认为是实现客户端与服务器端收发数据,实现资源跳转的一个组件.(欢迎纠正)

看完这篇博客,你能:

  • 使用Cookie或Session实现服务器端与客户端的交互

  • 了解Cookie与Session的异同

  • 获取从客户端以get或post方式发送的数据

  • 会使用转发和重定向俩种方式跳转资源

  • 了解转发和重定向的异同

    前期准备

    使用Servlet有三种方式

    1. 实现Servlet接口
    2. 继承GenericServlet类
    3. 继承HttpServlet

    这里我们使用第三种方法,继承后需要重写doGet()和doPost方法.

    get和post是俩种客户端向服务器端请求的俩种方式,没有html基础可以进行百度

    下面将针对收发数据和资源跳转俩个方面来讨论Servlet技术

    在此之前,你需要创建一个项目,详细步骤看我以前的一篇博客(TomCat集成IDEA并测试Servlet)

    篇幅所限,这篇博客只能写基本操作,感兴趣可以在w3cschool上寻找相关的教程进行深入学习

代码包 :链接: https://pan.baidu.com/s/1F1qhQST-qeTf3JXQuFlOHw 提取码: jknc
客户端与服务器端交互(会话技术)

Cookie

Cookie,即客户端会话技术,能把数据保存在客户端,常常用于存储少量不太敏感的数据.

Cookie使用步骤,大致分为三步

  1. 创建对象,绑定数据 new Cookie(key,value),key与value都是String类的
  2. 发送Cookie对象 response.addCookie(cookie),通过response的addCookie()方法来发送
  3. 获取Cookie,拿到数据 Cookie[] cks = request.getCookies(),通过response的getCookie()方法来获取,返回值为Cookie数组

下面通过示例根据上面写的步骤来使用Cookie

创建目录结构如图
在这里插入图片描述
编写设置Cookie的对象
在这里插入图片描述
编写获取Cookie的对象
在这里插入图片描述
编写表单
在这里插入图片描述
结果如图
在这里插入图片描述
在这里插入图片描述

Session

Session,即服务器端会话技术,能把数据保存在服务器端,与cccokie不同,Session的Value可以是任意类型

使用步骤,有俩种方式操作Session

  1. 通过request对象操作Session

使用resquest.setAttribute(key,value)来设置Session

使用request.getAttribute(key)来获取Session

  1. 通过HttpSession操作Session

与通过resquest操作Session不同的是,在操作之前需要通过request来获取HttpSession对象

HttpSession hs = request.getSession();//获取HttpSession对象

hs.setAtterbute(key,value);

hs.getAttribute(key);

俩种方式的异同:通过HttpSession操作的Session作用域更大,但HttpSession对服务器的开销更大

下面通过代码来演示

创建目录如图
在这里插入图片描述
编写SessionSet类
在这里插入图片描述
编写SessionGet类
在这里插入图片描述
编写表单
在这里插入图片描述
运行结果
在这里插入图片描述
在这里插入图片描述

Cookie与Session异同

Session把数据存储在服务器端,Cookie把数据存储在客户端

Session对数据有大小限制,而Cookie没有

Session的Value可以是任意类型(Object)

Session数据相对Cookie更加安全

获取数据

客户端的form表单提交后,获取表单的内容

条件:表单里的项有name属性

步骤:1.提交表单.2.调用request.getParameter(name)来获取表单里项的内容

目录结构如图
在这里插入图片描述
服务器端代码
在这里插入图片描述
客户端代码
在这里插入图片描述
运行结果在这里插入图片描述

资源跳转

转发

通过改造上面的Cookie代码来举例

如果你刚刚跟着写了上面的代码,你会发现上面的功能实现需要点击俩次按键(发送和获取)

现在我们通过转发的方式实现点击一次按键就可以实现上面Cookie的功能

注 :需要刷新页面获取Cookie
转发步骤

  1. 获取请求调度器,req.getRequestDispather()
  2. 使用调度器里的forward(req,resp)方法

注意一般连起来写:req.getRequestDispather().forward(req,resp)来进行转发

在这里插入图片描述
在这里插入图片描述

重定向

步骤:

  1. 获取文件的真实路径 req.getContextPath()+"/资源名"
  2. 调用resp.sendRedirect(path)方法来进行重定向

通过改造上面的Session代码来实现

在这里插入图片描述

在这里插入图片描述

转发与重定向异同

转发是一次请求,浏览器上的地址栏路径不变,只能访问当前服务器上的资源

重定向是俩次请求,浏览器上地址栏的路径改变,可以访问不同服务器上的资源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值