Request 对象

首先我们在 login.jsp 中写上:

<form action="userLogin.jsp" method="GET">
<label for="email">邮箱:</label>
<input type="email" name="email" id="email" />
<label for="password">邮箱:</label>
<input type="password" name="password" id="password" />
<input type="submit" value="登录" />
</form>

getParameter 函数

用于获取 HTTP GET / POST 的参数

然后在 userLogin.jsp 中写上:

<div>
<p>您好,你刚才输入的邮箱是:<%= request.getParameter("email") %></p>
<p>密码是:<%= request.getParameter("password") %></p>
</div>

或者可以用另一种输出方式:

<div>
<p>
您好,你刚才输入的邮箱是:
<%=
String email = request.getParameter("email");
out.print(email);
%>
</p>
<p>
密码是:
<%=
String password = request.getParameter("password");
out.print(password);
%>
</p>
</div>

getAttributes 函数

首先我们需要给他保存属性

<% request.setAttribute("msg", "小麦"); %>

获取所保存的属性

<%= request.getAttribute("msg") %>

其中,msg 是属性的 key 唯一标识符。

Response 对象

可以用来做页面跳转

<%
// 第一种方法
request.getRequestDispatcher("目标页面").forward(request, response);

// 第二种方法
response.sendRedirect("目标页面");
%>

第一种可以将当前的 request 和 response 对象带过去,所以 request.setAttributes 所保存的数据是仅限于 request 对象里。如果直接调用 response.sendRedirect(“”),那么新页面的 request 对象又是全新的。

Session 对象

session 可以替代 request,作用域比 request 还大。他是当前对话都有效。也就是如果你没有把浏览器关掉,那么他就一直存在。

举个栗子

request.setAttribute("msg", "小麦");
session.setAttribute("msg", "秃头");

response.sendRedirect("welcome.jsp")

在 welcome.jsp 里,我们调用

request.getAttribute("msg");
session.getAttribute("msg");

那么我们会发现,只有 session 那一段才会有值,request 对象是 null。

甚至我们在另一个页面 hello.jsp 调用 session.getAttribute(“msg”),他也能获取到这个值。

Exception 对象

假设有个页面出错了,且他的错误跳转为 error.jsp,那么我们可以在 error.jsp 里写上:

<h3>页面出错啦!</h3>
<p>错误信息为:<%= exception.getMessage() %></p>

exception 对象保存了当前异常中的所有信息