java-web-servlet(用户登录案例)

用户登录

  • 目录
        • 用户登录案例需求描述
        • 登录案例逻辑分析
        • 项目代码架构
        • 前端代码
        • 方法实现
        • 登录
        • 登录成功
        • 登录失败
        • 测试(不利用servlet)
        • 登录成功显示

目录

用户登录案例需求描述

1.编写login.html登录页面username & password 两个输入框
2.使用Druid数据库连接池技术,操作mysql,day14数据库中user表
3.使用JdbcTemplate技术封装JDBC
4.登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎您
5.登录失败跳转到FailServlet展示:登录失败,用户名或密码错

登录案例逻辑分析

java-web-servlet(用户登录案例)_第1张图片

项目代码架构

java-web-servlet(用户登录案例)_第2张图片

前端代码


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
head>
<body>
    <form action="/loginServlet" method="post">
        用户名:<input type="text" name="username"> <br>
        密码:<input type="password" name="password"><br>

        <input type="submit" value="登录">

    form>
body>
html>

方法实现

package com.neusoft.dao.impl;

import com.neusoft.dao.UserDao;
import com.neusoft.domain.User;
import com.neusoft.util.JDBCUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;


public class UserDaoImpl implements UserDao
{
     
    private Connection conn=null;
    private PreparedStatement pstmt=null;
    private ResultSet rs=null;
    private User user=null;
    @Override
    public User login(User loginUser) throws SQLException
    {
     
        String sql="select * from userlogin where username=? and password=?";
        try{
     
            conn = JDBCUtils.getConnection();
            pstmt = conn.prepareStatement(sql);
            pstmt.setString(1,loginUser.getUsername());
            pstmt.setString(2,loginUser.getPassword());
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()){
     
                user = new User();
                user.setUsername(rs.getString("username"));
                user.setPassword(rs.getString("password"));
            }
        } catch (SQLException e) {
     
            e.printStackTrace();
        } finally {
     
            JDBCUtils.close(rs,pstmt,conn);
        }
        return user;
    }
}

登录

package com.neusoft.web.servlet;

import com.neusoft.dao.UserDao;
import com.neusoft.dao.impl.UserDaoImpl;
import com.neusoft.domain.User;

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 java.io.IOException;
import java.sql.SQLException;

@WebServlet("/loginServlet")
public class LoginServlet extends HttpServlet
{
     
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    {
     
        //1.设置编码
        req.setCharacterEncoding("utf-8");
        //2.获取请求参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //3.封装成对象
        User loginUser = new User();
        loginUser.setUsername(username);
        loginUser.setPassword(password);
        //4.调用 dao 中 login方法
        UserDao dao = new UserDaoImpl();
        User user=null;
        try {
     
            user = dao.login(loginUser);
        } catch (SQLException e) {
     
            e.printStackTrace();
        }
        //5.判断
        if(user == null){
     
            //登录失败
            req.getRequestDispatcher("/failServlet").forward(req,resp);
        }else {
     
            req.setAttribute("user",user);
            req.getRequestDispatcher("/successServlet").forward(req,resp);
        }
    }

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

登录成功

package com.neusoft.web.servlet;

import com.neusoft.domain.User;

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 java.io.IOException;

@WebServlet("/successServlet")
public class SuccessServlet extends HttpServlet
{
     
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    {
     
        User user = (User) req.getAttribute("user");
        if(user != null){
     
            resp.setContentType("text/html;charset=utf-8");
            resp.getWriter().write("登录成功,"+user.getUsername()+",欢迎您");
        }
    }

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

登录失败

package com.neusoft.web.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 java.io.IOException;

@WebServlet("/failServlet")
public class FailServlet extends HttpServlet
{
     
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
    {
     
        //给页面一句话
        //设置返回文件类型和编码
        resp.setContentType("text/html;charset=utf-8");
        resp.getWriter().write("登录失败,用户名或密码错误");
    }

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

测试(不利用servlet)

package com.neusoft.test;

import com.neusoft.dao.impl.UserDaoImpl;
import com.neusoft.domain.User;
import org.junit.Test;

import java.sql.SQLException;

public class UserDaoTest
{
     
    @Test
    public void test() throws SQLException
    {
     
        User loginUser = new User();
        loginUser.setUsername("bigbaby");
        loginUser.setPassword("12345");
        UserDaoImpl dao = new UserDaoImpl();
        User user = dao.login(loginUser);
        System.out.println(user);
    }
}

java-web-servlet(用户登录案例)_第3张图片

登录成功显示

java-web-servlet(用户登录案例)_第4张图片
关注小何童鞋不迷路!

你可能感兴趣的:(java-web,servlet,java)