JavaWeb笔记3--Servlet进阶(二)

九、Servlet跳转

1. Servlet跳转

1.1 对象

jsp、html页面通过表单、超链接跳转进servlet。
servlet跳转到其他servlet、jsp或其他页面。

1.2 两种跳转方式

  • 客户端跳转
    方法一:response.setHeader(“refresh”,“3;url=hello.jsp”); 告诉浏览器3秒后重新定向到新的资源,浏览器地址栏中是刷新之后的地址
    方法二:使用重定向response.sendRidrect(“hello.jsp”);

  • 服务器端跳转
    方法三:直接请求转发,服务器端控制权的转向,跟客户端浏览器无关,浏览器地址栏显示转发之前的地址
    RequestDispatcher rd= getServletContext().getRequestDispatcher(“/hello.jsp”);
    RequestDispatcher rd= request.getRequestDispatcher(“hello.jsp”);
    rd.forward(request,response);//控制权的完全转向,客户端得到的返回信息是来自于转向后文件的输出
    rd.include (request,response);//包含,客户端得到的返回信息是两个文件共同输出的结果

1.3 客户端、服务器端跳转比较

在这里插入图片描述

两种跳转各有其特点,服务器端跳转,跳转之后地址栏的信息并不会有任何改变;而客户端跳转跳转之后地址栏变为跳转之后的页面地址。

如果使用服务端跳转,则执行跳转语句时会立刻进行跳转,如果使用的是客户端跳转,则是在整个页面执行完之后才执行跳转。

由于两种跳转存在差异,所以在以后的开发中,尤其是使用了JDBC的操作中,一定要在服务器端跳转语句执行之前关闭数据库的连接,否则数据库的连接将再也无法关闭。如果数据库连接始终没有关闭,当达到一定程度时将出现“数据库已经达到最大的异常”。

2. 客户端跳转–请求重定向

2.1 请求重定向过程

包含两次请求和两次响应,服务器需要web浏览器重新发送新请求到servlet2。客户端浏览器知道要跳转–称为客户端跳转。
在这里插入图片描述

2.2 HttpServletReqsponse的sendRedirect()方法

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

2.3 实现

客户端跳转不可以共享请求范围内的参数。
两个servlet不能共享请求的数据,因为是浏览器的两次请求。
可以传递session范围的属性,无法传递request范围的属性。
在这里插入图片描述

3. 服务器端跳转–请求转发

3.1 请求转发的过程

对客户端不可见,有web容器完成。一次请求一次响应。
在这里插入图片描述

3.2 RequestDispatcher接口

在这里插入图片描述

3.3 实现

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

十、Servlet间数据共享

在不同页面或者用户之间共享数据

1. 同一个用户不同页面的数据共享

session数据不能被其他用户使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
session数据不能被其他用户使用:
在这里插入图片描述

2. 不同用户的页面的数据共享

ServletContext:Servlet上下文。
在这里插入图片描述
在这里插入图片描述
不同用户可共享数据:
在这里插入图片描述

3. 服务器端跳转下的数据共享

把信息放到请求中。
在这里插入图片描述
在这里插入图片描述

十一、web3.0文件上传下载

1. 文件上传、下载的基本流程

在这里插入图片描述

2. Servlet3.0文件如何上传、下载

以前版本上传借助第三方使业务更简单。
在这里插入图片描述
form中,enctype=“编码类型””。文件为multipart/form-data类型。
在这里插入图片描述
part对象:包含文件上传
Servlet 3.0之Part对象(文件上传)
在这里插入图片描述
String mimetype = getServletContext().getMimeType(file);
mimetype:getMimeType(file)方法可以直接通过文件的扩展名获取mimetype。

3. 上传下载功能实现

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

十二、实战–信息管理系统登陆、注销功能

1. session登陆、注销流程

在这里插入图片描述
登陆:访问hello检查session凭证
在这里插入图片描述
注销:
在这里插入图片描述

2. 实现

代码
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值