天天最新:手把手逐步解析Javaweb登录实例

2023-04-20 15:46:43 博客园


(资料图片仅供参考)

一、编写前端界面
            Document    
二、创建数据库数据表
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;
三、创建项目,编写实体类
package com.itheima.pojo;public class User {    private Integer id;    private String username;    private String password;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public String toString() {        return "User{" +                "id=" + id +                ", username="" + username + "\"" +                ", password="" + password + "\"" +                "}";    }}
四、导入mybatis,mysql驱动坐标
            org.mybatis            mybatis            3.5.5                            mysql            mysql-connector-java            5.1.38        
五、创建mybatis-config.xml核心配置文件,UserMapper.xml映射文件,UserMapper接口

resource目录下的核心配置文件

                                                                                                                                                                        

创建itheima目录下的mapper包的UserMapper接口

创建resource目录下的itheima目录下的mapper包的UserMapper.xml映射文件

六、补全代码UserMapper接口(此处用了注解的方式,所以没写映射文件)
package com.itheima.mapper;import com.itheima.pojo.User;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);}
html代码(补全表单跳转的servlet)
编写servlet
package com.itheima.web;import com.itheima.mapper.UserMapper;import com.itheima.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 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.io.InputStream;import java.io.PrintWriter;@WebServlet("/loginServlet")public class LoginServlet extends HttpServlet {    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        this.doGet(request, response);    }    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);        // 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. 判断uer是否为null        if (user != null){            //登录成功            writer.write("登录成功");        }else {            //登录失败            writer.write("登录失败");        }    }}

此时代码就可以正常运行了,需要注意的是,pom文件中一定要注意mysql的驱动是自己下载的驱动,如果是maven导入的驱动会报错。我在此处犯了两次错误,浪费了许多时间!

标签:

相关文章
最新发布
精彩图文
精彩推送

Copyright @  2015-2018 每日it网版权所有  备案号:浙ICP备2022016517号-15   联系邮箱:5 146 761 13 @qq.com