smbms登录功能实现

一、编写或准备前端页面

login.jsp页面放在webapp根目录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>系统登录 - 超市订单管理系统</title>
    <link type="text/css" rel="stylesheet" href="${pageContext.request.contextPath }/statics/css/style.css" />
    <script type="text/javascript">
	/* if(top.location!=self.location){
	      top.location=self.location;
	 } */x
    </script>
</head>
<body class="login_bg">
    <section class="loginBox">
        <header class="loginHeader">
            <h1>超市订单管理系统</h1>
        </header>
        <section class="loginCont">
	        <form class="loginForm" action="${pageContext.request.contextPath }/user/dologin.html"  name="actionForm" id="actionForm"  method="post" >
				<div class="info">${error }</div>
				<div class="inputbox">
                    <label>用户名:</label>
					<input type="text" class="input-text" id="userCode" name="userCode" placeholder="请输入用户名" required/>
				</div>
				<div class="inputbox">
                    <label>密码:</label>
                    <input type="password" id="userPassword" name="userPassword" placeholder="请输入密码" required/>
                </div>
				<div class="subBtn">
                    <input type="submit" value="登录"/>
                    <input type="reset" value="重置"/>
                </div>
			</form>
        </section>
    </section>
</body>
</html>

并在web.xml中设置欢迎页

<!--    设置欢迎页-->
    <welcome-file-list>
        <welcome-file>login.jsp</welcome-file>
    </welcome-file-list>

可以启动tomcat 验证一下默认是否能转到设置的欢迎页。如下截图,说明是成功的。
在这里插入图片描述

二、编写dao层用户登录接口及接口实现

在这里插入图片描述

UserDao.class 类

package com.zhang.dao.user;

import com.zhang.pojo.user;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * @author zhanghengchao
 * @created 2021-08-28-7:31
 */
public interface UserDao {
    //得到要登录的用户
    public user getLoginUser(Connection connection, String userCode) throws SQLException;
}

UserDaoImpl.class

package com.zhang.dao.user;

import com.zhang.dao.BaseDao;
import com.zhang.pojo.user;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * @author zhanghengchao
 * @created 2021-08-28-7:34
 */
public class UserDaoImpl implements UserDao {
    // 得到要登录用户
    @Override
    public user getLoginUser(Connection connection, String userCode) throws SQLException {
        PreparedStatement pstm = null;
        ResultSet rs = null;
        user user = null;

        if (connection != null) {
            String sql = "select * from smbms_user where userCode = ?";
            Object[] params = {userCode};

            rs = BaseDao.execute(connection, pstm, rs, sql, params);

            if (rs.next()) {
                user = new user();
                user.setId(rs.getInt("id"));
                user.setUserCode(rs.getString("userCode"));
                user.setUserName(rs.getString("userName"));
                user.setUserPassword(rs.getString("setUserPassword"));
                user.setGender(rs.getInt("gender"));
                user.setBirthday(rs.getDate("birthday"));
                user.setPhone(rs.getString("phone"));
                user.setAddress(rs.getString("address"));
                user.setUserRole(rs.getString("role"));
                user.setCreatedBy(rs.getString("createdBy"));
                user.setCreatedAt(rs.getDate("createdAt"));
                user.setModifiedBy(rs.getString("modifiedBy"));
                user.setModifiedAt(rs.getDate("modifiedAt"));
            }
            BaseDao.closeResource(null, pstm, rs);
        }
        return user;
    }
}

三、编写Service业务层登录功能及接口

业务层

package com.zhang.service.user;

import com.zhang.pojo.user;

/**
 * @author zhanghengchao
 * @created 2021-08-28-9:06
 */
public interface UserService {
    //用户登录
    public user login(String userCode,String passWord);
}

业务层接口实现

package com.zhang.service.user;

import com.zhang.dao.BaseDao;
import com.zhang.dao.user.UserDao;
import com.zhang.dao.user.UserDaoImpl;
import com.zhang.pojo.user;
import org.junit.Test;

import java.sql.Connection;
import java.sql.SQLException;

/**
 * @author zhanghengchao
 * @created 2021-08-28-9:07
 */
public class UserServiceImpl implements UserService{

    //业务层均会调用dao层,所以需要引用Dao层
    private UserDao userDao;
    public UserServiceImpl(){
        userDao = new UserDaoImpl();
    }


    @Override
    public user login(String userCode, String passWord) {
        Connection connection = null;
        user user = null;


        try {
            connection = BaseDao.getConnection();
            //通过业务层调用对应的具体的数据库操作
            user = userDao.getLoginUser(connection, userCode);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            BaseDao.closeResource(connection,null,null);
        }
        return user;
    }

    @Test
    public  void test(){
        UserServiceImpl userService = new UserServiceImpl();
        user admin = userService.login("admin", "123456");
        System.out.println(admin.getUserPassword());
    }
}

四、Servlet实现与注册

  • LoginServlet实现
package com.zhang.servlet.user;

import com.sun.javafx.image.BytePixelSetter;
import com.zhang.pojo.user;
import com.zhang.service.user.UserService;
import com.zhang.service.user.UserServiceImpl;
import com.zhang.util.Constants;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @author zhanghengchao
 * @created 2021-09-01-22:47
 */
public class LoginServlet extends HttpServlet {
    //Servlet 控制层调用业务层代码

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("进入了Servlet---------------Start");
        //获取前端的用户和密码
        String userCode = req.getParameter("userCode");
        String userPassword = req.getParameter("userPassword");

        //和数据库中的密码进行对比,调用业务层;
        UserService userService = new UserServiceImpl();
        user user = userService.login(userCode, userPassword);  //这一步已经将登录人查到了

        if(user != null){  //查有此人可以登录
                // 将用户的信息放到session中,以便以后继续使用
            req.getSession().setAttribute(Constants.USER_SESSION,user);
                //跳转到内部主页
            resp.sendRedirect("jsp/frame.jsp");
        } else{ // 查无此人,无法登录,转回登录页面,提示用户
            req.setAttribute("error","用户名或密码不正确");
            req.getRequestDispatcher("login.jsp").forward(req,resp);
        }
    }

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

  • Servlet注册
    <!--     注册Servlet-->
    <servlet>
        <servlet-name>LoginServlet</servlet-name>
        <servlet-class>com.zhang.servlet.user.LoginServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>LoginServlet</servlet-name>
        <url-pattern>/login.do</url-pattern>
    </servlet-mapping>

五、测试能不登录

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值