jsp+servlet实现一个简单的登陆功能(无数据库)

本文介绍如何使用jsp和servlet实现一个不依赖数据库的简单登录功能,包括验证码的生成与验证。涉及LoginServlet和VarifyCodeServlet两个servlet,以及login.jsp和success.jsp两个页面。在实现过程中,重点讨论了路径处理、参数存储(尤其是验证码存储在session域)、以及在login.jsp中更换验证码的几种方法。

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值