回顾(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>
</