学完ssm框架后的入门案例一:注册登录功能.如果登录页面觉得low,自己可以使用我写好的登录页面,具体效果页面在下面.
1.运行环境:
- jdk1.8
- Tomcat 8.5
- IDEA
- MAVEN
- MYSQL
2.目录结构

red.html和test包与此项目无关,懒得删了.
3. 配置文件
applicationContext.xml
-
<?xml version=
"1.0" encoding=
"UTF-8"?>
-
<beans xmlns=
"http://www.springframework.org/schema/beans"
-
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
-
xmlns:context=
"http://www.springframework.org/schema/context"
-
xmlns:aop=
"http://www.springframework.org/schema/aop"
-
xmlns:tx=
"http://www.springframework.org/schema/tx"
-
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
-
http://www.springframework.org/schema/beans/spring-beans.xsd
-
http://www.springframework.org/schema/context
-
http://www.springframework.org/schema/context/spring-context.xsd
-
http://www.springframework.org/schema/aop
-
http://www.springframework.org/schema/aop/spring-aop.xsd
-
http://www.springframework.org/schema/tx
-
http://www.springframework.org/schema/tx/spring-tx.xsd">
-
-
-
-
<!--开启注解扫描,仅不扫描Controller-->
-
<context:component-scan base-
package=
"it.cast">
-
<context:exclude-filter type=
"annotation" expression=
"org.springframework.stereotype.Controller"/>
-
</context:component-scan>
-
-
-
<!--spring整合mybatis框架-->
-
<!--配置连接池-->
-
<bean id=
"dataSource"
class=
"com.mchange.v2.c3p0.ComboPooledDataSource">
-
<property name=
"driverClass" value=
"com.mysql.jdbc.Driver"/>
-
<property name=
"jdbcUrl" value=
"jdbc:mysql:///ssm"/>
-
<property name=
"user" value=
"root"/>
-
<property name=
"password" value=
"123456"/>
-
</bean>
-
-
-
-
-
<!--配置sqlsessionfactory工厂-->
-
<bean id=
"sqlSessionFactoryBean"
class=
"org.mybatis.spring.SqlSessionFactoryBean">
-
<property name=
"dataSource" ref=
"dataSource"/>
-
</bean>
-
<!--配置StudentDao接口所在包-->
-
-
<bean id=
"mapperScanner"
class=
"org.mybatis.spring.mapper.MapperScannerConfigurer">
-
<property name=
"basePackage" value=
"it.cast.dao"/>
-
-
</bean>
-
-
<!--配置声明式事务管理-->
-
<!--配置事务管理-->
-
<bean id=
"transactionManager "
class=
"org.springframework.jdbc.datasource.DataSourceTransactionManager">
-
<property name=
"dataSource" ref=
"dataSource"></property>
-
</bean>
-
<!--配置事务通知-->
-
<tx:advice id=
"txAdvice" transaction-manager=
"transactionManager " >
-
<tx:attributes>
-
<!--从这一点设置的时间点开始(时间点a)到这个事务结束的过程中,其他事务所提交的数据,该事务将看不见!(查询中不会出现别人在时间点a之后提交的数据)-->
-
<tx:method name=
"find*" propagation=
"SUPPORTS" read-only=
"true"/>
-
<tx:method name=
"select*" propagation=
"SUPPORTS" read-only=
"true"/>
-
-
-
<tx:method name=
"*" isolation=
"DEFAULT"/>
-
</tx:attributes>
-
</tx:advice>
-
<!--增强aop-->
-
<aop:config>
-
<aop:advisor advice-ref=
"txAdvice" pointcut=
"execution(* it.cast.service.*ServiceImpl.*(..))"/>
-
-
</aop:config>
-
</beans>
log4j.properties
-
# Global logging configuration
-
log4j.rootLogger=DEBUG, stdout
-
# Console output...
-
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
-
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
springmvc.xml
-
<?xml version="1.0" encoding="UTF-8"?>
-
<beans xmlns="http://www.springframework.org/schema/beans"
-
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
-
xmlns:context=
"http://www.springframework.org/schema/context"
-
xmlns:mvc=
"http://www.springframework.org/schema/mvc"
-
xsi:schemaLocation=
"http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
-
<!--开启注解扫描,只扫描Controller-->
-
<context:component-scan base-package="it.cast">
-
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-
</context:component-scan>
-
-
-
<!--配置视图解析器-->
-
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
-
<property name="prefix" value="/WEB-INF/pages/"/>
-
<property name="suffix" value=".jsp"/>
-
-
</bean>
-
-
-
<!--静态资源过滤-->
-
<mvc:resources mapping="/css/" location="css/**"/>
-
<mvc:resources mapping="/images/" location="images/**"/>
-
<mvc:resources mapping="/js/" location="js/**"/>
-
-
-
<!--开启springmvc框架支持-->
-
<mvc:annotation-driven/>
-
-
-
</beans>
web.xml
-
<!DOCTYPE web-app PUBLIC
-
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-
"http://java.sun.com/dtd/web-app_2_3.dtd" >
-
-
<web-app>
-
<display-name>Archetype Created Web Application
</display-name>
-
-
<welcome-file-list>
-
<welcome-file>index.jsp
</welcome-file>
-
</welcome-file-list>
-
-
-
<servlet>
-
<servlet-name>dispatcherServlet
</servlet-name>
-
<servlet-class>org.springframework.web.servlet.DispatcherServlet
</servlet-class>
-
<init-param>
-
<!--记载springmvc配置文件-->
-
<param-name>contextConfigLocation
</param-name>
-
<param-value>classpath:springmvc.xml
</param-value>
-
</init-param>
-
<!--启动服务器,创建该servlet-->
-
<load-on-startup>1
</load-on-startup>
-
-
</servlet>
-
-
<servlet-mapping>
-
<servlet-name>dispatcherServlet
</servlet-name>
-
<url-pattern>/
</url-pattern>
-
</servlet-mapping>
-
<!--监听器-->
-
<listener>
-
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
-
</listener>
-
<!--加载spring配置文件-->
-
<context-param>
-
<param-name>contextConfigLocation
</param-name>
-
<param-value>classpath:applicationContext.xml
</param-value>
-
</context-param>
-
-
-
<!--解决中文乱码-->
-
<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>
-
pom.xml
-
<?xml version="1.0" encoding="UTF-8"?>
-
-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
<modelVersion>4.0.0
</modelVersion>
-
-
<groupId>cn.abc
</groupId>
-
<artifactId>example-ssm
</artifactId>
-
<version>1.0-SNAPSHOT
</version>
-
<packaging>war
</packaging>
-
-
<name>example-ssm Maven Webapp
</name>
-
<!-- FIXME change it to the project's website -->
-
<url>http://www.example.com
</url>
-
<properties>
-
<project.build.sourceEncoding>UTF-8
</project.build.sourceEncoding>
-
<maven.compiler.source>1.8
</maven.compiler.source>
-
<maven.compiler.target>1.8
</maven.compiler.target>
-
<spring.version>5.0.2.RELEASE
</spring.version>
-
<slf4j.version>1.6.6
</slf4j.version>
-
<log4j.version>1.2.12
</log4j.version>
-
<mysql.version>5.1.6
</mysql.version>
-
<mybatis.version>3.4.5
</mybatis.version>
-
</properties>
-
-
<dependencies>
-
<!-- spring -->
-
<dependency>
-
<groupId>org.aspectj
</groupId>
-
<artifactId>aspectjweaver
</artifactId>
-
<version>1.6.8
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-aop
</artifactId>
-
<version>${spring.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-context
</artifactId>
-
<version>${spring.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-web
</artifactId>
-
<version>${spring.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-webmvc
</artifactId>
-
<version>${spring.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-test
</artifactId>
-
<version>${spring.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-tx
</artifactId>
-
<version>${spring.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.springframework
</groupId>
-
<artifactId>spring-jdbc
</artifactId>
-
<version>${spring.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>junit
</groupId>
-
<artifactId>junit
</artifactId>
-
<version>4.12
</version>
-
<scope>compile
</scope>
-
</dependency>
-
-
<dependency>
-
<groupId>mysql
</groupId>
-
<artifactId>mysql-connector-java
</artifactId>
-
<version>${mysql.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>javax.servlet
</groupId>
-
<artifactId>servlet-api
</artifactId>
-
<version>2.5
</version>
-
<scope>provided
</scope>
-
</dependency>
-
-
<dependency>
-
<groupId>javax.servlet.jsp
</groupId>
-
<artifactId>jsp-api
</artifactId>
-
<version>2.0
</version>
-
<scope>provided
</scope>
-
</dependency>
-
-
<dependency>
-
<groupId>jstl
</groupId>
-
<artifactId>jstl
</artifactId>
-
<version>1.2
</version>
-
</dependency>
-
-
<!-- log start -->
-
<dependency>
-
<groupId>log4j
</groupId>
-
<artifactId>log4j
</artifactId>
-
<version>${log4j.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.slf4j
</groupId>
-
<artifactId>slf4j-api
</artifactId>
-
<version>${slf4j.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.slf4j
</groupId>
-
<artifactId>slf4j-log4j12
</artifactId>
-
<version>${slf4j.version}
</version>
-
</dependency>
-
-
<!-- log end -->
-
<dependency>
-
<groupId>org.mybatis
</groupId>
-
<artifactId>mybatis
</artifactId>
-
<version>${mybatis.version}
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>org.mybatis
</groupId>
-
<artifactId>mybatis-spring
</artifactId>
-
<version>1.3.0
</version>
-
</dependency>
-
-
<dependency>
-
<groupId>c3p0
</groupId>
-
<artifactId>c3p0
</artifactId>
-
<version>0.9.1.2
</version>
-
<type>jar
</type>
-
<scope>compile
</scope>
-
</dependency>
-
</dependencies>
-
-
-
<build>
-
<finalName>example-ssm
</finalName>
-
<pluginManagement>
<!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
-
<plugins>
-
<plugin>
-
<artifactId>maven-clean-plugin
</artifactId>
-
<version>3.1.0
</version>
-
</plugin>
-
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
-
<plugin>
-
<artifactId>maven-resources-plugin
</artifactId>
-
<version>3.0.2
</version>
-
</plugin>
-
<plugin>
-
<artifactId>maven-compiler-plugin
</artifactId>
-
<version>3.8.0
</version>
-
</plugin>
-
<plugin>
-
<artifactId>maven-surefire-plugin
</artifactId>
-
<version>2.22.1
</version>
-
</plugin>
-
<plugin>
-
<artifactId>maven-war-plugin
</artifactId>
-
<version>3.2.2
</version>
-
</plugin>
-
<plugin>
-
<artifactId>maven-install-plugin
</artifactId>
-
<version>2.5.2
</version>
-
</plugin>
-
<plugin>
-
<artifactId>maven-deploy-plugin
</artifactId>
-
<version>2.8.2
</version>
-
</plugin>
-
</plugins>
-
</pluginManagement>
-
</build>
-
</project>
4.数据库

5.详细代码
User.java
-
package it.cast.pojo;
-
-
public
class User {
-
private
int id;
-
private String username;
-
private String password;
-
-
public int getId () {
-
return id;
-
}
-
-
public void setId ( int 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 +
'\'' +
-
'}';
-
}
-
}
dao层:对与简单的增删改查用注解比较方便
UserDao.java
-
package it.cast.dao;
-
-
import it.cast.pojo.User;
-
import org.apache.ibatis.annotations.Insert;
-
import org.apache.ibatis.annotations.Select;
-
-
public
interface UserDao {
-
-
-
-
//添加用户
-
@Insert(
"insert into user(username,password) values(#{username},#{password})")
-
public int insert ( User user );
-
-
//查询用户
-
@Select(
"select * from user where username=#{username}")
-
public User finbyUsername ( String username );
-
-
-
}
UserService.java
-
package it.cast.service;
-
-
import it.cast.pojo.User;
-
-
public
interface UserService {
-
-
//添加用户
-
public void add(User user);
-
-
-
//校验用户名和密码
-
public User checkUsernameAndPassword(String username,String password);
-
-
//判断用户是否存在
-
public boolean IsUsername( String username);
-
-
-
}
UserServiceImpl.java
-
package it.cast.service;
-
-
import it.cast.dao.UserDao;
-
import it.cast.pojo.User;
-
import org.springframework.beans.factory.annotation.Autowired;
-
import org.springframework.stereotype.Service;
-
-
@Service
-
public
class UserServiceImpl implements UserService {
-
@Autowired
-
private UserDao userDao;
-
-
//添加用户
-
@Override
-
public void add ( User user ) {
-
userDao.insert(user);
-
}
-
//校验用户名和密码
-
@Override
-
public User checkUsernameAndPassword ( String username, String password ) {
-
User user = userDao.finbyUsername(username);
-
if (user !=
null && user.getPassword().equals(password)) {
-
return user;
-
}
-
-
return
null;
-
}
-
-
//校验用户名是否存在
-
@Override
-
public boolean IsUsername ( String username ) {
-
-
User user = userDao.finbyUsername(username);
-
if (user ==
null) {
//用户不存在
-
return
true;
-
}
-
return
false;
-
-
}
-
}
UserController.java
-
package it.cast.controller;
-
-
import it.cast.pojo.User;
-
import it.cast.service.UserService;
-
import org.springframework.beans.factory.
annotation.Autowired;
-
import org.springframework.stereotype.Controller;
-
import org.springframework.ui.Model;
-
import org.springframework.web.bind.
annotation.RequestMapping;
-
-
-
-
-
@Controller
-
-
-
public
class UserController {
-
@Autowired
-
private UserService userService;
-
//登录
-
@RequestMapping("/login")
-
public String login ( String username, String password) {
-
User user = userService.checkUsernameAndPassword(username, password);
-
if (user !=
null) {
-
-
-
return
"success";
-
-
-
}
-
return
"error";
-
}
-
//注册
-
@RequestMapping("/register")
-
public String register ( String username, String password ) {
-
Boolean user = userService.IsUsername(username);
-
if (user ==
true) {
//true:用户不存在
-
User user2 = new User();
-
user2.setUsername(username);
-
user2.setPassword(password);
-
userService.add(user2);
-
return
"success";
-
}
-
return
"error";
-
}
-
}
index.jsp
-
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-
<br>
-
<br>
-
<h2>Hello World!
</h2>
-
<a href="/findAll">入门程序
</a>
</br>
-
<form action="/login" method="post">
-
-
用户:
<input type="text" name="username">
<br/>
-
密码:
<input type="text" name="password">
<br/>
-
<input type="submit" value="登录">
<br/>
-
</form>
-
-
-
<form action="/register" method="post">
-
-
用户:
<input type="text" name="username">
<br/>
-
密码:
<input type="text" name="password">
<br/>
-
<input type="submit" value="注册">
<br/>
-
</form>
-
-
</body>
-
</html>
error.jsp
-
<%@ page contentType=
"text/html;charset=UTF-8" language=
"java" %>
-
<html>
-
<head>
-
<title>Title
</title>
-
</head>
-
<body>
-
失败
-
</body>
-
</html>
success.jsp
-
<%@ page contentType=
"text/html;charset=UTF-8" language=
"java" %>
-
<html>
-
<head>
-
<title>Title
</title>
-
</head>
-
<body>
-
成功
-
</body>
-
</html>

转载:https://blog.csdn.net/qq_37068474/article/details/104843983
查看评论