700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > SSM框架实现登录注册功能

SSM框架实现登录注册功能

时间:2023-01-01 11:03:23

相关推荐

SSM框架实现登录注册功能

刚刚写出来的SSM登录注册案例,网上随便翻一下都有 ,本篇直接上手,使用Maven工程搭建一个简单的SSM框架实现简单的登录注册,验证重名功能。

目录

项目结构图

持久层相关配置文件 applicationContext-dao.xml

applicationContext-service.xml

jdbc.properties

spring-mvc.xml

web.xml

1.先写一个User.java

2.写一个接口UserMapper.java

3.在写一个UserMapper.xml与之相关联

4.接下来就是Service层了,先写一个接口:UserService.java,内容与UserMapper.java一样,这里就不再展示了。

5.然后写一个类实现UserService.java,代码比较简单,不做过多解释,大家不要忘了要给给它标记@Service

UserController.java

登录页面 log.jsp

登录成功和失败页面 logok.jsp 和 logno.jsp

最后就是注册页面了 reg.jsp

注册成功和失败页面 regok.jsp 和regno.jsp

在数据库中新建user表:

项目结构图

有几个主要的配置文件,先了解下每个配置文件的作用。

1. web.xml:当服务启动时首先会去加载web.xml这个资源文件,里面包括了对前端控制器、乱码问题等配置。

2.applicatonContext.xml : 一般配置数据源,事物,注解 等。

在这里我使用的是applicatonContext-*.xml的形式将DAO层、Service层、分开配置,这样便于管理

分别为applicatonContext-dao.xml、applicatonContext-service.xml、

分开配置时,需要在web.xml中配置上下文位置

3.springmvc.xml: 里面配置的是控制层的 ,如视图解析器静态资源、配置注解驱动 。

持久层相关配置文件 applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"><!--引入属性文件--><context:property-placeholder location="classpath:jdbc.properties"/><!--数据源--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${mysql.driver}"/><property name="url" value="${mysql.url}"/><property name="username" value="${mysql.username}"/><property name="password" value="${mysql.password}"/></bean><!--创建SqlSessionFactory对象--><bean id="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean"><!--数据源--><property name="dataSource" ref="dataSource"/><property name="typeAliasesPackage" value="com.sq.pojo"/></bean><!--扫描Dao包,创建动态代理对象, 会自动存储到spring IOC容器中--><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!--指定要扫描的dao的包--><property name="basePackage" value="com.sq.dao"/></bean></beans>

applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/context/schema/context/spring-context.xsd"><!--开启注解扫描, 扫描包--><context:component-scan base-package="com.sq.service"/></beans>

jdbc.properties

