Request&Response案例

04-06 1451阅读

文章目录

  • 一、用户登录
    • 1、环境准备
      • 数据库准备
      • 导入MyBatis坐标,MySQL驱动坐标
      • mybatis-config.xml准备
      • UserMapper.xml
      • 2、流程说明
        • UserMapper接口
        • https://blog.csdn.net/rch041126/article/details/login.html
        • LoginServlet
        • 二、用户注册
          • https://blog.csdn.net/rch041126/article/details/register.html
          • RegisterServlet

            一、用户登录

            Request&Response案例

            1、环境准备

            Request&Response案例

            数据库准备

            create database db1;
            -- 创建用户表
            CREATE TABLE tb_user(
                                    id int primary key auto_increment,
                                    username varchar(20) unique,
                                    password varchar(32)
            );
            -- 添加数据
            INSERT INTO tb_user(username,password) values('zhangsan','123'),('lisi','234');
            SELECT * FROM tb_user;
            

            导入MyBatis坐标,MySQL驱动坐标

                    
                        org.mybatis
                        mybatis
                        3.5.5
                    
                    
                        mysql
                        mysql-connector-java
                        5.1.34
                    
            

            mybatis-config.xml准备

            
            
                
                
                    
                
                
                    
                        
                        
                            
                            
                            
                            
                        
                    
                
                
                    
                    
                
            
            

            UserMapper.xml

            
            
            
            

            2、流程说明

            Request&Response案例

            UserMapper接口

            package com.itheima.mapper;
            import com.itheima.pojo.User;
            import org.apache.ibatis.annotations.Insert;
            import org.apache.ibatis.annotations.Param;
            import org.apache.ibatis.annotations.Select;
            public interface UserMapper {
                /**
                 * 根据用户名和密码查询用户对象
                 * @param username
                 * @param password
                 * @return
                 */
                @Select("select * from tb_user where username = #{username} and password = #{password}")
                User select(@Param("username") String username,@Param("password")  String password);
                /**
                 * 根据用户名查询用户对象
                 * @param username
                 * @return
                 */
                @Select("select * from tb_user where username = #{username}")
                User selectByUsername(String username);
                /**
                 * 添加用户
                 * @param user
                 */
                @Insert("insert into tb_user values(null,#{username},#{password})")
                void add(User user);
            }
            

            https://blog.csdn.net/rch041126/article/details/login.html

            
            
                
                login
                
            
            
            

            LOGIN IN

            Username:

            Password:

            LoginServlet

            package com.itheima.web;
            import com.itheima.mapper.UserMapper;
            import com.itheima.pojo.User;
            import com.itheima.util.SqlSessionFactoryUtils;
            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 javax.servlet.*;
            import javax.servlet.http.*;
            import javax.servlet.annotation.*;
            import java.io.IOException;
            import java.io.InputStream;
            import java.io.PrintWriter;
            @WebServlet("/loginServlet")
            public class LoginServlet extends HttpServlet {
                @Override
                protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    //1. 接收用户名和密码
                    String username = request.getParameter("username");
                    String password = request.getParameter("password");
                    //2. 调用MyBatis完成查询
                    //2.1 获取SqlSessionFactory对象
                   /* String resource = "mybatis-config.xml";
                    InputStream inputStream = Resources.getResourceAsStream(resource);
                    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);*/
                    SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
                    //2.2 获取SqlSession对象
                    SqlSession sqlSession = sqlSessionFactory.openSession();
                    //2.3 获取Mapper
                    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
                    //2.4 调用方法
                    User user = userMapper.select(username, password);
                    //2.5 释放资源
                    sqlSession.close();
                    //获取字符输出流,并设置content type
                    response.setContentType("text/html;charset=utf-8");
                    PrintWriter writer = response.getWriter();
                    //3. 判断user释放为null
                    if(user != null){
                        // 登陆成功
                        writer.write("登陆成功");
                    }else {
                        // 登陆失败
                        writer.write("登陆失败");
                    }
                }
                @Override
                protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    this.doGet(request, response);
                }
            }
            

            二、用户注册

            Request&Response案例

            https://blog.csdn.net/rch041126/article/details/register.html

            
            
                
                欢迎注册
                
            
            
            

            欢迎注册

            已有帐号? 登录
            用户名
            密码

            RegisterServlet

            package com.itheima.web;
            import com.itheima.mapper.UserMapper;
            import com.itheima.pojo.User;
            import com.itheima.util.SqlSessionFactoryUtils;
            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 javax.servlet.*;
            import javax.servlet.http.*;
            import javax.servlet.annotation.*;
            import java.io.IOException;
            import java.io.InputStream;
            @WebServlet("/registerServlet")
            public class RegisterServlet extends HttpServlet {
                @Override
                protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    //1. 接收用户数据
                    String username = request.getParameter("username");
                    String password = request.getParameter("password");
                    //封装用户对象
                    User user = new User();
                    user.setUsername(username);
                    user.setPassword(password);
                    //2. 调用mapper 根据用户名查询用户对象
                    //2.1 获取SqlSessionFactory对象
                   /* String resource = "mybatis-config.xml";
                    InputStream inputStream = Resources.getResourceAsStream(resource);
                    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);*/
                    SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();
                    //2.2 获取SqlSession对象
                    SqlSession sqlSession = sqlSessionFactory.openSession();
                    //2.3 获取Mapper
                    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
                    //2.4 调用方法
                    User u = userMapper.selectByUsername(username);
                    //3. 判断用户对象释放为null
                    if( u == null){
                        // 用户名不存在,添加用户
                        userMapper.add(user);
                        // 提交事务
                        sqlSession.commit();
                        // 释放资源
                        sqlSession.close();
                    }else {
                        // 用户名存在,给出提示信息
                        response.setContentType("text/html;charset=utf-8");
                        response.getWriter().write("用户名已存在");
                    }
                }
                @Override
                protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    this.doGet(request, response);
                }
            }
            
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]