SSM整合(一)

13 篇文章 0 订阅

SSM整合(一)

一、环境工具准备
  1. 数据库版本: mysql8.0.26
  2. IDEA版本: idea2020
  3. JDK版本: jdk1.8.1
  4. Tomcat版本: apache-tomcat-9.0.56
  5. Maven版本: maven3.8.1
  6. MyBatis版本: mybaits3.5.9
  7. Spring版本: spring5.3.20
  8. SpringMVC版本: spring-webmvc5.3.20
  9. MyBaitsSpring版本: mybatis-spring2.0.7
  10. jackson 版本: jackson-databind2.13.3
  11. druid版本: druid1.2.10
  12. javax.servlet-api版本:javax.servlet-api4.0.1
  13. log4j版本: log4j1.2.17

    具体请参考博文中Maven的 pom.xml 文件

二、创库创表插入模拟数据

2.1 以下脚本为创建ssmDB数据库脚本,可直接复制到你的 Navicat工具中执行

#1.创建ssmDB数据库
create database ssmDB;

#2.选中数据库
use ssmDB;

#3.创建角色信息表
create table role(
	roleId int not null primary key auto_increment comment '角色主键编号',
	roleName varchar(20) not null comment '角色名称'#管理员、店长、收银员
)comment='角色信息';

#4.创建用户信息表
create table `user`(
	userId int not null primary key auto_increment comment '用户主键编号',
	roleId  int not null comment '角色编号(外键)',
	realName varchar(20) not null comment '用户姓名',
	userName varchar(50) not null comment '用户账号',
	userPwd varchar(50) not null comment '用户密码',
	userSex int not null comment '性别',# 0:女,1:男
	birthday date not null comment '出生日期',
	phone char(11) comment '手机号码'
)comment='用户信息';

#5.为用户信息表中roleId字段添加外键约束
alter table `user` add constraint fk_roleId
foreign key (roleId)
references role (roleId);

#6.为主表角色表添加角色信息
insert into role values(null,'管理员'),(null,'店长'),(null,'收银员');
#查询用户角色信息

select * from role;
#7.为从表用户信息表添加用户信息
#录入管理员信息:
insert into `user`(userId,roleId,realName,userName,userPwd,userSex,birthday,phone)
values(null,'1','管理员(杨明)','admin','123456','1','1992-05-10','13111111111');

#录入店长信息:
insert into `user`(userId,roleId,realName,userName,userPwd,userSex,birthday,phone)
values
(null,'2','刘妃平','liufeiping','123456','0','1998-11-10','13222222222'),
(null,'2','张曼妮','zhangmanni','123456','0','1994-09-20','13333333333'),
(null,'2','李诗韵','lishiyun','123456','0','1995-07-21','13444444444'),
(null,'2','艾菲菲','aifeifei','123456','0','1996-05-16','13555555555'),
(null,'2','李悠然','liyouran','123456','1','1998-07-10','13666666666'),
(null,'2','李君莫','lijunmo','123456','1','1999-06-28','13777777777'),
(null,'2','顾倾城','guqingcheng','123456','0','1999-01-25','13888888888');

#录入收银员:
insert into `user`(userId,roleId,realName,userName,userPwd,userSex,birthday)
values
(null,'3','刘可冉','liukeran','111111','0','2005-11-10'),
(null,'3','张晓晓','zhangxiaoxiao','111111','0','1994-04-20'),
(null,'3','李乐乐','lilele','111111','0','2005-07-21'),
(null,'3','君染染','junranran','222222','1','2001-01-13'),
(null,'3','胡馨茜','huxinqian','222222','0','2002-07-10'),
(null,'3','胡雨佳','huyujia','222222','0','2003-06-22'),
(null,'3','杨可颜','yangkeyan','333333','0','2004-01-27');

#查询用户信息
select * from `user`;

#查询多表
select u.userId,u.realName,u.userName,u.userPwd,u.userSex,u.birthday,u.roleId,r.roleName from `user` u inner join role r on u.roleId=r.roleId;

2.2表结构与表数据:

在这里插入图片描述

三、搭建项目框架基本结构
3.1创建项目(选择maven)

在这里插入图片描述

3.2设置项目名称与保存位置

在这里插入图片描述

3.3确认maven的设置

在这里插入图片描述

3.4 检测到Web框架时点击Configure

在这里插入图片描述

3.5在pom.xml文件中添加maven依赖

以下依赖包支持使用SSM实现基本增删改查、事务、文件上传、JSON数据转换、AOP切面、分页查询

