栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java-JSP+Cookie+Session改造登录

Java 更新时间:发布时间: 百科书网 趣学号

实现功能:

  • 验证码
  • 保存用户名和密码
  • 提示登录错误信息

第一步定义接口,实现登录的方法

package com.mappers;

import com.pojo.Customer;
import org.apache.ibatis.annotations.Param;

public interface CustomerMapper {

    public Customer login(@Param("name") String name, @Param("pass")String password);
}

第二步在mapper里写SQL语句






    
        select * from customer where name=#{name} and password=#{pass}

    

第三步实现service方法,实现三层架构模式

public class CustomerService {

    public boolean loginService(String name,String password){
        SqlSession session = Utils.getSession();
        Customer login = session.getMapper(CustomerMapper.class).login(name, password);
        if(login==null){
            return false;
        }
        return true;
    }
}

第四步实现servlet

package com.Controller;

import com.Service.CustomerService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet("/login")
public class loginServlet extends HttpServlet {
    CustomerService customerService = new CustomerService();
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=utf-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //获取请求验证码的参数
        String checkCode = req.getParameter("captcha");
        //获取生成的验证码
        //session的应用场景,将servlet生成的验证码存储到session中。
        String savedCode = (String) req.getSession().getAttribute(
                "captcha");

        //检验验证码是否正确,验证码不区分大小写
        String error=null;
        if(savedCode.equalsIgnoreCase(checkCode)){
            if(username!=null&&username!=""&&password!=null&&password!=""){

                boolean login =customerService.loginService(username,password);
                if(login){
                    //利用cookie保存用户名和密码
                    String remember = req.getParameter("remember");
                    if(remember!=null){
                        cookie cookie = new cookie("name",username);
                        cookie.setPath(req.getContextPath());
                        cookie.setMaxAge(15*24*60*60);
                        resp.addcookie(cookie);

                        cookie cookie2 = new cookie("pass",password);
                        cookie2.setPath(req.getContextPath());
                        cookie2.setMaxAge(15*24*60*60);
                        resp.addcookie(cookie2);
                    }



                  req.getRequestDispatcher("/success.jsp").forward(req,resp);
                }
                else{
                   error="用户名或者密码错误";
                   req.setAttribute("error",error);
                    req.getRequestDispatcher("login.jsp").forward(req,resp);
                }
            }
            else{
                error="用户名或者密码为空";
                req.setAttribute("error",error);
                req.getRequestDispatcher("login.jsp").forward(req,resp);
            }
        }
        error="验证码错误";
        req.setAttribute("error",error);
        req.getRequestDispatcher("login.jsp").forward(req,resp);

    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

最后前端代码

<%--
  Created by IntelliJ IDEA.
  User: 86133
  Date: 2021/10/5
  Time: 16:37
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%String  error = (String )request.getAttribute("error");
  if(error==null){
      error="";
  }
    String name=null;
    String password=null;
    cookie[] cookies = request.getcookies();
     for (cookie c:cookies){
        if(c!=null){
            if(c.getName().equals("name")){
                name=c.getValue();
                if(name==null){
                    name="";
                }
            }
            if(c.getName().equals("pass")){
                password=c.getValue();
                if(password==null){
                    password="";
                }
            }
        }
     }

%>



<%=error%>
用户名:
密  码:
验证码:
记住用户名和密码


提示错误信息

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/294109.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号