需求:
1.访问一个带有验证码的登录页面
2.用户输入用户名密码,以及验证码。
——如果如果用户名密码输入有误,跳转到登录页面,提示用户名或密码错误
——如果验证码有误,跳转到登录页面,提示验证码有误
——如果全部输入正确,跳转到success.jsp。显示:用户名,欢迎您
主要做了对验证码的验证,对于用户名和密码,下面的例子是写死的并没有查询数据库做比较
package cn.itcast.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String password = request.getParameter("password");
String checkCode = request.getParameter("checkCode");
HttpSession session=request.getSession();
String checkCode_session = (String)session.getAttribute("checkCode_session");
session.removeAttribute("checkCode_session");
if(checkCode_session!=null&&checkCode_session.equalsIgnoreCase(checkCode)){
//忽略大小写比较字符串
if("zhangsan".equals(username)&&"123".equals(password)){//需要查询数据库
session.setAttribute("user",username);
response.sendRedirect(request.getContextPath()+"/success.jsp");
}else{
request.setAttribute("login_error","用户名或密码错误");
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
}else{
//验证码不一致
request.setAttribute("cc_error","验证码错误");
request.getRequestDispatcher("/login.jsp").forward(request,response);
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>登录页面</title>
<style>
div{
color:red;
}
</style>
<script>
window.onload=function () {
document.getElementById("img_id").onclick=function () {
this.src="/day05/CheckCodeServlet?time="+new Date().getTime();
}
}
</script>
</head>
<body>
<form action="/day05/loginServlet" method="post">
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="username" placeholder="请输入用户名"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password" placeholder="请输入密码"></td>
</tr>
<tr>
<td>验证码</td>
<td><input type="text" name="checkCode" placeholder="请输入验证码"></td>
</tr>
<tr>
<td colspan="2"><img src="/day05/CheckCodeServlet" id="img_id"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="登录"></td>
</tr>
</table>
</form>
<div><%=request.getAttribute("cc_error")==null?"":request.getAttribute("cc_error")%></div>
<div><%=request.getAttribute("login_error")==null?"":request.getAttribute("login_error")%></div>
</body>
</html>