jsp+servlet实现一个简单的登陆功能(无数据库)
登陆功能加入了随机验证码,怎么生成随机验证码的链接点这里
首先给出项目整体图
有两个servlet,一个是LoginServlet (控制登陆,验证输入的验证码和用户名密码正确与否),还有一个是VarifyCodeServlet(生成验证码,响应到客户端)
LoginServlet
package cn.edou.servlet;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginServlet extends HttpServlet {
/**
*
*/
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//检查验证码是否正确
String sessionText = (String) request.getSession().getAttribute("sessionText");
String varifycode = request.getParameter("varifycode");
// request.setAttribute("code",sessionText);
if(varifycode.trim().equals("")){
request.setAttribute("fault", "请输入验证码");
request.getRequestDispatcher("/session2/login.jsp").forward(request, response);
return;
}
else{
if(!varifycode.equalsIgnoreCase(sessionText)){
request.setAttribute("fault", "验证码不正确");
request.getRequestDispatcher("/session2/login.jsp").forward(request, response);
return;
}
}
request.setCharacterEncoding("utf-8");
//获取表单中的账号和密码,如果账号和密码等于admin,admin则登陆成功
String username = request.getParameter("username");
String password = request.getParameter("password");
if("admin".equals(username)&&"admin".equals(password)){
//设置Cookie
Cookie userCookie = new Cookie("name",username);
userCookie.setMaxAge(60*60*24*7); //one week
response.addCookie(userCookie);
//获取session会话,存入账号
HttpSession session = request.getSession();
session = request.getSession();
session.setAttribute("sessionName", username);
//请求转发到成功页面
response.sendRedirect("/day11_3/session2/success.jsp");
}
else{
request.setAttribute("fault", "你的用户名或者密码错误");
request.getRequestDispatcher("/session2/login.jsp").forward(request, response);
}
}
public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException{
doPost(request, response);
}
}
VarifyCodeServlet
package cn.edou.servlet;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax