1.完成用户登录功能。
2.完成注册功能。
3.主体利用Maven导入java中的jar包,使用Servlet实现前后端交互,使用mybatis以及注解,mysql进行数据保存,Tomcat服务器进行开发。
效果图
项目结构
代码
mapper(相对应注解)
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 usernmae * @return */ @Select("select * from tb_user where username=#{username}") User selectByUsername(String usernmae); /** * 判断完是否存在后不存在再进行注册添加用户 * @param user */ @Insert("insert into tb_user values(null,#{username},#{password})") void add(User user); }
pojo(实体类)
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 + '\'' + '}'; } }
3.util(工具类)
package com.itheima.util; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; /** * * 工具类避免资源浪费多次加载 */ public class SqlSessionFactoryUtils { private static SqlSessionFactory sqlSessionFactory; static { String resource = "mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); } catch (IOException e) { e.printStackTrace(); } sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } public static SqlSessionFactory getSqlSessionFactory() { return sqlSessionFactory; } }
4.web(Servlet)
1.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完成查询 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 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); } }
2.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); // 调用Mapper,根据用户名来查询是否 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); if (u == null){ // 用户名不存在 userMapper.add(user); // 提交事务 sqlSession.commit(); response.setContentType("text/html;charset=utf-8"); response.getWriter().write("注册成功"); } else{ // 用户名不存在 response.setContentType("text/html;charset=utf-8"); response.getWriter().write("用户已存在,注册失败"); } // 释放资源 sqlSession.close(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
5.html
1.login.html
login
2.register.html
欢迎注册 欢迎注册
已有帐号? 登录
总结
此登陆注册界面使用Maven,Servlet,Mybatis,Mysql,Tomcat技术以及结合了html,css界面设置实现了前后端交互,将前端界面输入的数据传入到后端java中进行处理并将数据保存在mysql数据库之中,是个很不错的练手小项目,新入门小伙伴可以一起尝试。
基本代码如上所示,以上均为手敲,如需所有代码请私信我,谢谢!!!