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

简单的用户登录与修改Servlet+mybatis+jsp

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简单的用户登录与修改Servlet+mybatis+jsp

用户登录:前端传账号密码器到后端,后端拿去与数据库中的的用户表匹配,若账号密码一致,则登录成功;

修改用户数据:前端传修改的数据以及id值给后端,后端拿到这些数据去操作数据库,id值是用来作唯一标识的。

展示效果

功能1:用户登录

账号密码错误时显示

 账号密码正确,登录成功,跳转到用户列表页。

功能2:点击修改,跳转到编辑页面并且回显数据

输入新的数据

 点提交后跳回用户列表页

代码:

1.用户登录

项目环境搭建

目录结构

pom.xml文件



  
  4.0.0  
  org.example  
  MybtaisCrud-master  
  1.0-SNAPSHOT  
  war
  
    
    
      mysql
      mysql-connector-java
      5.1.32
    

    
    
      org.mybatis
      mybatis
      3.5.5
    

    
    
      javax.servlet
      javax.servlet-api
      3.1.0
    

    
    
      javax.servlet.jsp
      jsp-api
      2.2
    

    
    
      jstl
      jstl
      1.2
    

   

mybatis配置文件




    
        
            
            
                
                
                
                
            
        
    
    
        
    

sql代码

CREATE TABLE t_user(
   id INT PRIMARY KEY AUTO_INCREMENT,
   username VARCHAr(25),
   PASSWORD VARCHAr(25)
);

 编码

首先从Servlet 开始,创建LoginServlet.java类

package com.wufagnag.web;


import com.wufagnag.pojo.User;
import com.wufagnag.service.UserService;

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.util.List;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {

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

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");

        UserService userService = new UserService();
        User user = userService.findUser(username,password);

        List users = userService.findAllUser();
        if (user != null){

            req.setAttribute("users",users);
            req.getRequestDispatcher("list.jsp").forward(req,resp);
        }else {
            req.setAttribute("loginMagess","用户名和密码不匹配");
            req.getRequestDispatcher("login.jsp").forward(req,resp);
        }
    }
}

接着是逻辑层的ServiceUser.java

package com.wufagnag.service;

import com.wufagnag.mapper.UserMapper;
import com.wufagnag.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.util.List;

public class UserService {

    public User findUser(String username, String password) throws IOException {
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.selectUser(username, password);
        return user;
    }

    public List findAllUser() throws IOException {
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.selectAllUser();
    }

}

UserMapper.java映射文件

package com.wufagnag.mapper;

import com.wufagnag.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

public interface UserMapper {

    @Select("select * from t_user where username = #{username} and password = #{password}")
    public User selectUser(@Param("username") String username, @Param("password") String password);

    @Select("select * from t_user")
    List selectAllUser();
   
}

前端login.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    登录


    
        

会员登录USER  LOGIN    ${loginMagess}

用户名:
密码:

前端页面list.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    用户列表


    
            
用户id 用户名称 操作
${user.id} ${user.username} 修改
删除

2.修改用户数据

首先是查用户原来的值

UserByIdServlet.java通过用户的id值从数据库中获取用户数据

package com.wufagnag.web;

import com.wufagnag.pojo.User;
import com.wufagnag.service.UserService;

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("/selectUserById")
public class UserByIdServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String queryString = req.getQueryString();
        String[] split = queryString.split("=");
        String id = split[1];
        User user = UserService.findUserById(id);
        req.setAttribute("user",user);
        req.getRequestDispatcher("updata.jsp").forward(req,resp);
    }

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

逻辑层的UserService.java中添加findUserById()方法,作用是根据前端传来的id值,获取数据库中与之对应的用户数据

public static User findUserById(String id) throws IOException {
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        return mapper.selectUserById(id);
}

UserMapper接口,添加根据id查用户的方法selectUserById()

@Select("select * from t_user where id = #{id}")
User selectUserById(String id);

即可查到用户原来的值

接下来是修改

创建UpdataServlet.java

package com.wufagnag.web;

import com.wufagnag.pojo.User;
import com.wufagnag.service.UserService;

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.util.List;

@WebServlet("/updata")
public class UpdataServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        String id = req.getParameter("id");
        UserService userService = new UserService();
        userService.updata(new User(Integer.valueOf(id),username,password));
        List users = userService.findAllUser();
        req.setAttribute("users",users);
        req.getRequestDispatcher("/list.jsp").forward(req,resp);
    }
}

UserService.java添加updata()方法

  public void updata(User user) throws IOException {
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis.xml"));
        SqlSession sqlSession = sqlSessionFactory.openSession(true);
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        mapper.updata(user);
  }

UserMapper接口添加updata()方法

 @Update("update t_user set username = #{username},password = #{password} where id = #{id}")
 void updata(User user);

即可完成修改功能

谢谢阅读!

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

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号