SpringMVC+mybaits+mysql实现简单的登录注册
来源:互联网 发布:淘宝 最贵的包子 编辑:程序博客网 时间:2024/06/01 18:56
小白心得,欢迎大神的点评和纠正错误,谢谢
通过学习,自己写的springMVC+mybaits+mysql实现的简单的登录和注册(第二篇),在刚学完springmvc之后,就直接开整,就个人认为springmvc中主要核心也就是控制器,前端控制器DispatcherServlet和自己创建的控制器。当然也有视图分解器和HandMaping,不过说实话,我感觉就个控制器用处贼大,完全替代了servlet。,完成视图转发。控制器还是非常好用的,简单的return一下就可以转发视图。下面贴一下我完的所有代码
mybaits映射文件
主配置文件其实都差不多,下面是映射配置文件:
<mapper namespace="com.toggery.dao.AdminDao"> <resultMap type="Admin" id="AdminResult"> <result column="username" property="username"/> <result column="password" property="password"/> <result column="email" property="email"/> </resultMap> <select id="login" parameterType="Admin" resultMap="AdminResult"> select * from admin where username=#{username} and password=#{password} </select> <select id="getUsername" parameterType="java.lang.String" resultMap="AdminResult"> select * from admin where username=#{username} </select> <insert id="register" parameterType="Admin"> insert into admin(username,password,email) values(#{username},#{password},#{email}) </insert></mapper>
web.xml配置文件
主要是关于springmvc配置文件的配置:
<!-- springmvc配置文件的配置 --> <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:config/springMVC-servlet.xml</param-value> </init-param> <!-- 因为servlet只有在访问才会创建实例,DispatcherServlet前端控制器,必须随程序启动就启动 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springMVC</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
###springMVC-servlet.xml配置文件
springmvc文件的配置,采用的注解的方式:
<!-- 注解配置 扫描该包下的所有的注解 --> <context:component-scan base-package="com.toggery.controller"></context:component-scan> <!-- 启用注解 --> <mvc:annotation-driven/> <!-- 处理静态资源,图片+js+css,无需springMVC过滤 --> <mvc:resources location="/img/" mapping="/img/**"/> <mvc:resources location="/css/" mapping="/css/**"/> <mvc:resources location="/js/" mapping="/js/**"/> <!-- 视图分解器,视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/" /> <property name="suffix" value=".jsp"></property> </bean>
获取session的工具类
mybaits获取session的工具类
private SqlSessionFactoryUtil(){} public static SqlSession getSqlSession(){ //读取主配置文件 Reader reader=null; try { reader = Resources.getResourceAsReader("config/Configuration.xml"); } catch (IOException e) { System.out.println("1111"+e.getMessage()); } //通过配置信息 创建sqlseession工厂 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); //获取sqlsession SqlSession sqlSession = sqlSessionFactory.openSession(); return sqlSession; }
方法的接口,实体类就没贴上来了…
主要是功能的接口
public interface AdminDao { //登录方法 public Admin login(String username,String password); //注册方法 public Admin register(Admin admin); //注册用户名判断是否存在 public Admin getUsername(String username);}
实现方法的service
实现方法的service,对密码搞MD5加密完一完,都是网上的就不贴了..
// 用户登录功能实现 public Admin login(String username, String password) { SqlSession session = SqlSessionFactoryUtil.getSqlSession(); Admin admin = new Admin(); // 将输入的两个值,封装到admin对象当中,进行业务逻辑判断 admin.setUsername(username); admin.setPassword(password); //执行查找操作 admin = session.selectOne("com.toggery.dao.AdminDao.login", admin); session.close(); // 返回一个对象,用于逻辑判断 return admin; } // 用户注册功能实现 public Admin register(Admin admin, HttpServletRequest request, HttpServletResponse response) { //接收文本框输入的值 String username = request.getParameter("username"); String password = request.getParameter("password"); String email = request.getParameter("email"); //用session存取用户名 request.getSession().setAttribute("username", username); //将所有的值封装到admin对象中,用于业务逻辑执行 admin.setUsername(username); //对密码进行MD5加密。并存取到数据库当中,以MD5加密形式显示 admin.setPassword(EntrypMD5Util.generatePassword(password)); admin.setEmail(email); //执行添加操作 SqlSession session = SqlSessionFactoryUtil.getSqlSession(); session.insert("com.toggery.dao.AdminDao.register", admin); //提交事务,完成操作 session.commit(); session.close(); return admin; } // 判断用户名是否存在 public Admin getUsername(String username) { Admin admin = new Admin(); //执行查找操作 SqlSession session = SqlSessionFactoryUtil.getSqlSession(); AdminDao dao = session.getMapper(AdminDao.class); admin = dao.getUsername(username); session.close(); return admin; }}
控制器Controller
控制器才是这次的重点吧,用的是注解方式,一共三个,还有一个是注册时关于用户名是否存在的判断,用的js的Ajax判断的..
* * 登录功能控制器 */@Controller@RequestMapping("/login")public class LoginController { @RequestMapping("/admin") public ModelAndView login(@RequestParam("username") String username, @RequestParam("password") String password, HttpServletRequest request) { request.getSession().setAttribute("username", username); // 对文本输入的密码进行MD5加密,与数据库加密密码进行比较 Admin admin = new AdminService().login(username, EntrypMD5Util.generatePassword(password)); if (admin != null) { // 对象不为空,则表示用户名或密码正确 return new ModelAndView("home"); } // 用户名或密码不正确,跳转到失败视图 return new ModelAndView("error"); }}/* * 注册控制器 */@Controller@RequestMapping("/register")public class RegisterController { @RequestMapping("/admin") public ModelAndView register(Admin admin,HttpServletRequest request,HttpServletResponse response){ admin = new AdminService().register(admin,request,response); if (admin==null) { return new ModelAndView("error"); } return new ModelAndView("turning"); }}/* * 用户名判断控制器 */@Controller@RequestMapping("/username")public class ValidaNameController { @RequestMapping("/valida") public void valida(@RequestParam("username") String username,HttpServletRequest request,HttpServletResponse response) throws IOException{ //System.out.println(username); Admin admin = new AdminService().getUsername(username); if (admin==null) {//表示用户名不存在,可用 // System.out.println("yes"); //向页面传值,用Ajax完成逻辑判断 response.getWriter().write("yes"); }else {//表示用户名已经存在 //System.out.println("no"); response.getWriter().write("no"); } }}
相关的jsp界面主要代码
登录和注册的表单文本框没搞什么样式,就没贴了,贴一个注册时判断用户名是否存在的Ajax效果
<!-- Ajax实现用户名判断 --> <script type="text/javascript"> //1.获取xmlHttpRequest对象 function getxmlHttpRequest() { if(window.XMLHttpRequest){ return new XMLHttpRequest(); } } //2.文本框失去焦点触发函数 function inputRegister(txt) { xhr = getxmlHttpRequest();//创建xml对象 var username = txt.value;//获取文本的值 xhr.onreadystatechange = resultFunction;//创建回调函数 //初始化xml对象 xhr.open("GET","username/valida?username="+username,true); //发送请求 xhr.send(null); } //3.回调函数 function resultFunction(){ var s1 = document.getElementById("s1");//span标签,输出值 if(xhr.readyState == 4){ //表示完成请求 if(xhr.status == 200){ var data = xhr.responseText; if(data == "yes"){ s1.style.color = "green"; s1.innerHTML = "用户名可用" }else{ s1.style.color = "red"; s1.innerHTML = "用户名不可用" } } } } </script>
阅读全文
1 0
- SpringMVC+mybaits+mysql实现简单的登录注册
- 用springmvc实现简单的注册、登录功能
- JavaWeb + mySQL + Android 实现Android简单的注册登录
- Java+Tomcat+MySQL实现简单的网页注册和登录
- springmvc+mybaits的一个简单例子
- 实现简单登录注册
- 登录、注册中校验码的简单实现
- jsp实现的简单注册登录
- XMPP实现简单的登录注册功能
- PHP实现最简单的登录注册
- javaweb简单的登录注册功能实现
- JavaScript 注册登录页面的简单实现
- MFC简单的登录注册实现
- javaweb简单的登录注册功能实现
- javaweb简单的登录注册功能实现
- Servlet简单实现的注册登录功能
- javaweb简单的登录注册功能实现
- springMVC实现简单登录
- uml类图中的具体关系
- 了解 Spring Boot AutoConfiguration
- Android Permission check的一点认知更新
- 微信支付jsapi问号传参的问题
- POJ 1182
- SpringMVC+mybaits+mysql实现简单的登录注册
- 深入浅出数据结构C语言版(15)——优先队列(堆)
- Python|计蒜客——函数规律
- Android中关于GridView整体居中
- 焦大seo浅谈seo优化技巧有那些
- 最小生成树-kruskal 模板
- Android 关于arm64-v8a、armeabi-v7a、armeabi、x86下的so文件兼容问题
- MacOS 开发
- Day1