<dependencies>
   <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.13.2</version>
       <scope>test</scope>
   </dependency>
   <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <version>1.2.17</version>
   </dependency>
   <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.26</version>
   </dependency>
   <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis</artifactId>
       <version>3.5.9</version>
   </dependency>
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-webmvc</artifactId>
       <version>5.3.20</version>
   </dependency>
   <dependency>
       <groupId>org.springframework</groupId>
       <artifactId>spring-jdbc</artifactId>
       <version>5.3.20</version>
   </dependency>
   <dependency>
       <groupId>org.aspectj</groupId>
       <artifactId>aspectjweaver</artifactId>
       <version>1.9.9.1</version>
       <scope>runtime</scope>
   </dependency>
   <!--mybatis spring整合包-->
   <dependency>
       <groupId>org.mybatis</groupId>
       <artifactId>mybatis-spring</artifactId>
       <version>2.0.7</version>
   </dependency>
   <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>javax.servlet-api</artifactId>
       <version>4.0.1</version>
   </dependency>
   <!-- 数据源druid依赖包-->
   <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>druid</artifactId>
       <version>1.2.10</version>
   </dependency>
   <!--Jackson处理JSON数据转换-->
   <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
       <version>2.13.3</version>
   </dependency>
   <!-- 文件上传依赖包-->
   <dependency>
       <groupId>commons-io</groupId>
       <artifactId>commons-io</artifactId>
       <version>2.11.0</version>
   </dependency>
   <dependency>
       <groupId>commons-fileupload</groupId>
       <artifactId>commons-fileupload</artifactId>
       <version>1.4</version>
   </dependency>
   <!--分页查询插件-->
   <dependency>
       <groupId>com.github.pagehelper</groupId>
       <artifactId>pagehelper</artifactId>
       <version>5.3.0</version>
   </dependency>
</dependencies>

在这里插入图片描述

四、完善项目框架结构
4.1创建pojo层

这里创建实体类利用了IDEA工具快速生成

生成Role角色实体类

在这里插入图片描述

package com.aiden.ssm.pojo;

import java.io.Serializable;

/**
 * 角色信息实体类
 */
public class Role implements Serializable {
    private static final long serialVersionUID = 490468334340172770L;
    /**
     * 角色主键编号
     */
    private Integer roleId;

    /**
     * 角色名称
     */
    private String roleName;

    //省略 getter/setter...

}

生成User用户信息实体类

在这里插入图片描述

package com.aiden.ssm.pojo;

import java.io.Serializable;
import java.util.Date;

/**
 * 用户信息实体类
 */
public class User implements Serializable {
    /**
     * 用户主键编号
     */
    private Integer userId;

    /**
     * 用户姓名
     */
    private String realName;

    /**
     * 角色编号(外键)
     */
    private Integer roleId;

    /**
     * 用户账号
     */
    private String userName;

    /**
     * 用户密码
     */
    private String userPwd;

    /**
     * 性别
     */
    private Integer userSex;

    /**
     * 出生日期
     */
    private Date birthday;

    /**
     * 手机号码
     */
    private String phone;

    //省略 getter/setter...
}
4.2创建dao层

创建UserMapper接口

package com.aiden.ssm.mapper;

import com.aiden.ssm.pojo.User;

import java.sql.SQLException;
import java.util.List;

/**
  * 用户DAO接口
  *
  * @author Aiden
  */
public interface UserMapper {
    /**
     * 查询全部用户
     *
     * @return
     * @throws SQLException
     */
    List<User> findUserAll() throws SQLException;

    /**
     * 分页查询用户信息
     *
     * @param realName  用户姓名
     * @param pageIndex 当前页索引
     * @param pageSize  每页显示的条数
     * @return
     * @throws SQLException
     */
    List<User> findUserListByPage(String realName, Integer pageIndex, Integer pageSize) throws SQLException;

    /**
     * 根据用户主键编号查询用户对象
     *
     * @param userId 用户主键编号
     * @return
     */
    User findUserById(Integer userId);

    /**
     * 新增用户信息
     *
     * @param user
     * @return
     * @throws SQLException
     */
    int insert(User user) throws SQLException;

    /**
     * 修改用户信息
     *
     * @param user
     * @return
     * @throws SQLException
     */
    int update(User user) throws SQLException;

    /**
     * 删除用户信息
     *
     * @param userId 用户主键编号
     * @return
     * @throws SQLException
     */
    int delete(Integer userId) throws SQLException;
}

4.3创建映射文件

resources根资源文件夹目录想创建与dao同包名的目录结构

