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;}@Overridepublic 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 {@Overrideprotected 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获取MapperUserMapper userMapper = sqlSession.getMapper(UserMapper.class);//2.4 调用方法User user = userMapper.select(username, password);//2.5释放资源sqlSession.close();// 获取相对应的输出流 并设置contentresponse.setContentType("text/html;charset=utf-8");PrintWriter writer = response.getWriter();//3.判断user是否为nullif (user!=null){//登陆成功writer.write("登陆成功");}else {//登陆失败writer.write("登陆失败");}}@Overrideprotected 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 {@Overrideprotected 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获取MapperUserMapper 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();}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}}
5.html
1.login.html
login LOGIN IN
Username:
Password:
没有账号?点击注册
2.register.html
欢迎注册 欢迎注册
已有帐号? 登录用户名
用户名不太受欢迎密码
密码格式有误
总结
此登陆注册界面使用Maven,Servlet,Mybatis,Mysql,Tomcat技术以及结合了html,css界面设置实现了前后端交互,将前端界面输入的数据传入到后端java中进行处理并将数据保存在mysql数据库之中,是个很不错的练手小项目,新入门小伙伴可以一起尝试。
基本代码如上所示,以上均为手敲,如需所有代码请私信我,谢谢!!!