


mybatis-config配置信息
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!--起别名--> <typeAliases> <package name="com.itheima.pojo"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql:///db1?useSSL=false&useServerPrepStmts=true"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <mappers> <!--扫描mapper--> <package name="com.itheima.mapper"/> </mappers></configuration>
package com.itheima.web.reponse;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.*;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 { // 接收用户名和密码 // getParameter是根据 username所对应的键,获取该值 (就是获取用户名username所填入的值) String username = request.getParameter("username"); String password = request.getParameter("password"); // 2. 调用MyBatis完成查询 // 2.1 获取SqlSessionFactory对象 (去官网查,不要记 改路径即可) String resource = "mybatis-config.xml"; // 在resources目录的下面,直接写名字即可 InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 2.2 获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); // 2.3 获取Mapper 映射对象 -- 找到映射接口,然后.class即可获取该对象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 2.4 调用方法映射对象的查询(select)方法 来查询用户名密码 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); }}
package com.itheima.web.reponse;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.*;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. 调用MyBatis完成查询 // 2.1 获取SqlSessionFactory对象 (去官网查,不要记 改路径即可) String resource = "mybatis-config.xml"; // 在resources目录的下面,直接写名字即可 InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); // 2.2 获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(); // 2.3 获取Mapper 映射对象 -- 找到映射接口,然后.class即可获取该对象 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); // 2.4 调用方法 // 查询是否存在该username 对象 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"); // 这里没有给对象名,但是还是创建了输出流对象(getWrite),然后使用其write方法 response.getWriter().write("用户名已经存在"); } } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }}
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>欢迎注册</title> <link href="css/register.css" rel="stylesheet"> </head> <body> <div class="form-div"> <div class="reg-content"> <h1>欢迎注册</h1> <span>已有帐号?</span> <a href="login.html">登录</a> </div> <form id="reg-form" action="/request-demo/registerServlet" method="post"> <table> <tr> <td>用户名</td> <td class="inputs"> <input name="username" type="text" id="username"> <br> <span id="username_err" class="err_msg" style="display: none">用户名不太受欢迎</span> </td> </tr> <tr> <td>密码</td> <td class="inputs"> <input name="password" type="password" id="password"> <br> <span id="password_err" class="err_msg" style="display: none">密码格式有误</span> </td> </tr> </table> <div class="buttons"> <!-- 一点击按钮submit提交按钮,就能提交到from表单的action那个目录中去 --> <input value="注 册" type="submit" id="reg_btn"> </div> <br class="clear"> </form> </div> </body></html>
<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8"> <title>login</title> <link href="css/login.css" rel="stylesheet"> </head> <body> <div id="loginDiv"> <!-- 由于是表单,所以要设置虚拟目录(加模块名) action是将表单提交到哪里 --> <form action="/request-demo/loginServlet" method="post" id="form"> <h1 id="loginMsg">LOGIN IN</h1> <p>Username:<input id="username" name="username" type="text"></p> <p>Password:<input id="password" name="password" type="password"></p> <div id="subDiv"> <input type="submit" class="button" value="login up"> <input type="reset" class="button" value="reset"> <a href="register.html">没有账号?点击注册</a> </div> </form> </div> </body></html>