1.项目结构图: ## 运行截图:(前端代码会详细额外写)
2.entity 后者model层代码:User
package com. zr. entity;
public class User {
private String username;
private String userid;
private String password;
private String tel;
public String getUsername ( ) {
return username;
}
public void setUsername ( String username) {
this . username = username;
}
public String getUserid ( ) {
return userid;
}
public void setUserid ( String userid) {
this . userid = userid;
}
public String getPassword ( ) {
return password;
}
public void setPassword ( String password) {
this . password = password;
}
public String getTel ( ) {
return tel;
}
public void setTel ( String tel) {
this . tel = tel;
}
}
3.mapper层或者dao层 UserMapper.java
package com. zr. mapper;
import org. apache. ibatis. annotations. Param;
import com. zr. entity. User;
public interface UserMapper {
public User selectUser ( @Param ( "userid" ) String userid, @Param ( "username" ) String username, @Param ( "password" ) String password) ;
}
4.UserMapper.xml
<? xml version="1.0" encoding="UTF- 8"? >
<!DOCTYPE mapper
PUBLIC "- //mybatis.org//DTD Mapper 3.0//EN"
"http: //mybatis.org/dtd/mybatis- 3- mapper.dtd">
<mapper namespace="com.zr.mapper.UserMapper">
<resultMap id="BaseResultMap" type="com.zr.entity.User">
<id column="userid" jdbcType="VARCHAR" property="userid" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="password" jdbcType="VARCHAR" property="password" />
<result column="tel" jdbcType="VARCHAR" property="tel" />
</resultMap>
<sql id="Base_Column_List">
userid, username, password, tel
</sql>
<select id="selectUser" resultType="com.zr.entity.User">
select * from user where userid =
</select>
</mapper>
5.service层 UserService.java
package com. zr. service;
import com. zr. entity. User;
public interface UserService {
public User selectUser ( String userid, String username, String password) ;
}
6.serviceimpl层实现类 UserServiceImpl
package com. zr. serviceimpl;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Service;
import org. springframework. transaction. annotation. Transactional;
import com. zr. entity. User;
import com. zr. mapper. UserMapper;
import com. zr. service. UserService;
@Service
@Transactional
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
public User selectUser ( String userid, String username, String password) {
return userMapper. selectUser ( userid, username, password) ;
}
}
7.controller 层 UserController.java
package com. zr. controller;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Controller;
import org. springframework. web. bind. annotation. RequestMapping;
import org. springframework. web. bind. annotation. ResponseBody;
import com. zr. entity. User;
import com. zr. service. UserService;
@Controller
@RequestMapping ( "/user" )
public class UserController {
@Autowired
private UserService userService;
@RequestMapping ( "/user.action" )
public String goUser ( ) {
return "user" ;
}
@ResponseBody
@RequestMapping ( "/login.action" )
public User login ( String userid, String username, String password) {
System. out. println ( userid) ;
User user= userService. selectUser ( userid, username, password) ;
if ( user!= null) {
return user;
}
else {
return null;
}
}
}
8.spring.xml
<? xml version="1.0" encoding="UTF- 8"? >
<beans xmlns="http: //www.springframework.org/schema/beans"
xmlns: context="http: //www.springframework.org/schema/context"
xmlns: xsi="http: //www.w3.org/2001/XMLSchema- instance"
xmlns: mvc="http: //www.springframework.org/schema/mvc"
xsi: schemaLocation="
http: //www.springframework.org/schema/beans
http: //www.springframework.org/schema/beans/spring- beans- 3.0.xsd
http: //www.springframework.org/schema/context
http: //www.springframework.org/schema/context/spring- context- 3.0.xsd
http: //www.springframework.org/schema/mvc
http: //www.springframework.org/schema/mvc/spring- mvc- 3.2.xsd
"
>
<context: component- scan base- package="com.zr"/>
<mvc: annotation- driven />
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value> /WEB- INF/home/</value>
</property>
<property name="suffix">
<value> .jsp</value>
</property>
</bean>
</beans>
9.mybatis.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"
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- 4.3.xsd">
<!-- 自动扫描 - - >
<!-- <context:component-scan base-package="com.zr" /> -->
<!-- 引入配置文件 - - >
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:config.properties" />
</bean>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init- method="init" destroy- method="close">
<property name="url" value="${ url} " />
<property name="username" value="${ username} " />
<property name="password" value="${ password} " />
<!-- 初始化连接大小 - - >
<property name="initialSize" value="${initialSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${maxWait}"></property>
</bean>
<!-- spring和MyBatis整合,不需要mybatis的配置映射文件 - - >
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:com/zr/mapping/*.xml"></property>
</bean>
<!-- DAO接口所在包名,Spring会自动查找其下的类 - - >
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.zr.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
</beans>
10配置资源文件
driver=com.mysql.jdbc.Driver
url=jdbc: mysql: //127.0.0.1: 3306/ems? useUnicode=true&characterEncoding =UTF- 8
username=root
password=mysql
initialSize=10
maxActive=1000
maxWait=60000
11.pom.xml
<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/maven- v4_0_0.xsd">
<modelVersion> 4.0.0</modelVersion>
<groupId> com.zr</groupId>
<artifactId> ssm525</artifactId>
<packaging> war</packaging>
<version> 0.0.1- SNAPSHOT</version>
<name> ssm525 Maven Webapp</name>
<url> http: //maven.apache.org</url>
<properties>
<servlet.version> 4.0.1</servlet.version>
<spring.version> 5.2.5.RELEASE</spring.version>
<mybatis.version> 3.5.4</mybatis.version>
<mybatis- spring.version> 2.0.4</mybatis- spring.version>
<mysql.version> 5.1.48</mysql.version>
<druid.version> 1.1.22</druid.version>
<jackson.version> 2.10.3</jackson.version>
<project.build.sourceEncoding> UTF- 8</project.build.sourceEncoding>
<maven.compiler.encoding> UTF- 8</maven.compiler.encoding>
<java.version> 9</java.version>
<maven.compiler.source> 9</maven.compiler.source>
<maven.compiler.target> 9</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId> javax.servlet</groupId>
<artifactId> javax.servlet- api</artifactId>
<version> ${ servlet.version} </version>
</dependency>
<dependency>
<groupId> org.springframework</groupId>
<artifactId> spring- webmvc</artifactId>
<version> ${ spring.version} </version>
</dependency>
<dependency>
<groupId> org.springframework</groupId>
<artifactId> spring- jdbc</artifactId>
<version> ${ spring.version} </version>
</dependency>
<dependency>
<groupId> org.mybatis</groupId>
<artifactId> mybatis</artifactId>
<version> ${ mybatis.version} </version>
</dependency>
<dependency>
<groupId> org.mybatis</groupId>
<artifactId> mybatis- spring</artifactId>
<version> ${ mybatis- spring.version} </version>
</dependency>
<dependency>
<groupId> mysql</groupId>
<artifactId> mysql- connector- java</artifactId>
<version> ${ mysql.version} </version>
</dependency>
<dependency>
<groupId> com.alibaba</groupId>
<artifactId> druid</artifactId>
<version> ${ druid.version} </version>
</dependency>
<dependency>
<groupId> com.fasterxml.jackson.core</groupId>
<artifactId> jackson- databind</artifactId>
<version> ${ jackson.version} </version>
</dependency>
</dependencies>
<build>
<finalName> ssm525</finalName>
</build>
</project>
12.web.xml
<? xml version="1.0" encoding="UTF- 8"? >
<web- app xmlns: xsi="http: //www.w3.org/2001/XMLSchema- instance" xmlns="http: //xmlns.jcp.org/xml/ns/javaee" xsi: schemaLocation="http: //xmlns.jcp.org/xml/ns/javaee http: //xmlns.jcp.org/xml/ns/javaee/web- app_3_1.xsd" id="WebApp_ID" version="3.1">
<display- name> Archetype Created Web Application</display- name>
<!-- <context- param>
<param- name> contextConfigLocation</param- name>
<param- value> classpath: mybatis.xml</param- value>
</context- param> - - >
<!-- <filter>
<filter-name>encodingFilter</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>encodingFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping> -->
<servlet>
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml,classpath:mybatis.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>mvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
<!-- <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> -->
</web- app>
13.index.jsp
< % @ page language= "java" contentType= "text/html; charset=UTF-8" pageEncoding= "UTF-8" % >
< ! DOCTYPE html>
< html>
< head>
< meta charset= "UTF-8" >
< title> 登录< / title>
< link rel= "stylesheet" href= "css/index.css" >
< script type= "text/javascript" src= "js/jquery.js" > < / script>
< script type= "text/javascript" >
alert ( "作业:使用ajax方式做登录功能,如果成功,跳转到user.jsp" ) ;
function login ( ) {
$. ajax ( {
url: "user/login.action" ,
type: "get" ,
data: {
userid: $ ( "#userid" ) . val ( ) ,
username: $ ( "#username" ) . val ( ) ,
password: $ ( "#password" ) . val ( )
} ,
dataType: "json" ,
success: function ( d) {
if ( d!= null ) {
alert ( "欢迎" )
window. location. href= "user/user.action" ;
} else {
alert ( "登录失败" )
}
}
} ) ;
}
< / script>
< / head>
< body>
< div id= "content" >
< div id= "login_form" >
< div class = "login_title" >
欢迎登录智慧银行
< / div>
< div id= "login_content" >
< br>
< div> < img src= "img/user.png" class = "icon_btn" > < / div>
< input type= "text" id= "userid" placeholder= "请输入账号" name= "username" class = "text" / >
< br/ >
< div> < img src= "img/user.png" class = "icon_btn" > < / div>
< input type= "text" id= "username" placeholder= "请输入姓名" name= "password" class = "text" / >
< br/ >
< div> < img src= "img/password.png" class = "icon_btn" > < / div>
< input type= "password" id= "password" placeholder= "请输入密码" name= "password" class = "text" / >
< br/ >
< div id= "login_passwd" >
< a href= "#" > 忘记密码?< / a>
< / div>
< input type= "button" value= "登录" onclick= "login()" class = "btn" >
< br>
< div id= "login_copyright" >
Power By ZRGJ & copy; CopyRight 2020 / 5 / 25
< / div>
< / div>
< / div>
< / div>
< / body>
< / html>
14数据库:
SET FOREIGN_KEY_CHECKS= 0 ;
DROP TABLE IF EXISTS ` user ` ;
CREATE TABLE ` user ` (
` userid` varchar ( 10 ) NOT NULL ,
` username` varchar ( 20 ) default NULL ,
` password` varchar ( 32 ) default NULL ,
` tel` varchar ( 20 ) default NULL ,
PRIMARY KEY ( ` userid` )
) ENGINE = InnoDB DEFAULT CHARSET = utf8;
INSERT INTO ` user ` VALUES ( '1' , 'li' , '123' , '123456' ) ;