SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记

https://www.bilibili.com/video/av47953244

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第1张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第2张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第3张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第4张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第5张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第6张图片

10.请求参数绑定

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第7张图片

自定义类型转换器

16.获取Servlet原生的API

17.RequestParam注解:

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第8张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第9张图片

 18.RequestBody注解:

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第10张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第11张图片

body代表你提交的整个内容

19.PathVariable注解:

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第12张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第13张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第14张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第15张图片

21.RequestHeader

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第16张图片

 SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第17张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第18张图片

23.ModelAttribute注解

24.SessionAttribute

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第19张图片

26.

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第20张图片

27.响应返回值是void类型

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第21张图片

默认会返回一个testVoid值,跳转到testVoid.jsp页面,类似于返回success情况

28.响应返回值是ModelAndView类型

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第22张图片

29.forward和redirect

return为固定写法,forward代表的是转发,redirect代表重定向,后面接要跳转的页面的路径

就是说想要实现重定向或者转发,只需要return的一个想要跳转的路径字符串即可

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第23张图片

30.响应json数据之过滤静态资源

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第24张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第25张图片

 

文件上传:

springmvc方式上传原理

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第26张图片

40.

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第27张图片

42.SpringMVC拦截器

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第28张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第29张图片

 预处理,controller方法执行前

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第30张图片

后处理,controller方法执行后页面跳转前

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第31张图片

页面跳转前

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第32张图片

 springmvc.xml文件配置拦截器

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第33张图片

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第34张图片

==========================================================================================

SpringMVC教程IDEA版-3天-2018黑马SSM-03-笔记_第35张图片

46.ssm整合

配置spring:

1.项目的pom.xml文件中引入坐标依赖

2.main目录下面创建java.itcast文件夹,创建resources文件夹,右键Mark Directory as第一个、第三个

3.resources文件夹下创建applicationContext.xml

applicationContext.xml:




    
    
        
        
    

    
    
    
        
        
        
        
    

    
    
        
    

    
    
        
    

    
    
    
        
    

    
    
        
            
            
        
    
    
    
        
    

4.java文件夹下面新建domain文件夹,新建Account实体类,编写和数据库表属性一样的属性,创建set、get方法,创建toString方法

5.java文件夹下面新建dao文件夹,新建AccountDao接口,创建想要实现的功能的方法

6.java文件夹下面新建service文件夹,编写AccountService接口,创建impl文件夹,新建AccountServiceImpl实现类,实现AccountService接口,类上添加@Service("accountService")

---------------------------------------------------------------------------------------------------------------------------------------------------------

配置springmvc:

1. 在web.xml中配置DispatcherServlet前端控制器


dispatcherServlet
org.springframework.web.servlet.DispatcherServlet


contextConfigLocation
classpath:springmvc.xml


1


dispatcherServlet
/

2. 在web.xml中配置DispatcherServlet过滤器解决中文乱码


characterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter

encoding
UTF-8



characterEncodingFilter
/*

3. 创建springmvc.xml的配置文件,编写配置文件

xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">


expression="org.springframework.stereotype.Controller"/>















4. 测试SpringMVC的框架搭建是否成功
   1. 编写index.jsp和list.jsp编写,超链接
   查询所有
   2. 创建AccountController类,编写方法,进行测试
   package cn.itcast.controller;
   import org.springframework.stereotype.Controller;
   import org.springframework.web.bind.annotation.RequestMapping;
   @Controller
   @RequestMapping("/account")
   public class AccountController {
   /**
   * 查询所有的数据
   * @return
   */
   @RequestMapping("/findAll")
   public String findAll() {
   System.out.println("表现层:查询所有账户...");
   return "list";
         }
    }

----------------------------------------------------------------------------------------------------------------------------

spring整合springmvc:

     目的:在controller中能成功的调用service对象中的方法

1.在项目启动的时候就加载applicationContext.xml的配置文件,在web.xml中配置ContextLoaderListener监听器(该监听器只能加载WEB-INF目录下的applicationContext.xml的配置文件)


org.springframework.web.context.ContextLoaderListener



contextConfigLocation
classpath:applicationContext.xml

2.在controller中注入service对象,调用service对象的方法进行测试

package cn.itcast.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.itcast.service.AccountService;
@Controller
@RequestMapping("/account")
public class AccountController {
@Autowired
private AccountService accoutService;
/**
* 查询所有的数据
* @return
*/
@RequestMapping("/findAll")
public String findAll() {
System.out.println("表现层:查询所有账户...");
accoutService.findAll();
return "list";
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------

MyBatis配置:

1.resources包下创建SqlMapConfig.xml配置文件


PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">



















2.在AccountDao接口的方法上添加注解,编写SQL语句

package cn.itcast.dao;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import cn.itcast.domain.Account;
public interface AccountDao {
@Insert(value="insert into account (name,money) values (#{name},#{money})")
public void saveAccount(Account account);
@Select("select * from account")
public List findAll();
}
3.编写测试的方法

package cn.itcast.test;
import java.io.InputStream;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import cn.itcast.dao.AccountDao;
import cn.itcast.domain.Account;
public class Demo1 {
@Test
public void run1() throws Exception {
// 加载配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
// 创建工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建sqlSession对象
SqlSession session = factory.openSession();
// 获取代理对象
AccountDao dao = session.getMapper(AccountDao.class);
// 调用查询的方法
List list = dao.findAll();
for (Account account : list) {
System.out.println(account);
} /
/ 释放资源
session.close();
inputStream.close();
} @
Test
public void run2() throws Exception {
Account account = new Account();
account.setName("熊大");
account.setMoney(400d);
// 加载配置文件
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
// 创建工厂
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
// 创建sqlSession对象
SqlSession session = factory.openSession();
// 获取代理对象
AccountDao dao = session.getMapper(AccountDao.class);
dao.saveAccount(account);
// 提交事务
session.commit();
// 释放资源
session.close();
inputStream.close();
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------

spring整合MyBatis:

1.把SqlMapConfig.xml配置文件中的内容配置到applicationContext.xml配置文件中


class="org.springframework.jdbc.datasource.DriverManagerDataSource">













2. 在AccountDao接口中添加@Repository注解
3. 在service中注入dao对象,进行测试
package cn.itcast.dao;
import java.util.List;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import cn.itcast.domain.Account;
@Repository
public interface AccountDao {
@Insert(value="insert into account (name,money) values (#{name},#{money})")
public void saveAccount(Account account);
@Select("select * from account")
public List findAll();
}
package cn.itcast.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.itcast.dao.AccountDao;
import cn.itcast.domain.Account;
import cn.itcast.service.AccountService;
@Service("accountService")
public class AccountServiceImpl implements AccountService {
@Autowired
private AccountDao accountDao;
public void saveAccount(Account account) {
} p
ublic List findAll() {
System.out.println("业务层:查询所有账户...");
return accountDao.findAll();
}
}


AccountController类:

package cn.itcast.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import cn.itcast.domain.Account;
import cn.itcast.service.AccountService;
@Controller
@RequestMapping("/account")
public class AccountController {
@Autowired
private AccountService accoutService;
/**
* 查询所有的数据
* @return
*/
@RequestMapping("/findAll")
public String findAll() {
System.out.println("表现层:查询所有账户...");
List list = accoutService.findAll();
for (Account account : list) {
System.out.println(account);
} r
eturn "list";
}
}
整合完成。

页面点击链接,首先调用controller的类(AccountController类组合了AccountService(自动注入)),再调用service的类(AccountServiceImpl),然后调用dao的类(AccountServiceImpl类组合了AccountDao(自动注入))。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(笔记)