验证requset的forward()、include()跳转
- indextest.jsp :接受用户输入的用户名和密码
- ValidateServlet.java: 验证用户的数据是否正确
- 正确,则用 forward 方法跳转到 welcomeva.jsp(显示欢迎信息的页面)
- 错误,则调用 include 方法跳转到 indextest.jsp,并给出错误提示
首页面–indextest.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<head>
<meta charset="UTF-8">
<title>登录</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="form-group">
<form action="${pageContext.request.contextPath}/chap3validatefi" method="post" class="form-horizontal" role="form">
<table class="table table hover">
<tr>
<td> <label for="username" class="col-sm-2 control-label">用户名</label></td>
<td><input type="text" class="form-control" id="username" name="username" placeholder="请输入密码"></td>
</tr>
<tr>
<td><label for="userpass" class="col-sm-2 control-label">密码</label></td>
<td><input type="password" class="form-control" id="userpass" name="userpass" placeholder="请输入密码"></td>
</tr>
<tr>
<td><input type="submit" class="btn btn-success" align="center" ></td>
</tr>
</table>
</form>
</div>
</body>
</html>
数据处理及验证–ValidateServlet.java
@WebServlet(name = "ValidateServlet", urlPatterns = "/chap3validatefi")
public class ValidateServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应的文本类型、编码方式
response.setContentType("text/html;charset=utf-8");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
String userName = request.getParameter("username");
String userPass = request.getParameter("userpass");
System.out.println(userName + ";" + userPass);
if ("admin".equals(userName) && "123".equals(userPass)) {
out.print("成功登录,正在用forward方法跳转新的资源");
// 创建request范围的变量userName-admin
request.setAttribute("userName ", "admin");
// 创建RequestDispatcher对象
RequestDispatcher rd = request.getRequestDispatcher("/chapter3jsp/welcomeva.jsp");
// 转发请求
rd.forward(request, response);
} else {
out.print("登录失败,正在用include方法跳转新的资源");
out.print("用户名或者密码错误,请重新输入!");
RequestDispatcher rd = request.getRequestDispatcher("/chapter3jsp/indextest.jsp");
rd.include(request, response);
}
}
}
欢迎界面–welcomeva.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录成功</title>
</head>
<body>
<%=request.getParameter("username")%>欢迎你,登录成功!
</body>
</html>
代码的运行流程图
用户名和密码正确
用户名和密码错误
文件结构
webpro
src
chapter3
ValidateServlet.java
web
chapter3jsp
welcomeva.jsp
indextest.jsp