在这里插入图片描述

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">
<!--namespace 绑定一个对应的dao/mapper接口-->
<mapper namespace="com.aiden.ssm.mapper.UserMapper">

<resultMap id="userWithRole" type="com.aiden.ssm.pojo.User">
    <id property="userId" column="userId"></id>
    <association property="role" javaType="com.aiden.ssm.pojo.Role">
        <id property="roleId" column="rId"></id>
        <id property="roleName" column="roleName"></id>
    </association>
</resultMap>
<!--查询    -->
<select id="findUserAll" resultType="com.aiden.ssm.pojo.User" resultMap="userWithRole">
     select u.userId,u.realName,u.userName,u.userPwd,u.userSex,u.birthday,u.roleId,r.roleId as rId,r.roleName from `user` u
     inner join role r on u.roleId=r.roleId
</select>

<select id="findUserById" resultType="com.aiden.ssm.pojo.User">
    select u.userId,u.realName,u.userName,u.userPwd,u.userSex,u.birthday,u.roleId,r.roleName from `user` u
    inner join role r on u.roleId=r.roleId
    where userId=#{userId}
</select>
<!--新增-->
<insert id="insert">
     INSERT INTO `user`(`realName`, `roleId`, `userName`, `userPwd`, `userSex`, `birthday`, `phone`)
     VALUES (#{realName},#{roleId},#{userName},#{userPwd},#{userSex},#{birthday},#{phone});
</insert>
<!--修改-->
<update id="update">
    update `user`
    <set>
        <if test="realName != null and realName != ''">realName=#{realName},</if>
        <if test="role.roleId != null">roleId=#{roleId},</if>
        <if test="userName != null and userName != ''">userName=#{userName},</if>
        <if test="userPwd != null and userPwd != ''">userPwd=#{userPwd},</if>
        <if test="userSex != null">userSex=#{userSex},</if>
        <if test="birthday != null and birthday != ''">birthday=#{birthday},</if>
        <if test="phone != null and phone != ''">phone=#{phone},</if>
    </set>
    where userId=#{userId}
</update>
<!--删除-->
<delete id="delete">
    delete from `user` where userId=#{userId}
</delete>
</mapper>
4.4创建service层
package com.aiden.ssm.service;

import com.aiden.ssm.pojo.User;

import java.sql.SQLException;
import java.util.List;

/**
 * 用户DAO接口
 *
 * @author Aiden
 */
public interface UserService {
    /**
     * 查询全部用户
     *
     * @return
     */
    List<User> findUserAll() ;


    /**
     * 根据用户主键编号查询用户对象
     *
     * @param userId 用户主键编号
     * @return
     */
    User findUserById(Integer userId);

    /**
     * 新增用户信息
     *
     * @param user
     * @return
     */
    int insert(User user) ;

    /**
     * 修改用户信息
     *
     * @param user
     * @return
     */
    int update(User user) ;

    /**
     * 删除用户信息
     *
     * @param userId 用户主键编号
     * @return
     */
    int delete(Integer userId) ;
}

service.impl

package com.aiden.ssm.service.impl;

import com.aiden.ssm.mapper.UserMapper;
import com.aiden.ssm.pojo.User;
import com.aiden.ssm.service.UserService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.sql.SQLException;
import java.util.List;

/**
 * 用户业务层实现类
 *
 * @author Aiden
 */
@Service
public class UserServiceImpl implements UserService {

    @Resource
    private UserMapper userMapper;

    @Override
    public List<User> findUserAll() {
        List<User> userList = null;
        try {
            userList = userMapper.findUserAll();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return userList;
    }

    @Override
    public User findUserById(Integer userId) {
        User user = null;
        try {
            user = userMapper.findUserById(userId);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return user;
    }

    @Override
    public int insert(User user) {
        int result = 0;
        try {
            result = userMapper.insert(user);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public int update(User user) {
        int result = 0;
        try {
            result = userMapper.update(user);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }

    @Override
    public int delete(Integer userId) {
        int result = 0;
        try {
            result = userMapper.delete(userId);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return result;
    }
}
4.5创建controller层
package com.aiden.ssm.controller;

import com.aiden.ssm.pojo.User;
import com.aiden.ssm.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/**
 * 用户控制器
 *
 * @author Aiden
 */
@Controller
@RequestMapping("/user")
public class UserController {

    @Resource
    private UserService userService;

    @GetMapping("/index")
    public String index() {
        return "user/index";
    }

    @ResponseBody
    @GetMapping("/getUsers")
    public List<User> getUsers() {
        return userService.findUserAll();
    }

    @GetMapping("/details/{id}")
    public String details(@PathVariable Integer id, Model model) {
        User user = userService.findUserById(id);
        model.addAttribute("user", user);
        return "user/details";
    }

    @GetMapping("/insert")
    public String insert() {
        return "user/insert";
    }

    @PostMapping("insert")
    public String insert(User user) {
        return "user/insert";
    }

    @GetMapping("/update/{id}")
    public String update(@PathVariable Integer id, Model model) {
        User user = userService.findUserById(id);
        model.addAttribute("user", user);
        return "user/update";
    }

    @PostMapping("/update")
    public String update(User user) {

        return "user/update";
    }

}

4.6创建view视图层

WEB-INF/jsp目录下创建user目录,在user目录下创建index.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>用户列表信息管理页面</title>
</head>
<body>
   <h1>用户列表信息管理页面</h1>
</body>
</html>

五、编写项目框架配置文件
5.1数据库配置文件

druid数据源配置

druid.driverClassName=com.mysql.cj.jdbc.Driver
druid.url=jdbc:mysql://localhost:3306/ssmdb?useUnicode=true&allowPublicKeyRetrieval=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
druid.username=root
druid.password=root
druid.initialSize=10
druid.minIdle=6
druid.maxActive=50
druid.maxWait=60000
druid.timeBetweenEvictionRunsMillis=60000
druid.minEvictableIdleTimeMillis=300000
druid.validationQuery=SELECT 'x'
druid.testWhileIdle=true
druid.testOnBorrow=false
druid.testOnReturn=false
druid.poolPreparedStatements=false
druid.maxPoolPreparedStatementPerConnectionSize=20
druid.filters=wall,stat
5.2日志配置文件
log4j.rootLogger=debug,CONSOLE,file
#log4j.rootLogger=ERROR,ROLLING_FILE

log4j.logger.com.aiden.ssm=debug
log4j.logger.org.apache.ibatis=debug
log4j.logger.org.mybatis.spring=debug
log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug
log4j.logger.java.sql.ResultSet=debug

#############################################################################
# Console Appender 日志在控制输出配置
#############################################################################
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=debug
log4j.appender.CONSOLE.DatePattern=yyyy-MM-dd
log4j.appender.CONSOLE.Target=System.out
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern= - (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n

#############################################################################
# DailyRolling File  每天产生一个日志文件,文件名格式:log2022-05-25
#############################################################################
log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.DatePattern=yyyy-MM-dd
log4j.appender.file.File=${ssm.root}/logs/log.log
log4j.appender.file.Append=true
log4j.appender.file.Threshold=debug
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern= - (%r ms) - %d{yyyy-M-d HH:mm:ss}%x[%5p](%F:%L) %m%n


log4j.logger.com.opensymphony.xwork2=debug
5.3mybatis核心配置文件

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
       PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
       "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--MyBatis核心文件配置-->
<configuration>
   <settings>
       <!--1.日志输出-->
       <setting name="logImpl" value="STDOUT_LOGGING"/>
       <!--2.自动映射-->
       <setting name="autoMappingBehavior" value="FULL"/>
       <!--3.全局性懒加载-->
       <setting name="lazyLoadingEnabled" value="true"/>
   </settings>
   <plugins>
       <!--PageHelper分页拦截器 -->
       <plugin interceptor="com.github.pagehelper.PageInterceptor">
           <property name="param1" value="value1"/>
       </plugin>
   </plugins>
</configuration>
5.4mybatis与spring整合配置文件

applicationContext-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-3.2.xsd
	http://www.springframework.org/schema/context
	http://www.springframework.org/schema/context/spring-context-3.2.xsd">

   <!--1.扫描dao、service包-->
   <context:component-scan base-package="com.aiden.ssm.mapper"></context:component-scan>
   <context:component-scan base-package="com.aiden.ssm.service"></context:component-scan>

   <!--2.配置数据源-->
   <context:property-placeholder location="classpath:database.properties"></context:property-placeholder>
   <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
       <property name="driverClassName" value="${druid.driverClassName}"/>
       <property name="url" value="${druid.url}"/>
       <property name="username" value="${druid.username}"/>
       <property name="password" value="${druid.password}"/>
       <!-- 初始化连接数量 -->
       <property name="initialSize" value="${druid.initialSize}"/>
       <!-- 最小空闲连接数 -->
       <property name="minIdle" value="${druid.minIdle}"/>
       <!-- 最大并发连接数 -->
       <property name="maxActive" value="${druid.maxActive}"/>
       <!-- 配置获取连接等待超时的时间 -->
       <property name="maxWait" value="${druid.maxWait}"/>
       <!--以下暂时可以不需要配置-->
       <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
       <property name="timeBetweenEvictionRunsMillis" value="${druid.timeBetweenEvictionRunsMillis}"/>
       <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
       <property name="minEvictableIdleTimeMillis" value="${druid.minEvictableIdleTimeMillis}"/>
       <property name="validationQuery" value="${druid.validationQuery}"/>
       <property name="testWhileIdle" value="${druid.testWhileIdle}"/>
       <property name="testOnBorrow" value="${druid.testOnBorrow}"/>
       <property name="testOnReturn" value="${druid.testOnReturn}"/>
       <!-- 打开PSCache,并且指定每个连接上PSCache的大小 如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。 -->
       <property name="poolPreparedStatements" value="${druid.poolPreparedStatements}"/>
       <property name="maxPoolPreparedStatementPerConnectionSize"
                 value="${druid.maxPoolPreparedStatementPerConnectionSize}"/>
       <!-- 配置监控统计拦截的filters -->
       <property name="filters" value="${druid.filters}"/>
   </bean>

   <!-- 3.配置sqlSessionFactory-->
   <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
       <!-- 3.1设置管理的JDBC数据源-->
       <property name="dataSource" ref="druidDataSource"></property>
       <!-- 3.2设置类型别名-->
       <property name="typeAliasesPackage" value="com.aiden.ssm.pojo"></property>
       <!-- 3.3设置MyBatis SqlSessionFactory配置文件的位置-->
       <property name="configLocation" value="classpath:mybatis-config.xml"></property>
   </bean>
   <!-- 4.扫描mapper映射配置文件-->
   <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
       <property name="basePackage" value="com.aiden.ssm.mapper"></property>
   </bean>

</beans>
5.5mvc核心配置文件

springmvc-servlet.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:mvc="http://www.springframework.org/schema/mvc"
      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.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd">

   <!--1.开启注解-->
   <mvc:annotation-driven>
       <!--配置消息转换器-->
       <mvc:message-converters>
           <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
               <constructor-arg name="objectMapper">
                   <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                       <property name="dateFormat">
                           <bean class="java.text.SimpleDateFormat">
                               <constructor-arg name="pattern" value="yyyy-MM-dd"></constructor-arg>
                           </bean>
                       </property>
                       <property name="timeZone" value="Asia/Shanghai"></property>
                   </bean>
               </constructor-arg>
           </bean>
       </mvc:message-converters>
   </mvc:annotation-driven>
   <!--2.扫描控制层-->
   <context:component-scan base-package="com.aiden.ssm.controller"></context:component-scan>
   <!-- 3.处理静态资源-->
   <mvc:resources mapping="/statics/**" location="/statics/"></mvc:resources>
   <!--4.配置视图解析器-->
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
       <property name="prefix" value="/WEB-INF/jsp/"></property>
       <property name="suffix" value=".jsp"></property>
   </bean>
</beans>
5.6web.xml配置文件

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="WebApp_ID" version="3.0">

   <display-name>Aiden Archetype Created Web Application</display-name>

   <!--1.配置上下文参数(mybatis-spring)相关配置-->
   <context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:applicationContext-*.xml</param-value>
   </context-param>
   <!-- 2.配置mvc前端控制器-->
   <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:springmvc-servlet.xml</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>
   <servlet-mapping>
       <servlet-name>springmvc</servlet-name>
       <url-pattern>/</url-pattern>
   </servlet-mapping>
   <!-- 3.配置处理字符编码过滤器-->
   <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>/*</url-pattern>
   </filter-mapping>
   <!--4.配置监听器-->
   <listener>
       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
</web-app>

六、测试运行
6.1访问视图页面

浏览器访问 http://localhost:8080/ssm/user/index
在这里插入图片描述

Postman访问 http://localhost:8080/ssm/user/index

在这里插入图片描述

6.2访问测试—获取JSON数据

访问: http://localhost:8080/ssm/user/getUsers

在这里插入图片描述


到这里我们已经初步完成SSM的整合了,在示例中我们能在客户端正常访问mvc前端控制器,能够访问视图index也能正常获取JSON数据,如果你细心点就会发现获取到的JSON数据中时间类型变成了long类型数据,在SSM整合(二)中,将会彻底解决这一问题!敬请待续…

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

众生云海,一念初见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值