多页面web应用、多页面之间的数据传递【JAVA EE学习笔记三】

本文详细介绍了在JAVA EE中实现多页面web应用和数据传递的方法,包括查询字符串、内置对象(request, session, application)以及表单提交。通过实例演示了如何在页面间传递数据,重点讲解了request和session的生命周期及其在数据传递中的区别。" 84784811,7363112,Hive压缩测试与性能比较,"['Hive', 'Compression']
摘要由CSDN通过智能技术生成

回顾(JAVA EE学习笔记二):
1、JSP指令
2、JSP脚本段
3、JSP表达式
4、JSP声明

目录

一、多页面web应用
二、多页面之间的数据传递

一、多页面web应用

常见的几种路径:
http://localhost:8080/week004/a.jsp
a.jsp
/week004/a.jsp

路径有相对路径和绝对路径
**绝对路径:**带有完整URL地址
①协议://IP:端口号/文件目录名/资源名(通常用于访问不同服务器之间)
②路径最前面用斜线/开头,如/week004/a.jsp(通常在同一个web应用程序之中)
例如在a.jsp中设置超链接:
页面二,这里的就是在绝对地址,a.jsp和b.jsp是同一级别的资源,这里的week004就相当于WebContent

相对路径:
类似于b.jsp或者week004/b.jsp
当前页面a.jsp
b.jsp就表示b.jsp和a.jsp是同级的
week004/b.jsp就表示week004是和a.jsp同级的

二、多页面之间的数据传递

有时候我们需要在多个页面之间进行数据传递,比如在购物页面我们点击下单,跳转到订单信息确认页面,我们需要显示商品的购买数量,那么我们如何时间页面之间的数据传递呢?
有三种方法:
(1)查询字符串 URL?键值对
(2)内置对象 request session application
(3)表单

(1)查询字符串

我们想从a.jsp页面中传递字符aa到b.jsp
(a.jsp)
我们利用超链接来进行页面跳转

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="b.jsp?name='aa'">跳转到b页面并把name=aa传递到b页面</a>
</body>
</html>

这里我们用了URL?键值对来进行传递数据,b.jsp?name=‘aa’
运行a.jsp页面如下:
在这里插入图片描述
然后我们点击超链接我们就可以跳转到b.jsp页面了,但是你会发现结果是404,因为我们还没有创建b.jsp页面

首先,创建b.jsp页面,然后我们要在b.jsp页面中完成两项任务:①获取a.jsp页面传递过来的数据②打印显示接收到的数据

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	String name= request.getParameter("name");
%>
name:<%=name %>
</body>
</html>

在这里插入图片描述
①获取数据:
接收数据主要用到的方法是request.getParameter()方法,它获取到的数据类型为string类型
我们要注意的是request.getParameter(“name”);中的name要与a.jsp键值对中的键名一致,负责将获取不到数据,会显示null
②打印显示数据:
这里我们用到了《JAVA EE学习笔记二》中的JSP表达式,我们利用表达式来显示接收到的数据
<%=name %>
我们要注意一下页面地址栏的变化:
跳转前:http://localhost:8080/week004/a.jsp
在这里插入图片描述
跳转后:http://localhost:8080/week004/b.jsp?name=‘aa’

在这里插入图片描述
我们会发现传递过来的键值对显示在地址栏上

到这里我们就完成了a页面和b页面之间的数据传递啦!那么我们想b页面是不是也可以向c页面传递数据呢?答案自然是肯定的。那么我们能不能在b页面中把a页面传递过来的数据也传递给c页面呢?

修改b.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值