mysql.driver=com.mysql.cj.jdbc.Drivermysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=falsemysql.username=rootmysql.password=root

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:context="/schema/context"xmlns:mvc="/schema/mvc"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans.xsd/schema/mvc/schema/mvc/spring-mvc.xsd/schema/context/schema/context/spring-context.xsd"><!-- 配置要扫描的包 --><context:component-scan base-package="com.sq.controller"/><!--静态资源代码块--><!--<mvc:resources mapping="/statics/**" location="/statics/"/>--><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean><!-- 配置注解驱动 --><mvc:annotation-driven/></beans>

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd" version="3.0"><!-- 配置 Spring MVC 的前端控制器 --><welcome-file-list><!--欢迎页面 项目运行之后 没有指定路径的情况 会跳转--><welcome-file>index.jsp</welcome-file><welcome-file>index.html</welcome-file></welcome-file-list><!--配置文件加载--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:application-*.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><servlet><!--servlet-name 名称--><servlet-name>DispatcherServlet</servlet-name><!--路径 class--><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置初始化参数,用于读取 Spring MVC 的配置文件 --><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring-mvc.xml</param-value></init-param><!-- 应用加载时创建 优先级别 1最高级别--><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>DispatcherServlet</servlet-name><url-pattern>/</url-pattern> <!--路径 什么情况下会开启--></servlet-mapping><filter><filter-name>CharacterEncodingFilter</filter-name><filter-class> org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>CharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping></web-app>

配置文件写好了,接下来就开始写代码

先从实体类开始写:

1.先写一个User.java

package com.sq.pojo;public class User {private String username;private String userpwd;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUserpwd() {return userpwd;}public void setUserpwd(String userpwd) {this.userpwd = userpwd;}@Overridepublic String toString() {return "User [username=" + username + ", userpwd=" + userpwd + "]";}}

2.写一个接口UserMapper.java

package com.sq.dao;import com.sq.pojo.User;public interface UserMapper {//用户登录User findOne(User user);//用户注册int addOne(User user);//注册时的重名检测User checkReg(String username);}

3.在写一个UserMapper.xml与之相关联

<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE mapperPUBLIC "-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.sq.dao.UserMapper"><select id="findOne" parameterType="User" resultType="User">SELECT * FROM user where username=#{username} and userpwd=#{userpwd}</select><insert id="addOne" parameterType="User" >insert into user(username,userpwd) values(#{username},#{userpwd})</insert><select id="checkReg" resultType="User">select * from user where username=#{username}</select></mapper>

4.接下来就是Service层了,先写一个接口:UserService.java,内容与UserMapper.java一样,这里就不再展示了。

5.然后写一个类实现UserService.java,代码比较简单,不做过多解释,大家不要忘了要给给它标记@Service

package com.sq.service.Impl;import com.sq.service.UserService;import org.springframework.stereotype.Service;import com.sq.dao.UserMapper;import com.sq.pojo.User;import javax.annotation.Resource;@Servicepublic class UserServiceImpl implements UserService {@Resourceprivate UserMapper userMapper;@Overridepublic User findOne(User user) {return userMapper.findOne(user);}@Overridepublic int addOne(User user) {return userMapper.addOne(user);}@Overridepublic User checkReg(String username) {return userMapper.checkReg(username);}}

6.最后就是Controller层了,Controller层的代码主要是调用Service层实现的方法,实现一些操作,并与前端进行交互。

UserController.java

package com.sq.controller;import com.sq.pojo.User;import com.sq.service.UserService;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import javax.annotation.Resource;@Controllerpublic class UserController {@Resourceprivate UserService userService;@RequestMapping("/golog")public String log(User user, Model model) {User u = userService.findOne(user);model.addAttribute("user", u);if (u != null) {return "logok";} elsereturn "logno";}@RequestMapping("/goreg")public String reg(User user) {User u = userService.checkReg(user.getUsername());if (u == null) {userService.addOne(user);return "regok";}return "regno";}}

登录页面 log.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>用户登录</title><style type="text/css">div {width: 300px;height: 200px;margin-left: auto;margin-right: auto;}</style></head><body><div><form action="golog" method="post"><table border="1"><tr><td>用户名:</td><td><input type="text" name="username"></td></tr><tr><td>密&emsp;码:</td><td><input type="password" name="userpwd"></td></tr><tr><td colspan="2" style="text-align: center;"><inputtype="submit" value="登录"></td></tr><tr><td colspan="2" style="text-align: center;"><ahref="http://localhost:8080/SpringMvc12_war/reg">还没有账号?点此注册</a></td></tr></table></form></div></body></html>

登录成功和失败页面 logok.jsp 和 logno.jsp

<!-- logok.jsp --><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body ><h1>如果你能看见我,说明你成功了</h1><hr>您的用户名是:${user.username}<br>您的密码是:${user.userpwd}<br></body></html><!-- logno.jsp --><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><h1>用户名或者密码错误</h1></body></html>

最后就是注册页面了 reg.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>用户注册</title><style type="text/css">div {width: 300px;height: 200px;margin-left: auto;margin-right: auto;}</style></head><body><div><form action="goreg" method="post"><table border="1"><tr><td>用户名:</td><td><input type="text" name="username" ></td></tr><tr><td>密&emsp;码:</td><td><input type="password" name="userpwd" ></td></tr><tr><td colspan="2" style="text-align: center;"><input type="submit" value="注册"></td></tr></table></form></div></body></html>

注册成功和失败页面 regok.jsp 和regno.jsp

<!-- regok.jsp --><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body ><h1>注册成功如果你能看见我,说明你成功了</h1><br><a href="log">点此返回登录界面</a></body></html><!-- regno.jsp --><%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title></head><body><h1>该用户名已被注册</h1></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。