- url重写是一种通过修改url来进行会话管理的技术
- 一般用于向下一个组件(servlet或jsp等)传递数据
- url重写多是为了在url后面追加参数,参数名随便起,尽量有意义
- 该程序中通过首页输入学号将学号作为参数提交给profile.jsp页面,并通过对profile.jsp页面的超链接进行重写传递学号到第三个页面
index首页:
<!DOCTYPE html>
<html>
<head>
<title>会话管理技术->URL重写(URL Rewriting)</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/bootstrap.min.css"/>
</head>
<body>
<div class="container">
<h1 class="text-center text-primary">会话管理技术->URL重写(URL Rewriting)</h1>
<hr>
<br>
<form action="profile.jsp" class="form-inline">
<label for="xuehao">学号: </label>
<input type="text" name="rollno" value="2017206666" id="xuehao" class="form-control">
<input type="submit" value="查询个人信息" class="btn btn-sm btn-primary">
</form>
</div>
</body>
</html>
jsp页面:profile.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>个人信息页面</title>
<link rel="stylesheet" href="css/bootstrap.min.css"/>
</head>
<body>
<div class="container">
<h1 class="text-center text-danger">学生个人信息</h1>
<hr>
<br>
<p>学号:<%=request.getParameter("rollno") %> </p>
<br>
<!--url重写: 是一种通过修改url来进行会话管理的技术
一般用于向下一个组件(servlet或jsp等)传递数据
url重写多是为了在url后面追加参数,参数名随便起,尽量有意义
-->
<!--这里点击超链接请求transcript.jsp页面,并且追加了一个名为xuehao的参数-->
<!--参数值是第一个页面上输入的学号-->
<a href="transcript.jsp?xuehao=<%=request.getParameter("rollno") %>">查看个人成绩单</a>
</div>
</body>
</html>
jsp页面:transcript.jsp:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>个人成绩单</title>
<link rel="stylesheet" href="css/bootstrap.min.css"/>
</head>
<!--使用style属性给某个元素添加的样式叫做内联样式/内嵌样式-->
<body>
<div class="container">
<h1 class="text-center text-success">个人成绩单</h1>
<hr>
<br>
<!--我们点击超链接请求了transcript.jsp页面,也就是跳转到该页面-->
<!--并且追加了一个请求参数xuehao,在该页面可获取到该请求参数-->
<p>学号:<%=request.getParameter("xuehao") %> </p>
</div>
</body>
</html>
通过上面例子可以看出,URL重写主要体现在这一句
<a href="transcript.jsp?xuehao=<%=request.getParameter("rollno") %>">查看个人成绩单</a>
通过这一句就提交了问号后的参数,可以在指定的jsp页面用request对象的getParameter()方法获得该参数,从而实现跨页面传输数据。