SSM开发步骤

文章目录

    • SSM:Spring+SpringMVC+Mybatis
      • 使用注解开发步骤
        • 1.配置web.xml
          • @RequestMapping映射请求中的method参数实现四种请求方式的调用
            • 将POST请求转化为put请求和delele请求的两种方法
        • 2.配置spring-mybatis.xml
            • 在spring的配置文件加载(db.properties)数据库连接参数
            • 配置数据源
            • SqlSessionFactoryBean用来生成SqlSession
            • mapperScanner:配置接口映射。
            • 配置事务管理组件
        • 3.配置spring-mvc.xml
          • 常用注解:
            • @RequestMapping:处理请求地址映射的注解
            • @RequestParam:用于获取传入参数的值
            • @PathViriable:用于定义路径参数值
            • @ResponseBody:作用于方法上,可以将整个返回结果以某种格式返回,如json或xml格式。
            • @ModelAttribute:用于把参数保存到model中

SSM:Spring+SpringMVC+Mybatis

使用注解开发步骤

1.配置web.xml

创建spring-mybatis.xml和spring-mvc.xml,在web.xml配置spring-mybatis.xml,spring-mvc.xml的加载


 
    contextConfigLocation
    classpath:spring-mybatis.xml
  
  
    org.springframework.web.context.ContextLoaderListener
  
  
  
  
  
  	DispatcherServlet
  	org.springframework.web.servlet.DispatcherServlet
 	
 	
 		contextConfigLocation
 		classpath:spring-mvc.xml
 	
 	
 	1
  
  
  	DispatcherServlet
  	
  	/
  
  
// 使用Rest风格的URI将页面普通的post请求转为指定的delete或者put请求

  	HiddenHttpMethodFilter
  	org.springframework.web.filter.HiddenHttpMethodFilter

  

  	HiddenHttpMethodFilter
  	
  	/*

浏览器form表单只支持GET与POST请求,而DELETE、PUT等method并不
支持,spring3.0添加了一个过滤器,可以将这些请求转换为标准的http方法使得支持GET、POST、PUT与DELETE请求,该过滤器为HiddenHttpMethodFilter

@RequestMapping映射请求中的method参数实现四种请求方式的调用

在Controller中配置:
@RequestMapping(value="/stu",method=RequestMethod.GET)
@RequestMapping(value="/stu",method=RequestMethod.POST)
@RequestMapping(value="/stu",method=RequestMethod.PUT)
@RequestMapping(value="/stu",method=RequestMethod.DELETE)

将POST请求转化为put请求和delele请求的两种方法

一种是通过表单,通过添加一个隐藏域更改类型


另一种方法是ajax传值

$.ajax({
       url:"${APP_PATH}/RecordController/record",
       type:"POST",
       data:{id :id ,
           _method:"PUT/DELETE"
       },
       success:function(result){
           alert("update success");
       }
});

指定要使用的字符集,一般我们使用UTF-8


    EncodingFileter
    org.springframework.web.filter.CharacterEncodingFilter
    
      encoding
      utf8
    
  
  
    EncodingFileter
    /*
  

如何你的DispatcherServlet拦截".do"这样的有后缀的URL,就不存在访问不到静态资源的问题。
如果DispatcherServlet拦截"/",为了实现REST风格,拦截了所有的请求,那么同时对
.js, *.jpg等静态文件的访问也就被拦截了。

 
    default
    *.js
    *.jpg
    *.gif
  

2.配置spring-mybatis.xml



在spring的配置文件加载(db.properties)数据库连接参数


这里location值为参数配置文件的位置,参数配置文件通常放在src目录下,而参数配置文件的格式跟java通用的参数配置文件相同,即键
值对的形式,例如:
#jdbc配置
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=1234

    
配置数据源

Spring在第三方依赖包中包含了两个数据源的实现类包,其一是Apache的DBCP,其二是 C3P0。可以在Spring配置文件中利用这两者中任何一个配置数据源。

    
    
    	
    	
    	
    	
    
    
           
           
           
     
    
bean>   
SqlSessionFactoryBean用来生成SqlSession

Mybatis的所有操作都是基于一个SqlSession的,而SqlSession是由SqlSessionFactory来产生的,SqlSessionFactory又是由SqlSessionFactoryBuilder来生成的。但是Mybatis-Spring是基于SqlSessionFactoryBean的。
SqlSessionFactoryBean,在这个bean里面还是通过SqlSessionFactoryBuilder来建立对应的SqlSessionFactory,进而获取到对应的SqlSession。

    
        
    	
    	 user
    	 多个package之间可以用逗号或者分号等来进行分隔。-->
    	
    
mapperScanner:配置接口映射。

MapperScannerConfigurer是spring和mybatis整合的mybatis-spring jar包中提供的一个类。
如果数据映射接口很多的话,需要在Spring的配置文件中对数据映射接口做配置,相应的配置项会很多了。为了简化配置,在MyBatis-Spring中提供了一个转换器MapperScannerConfig它可以将接口转换为Spring容器中的Bean,在Service中@Autowired的方法直接注入接口实例。在Spring的配置文件中可以采用以下所示的配置将接口转化为Bean。

     
        
     	
     
配置事务管理组件

Spring在jdbc中提供了一个事务管理组件:org.springframework.jdbc.datasource.DataSourceTransactionManager

    
		
		
	

3.配置spring-mvc.xml

    
    
    
    
    
    
    
        
    
	
		
		
	
	
	
	
		
		
		
		
	
常用注解:
@RequestMapping:处理请求地址映射的注解
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,
表示类中的所有响应请求的方法都是以该地址作为父路径。

RequestMapping注解有六个属性,下面我们把她分成三类进行说明(下面有相应示例)。

1、 value, method;
value:     指定请求的实际地址,指定的地址可以是URI 
method:  指定请求的method类型, GET、POST、PUT、DELETE等;

2、consumes,produces
consumes:指定处理请求的提交内容类型(Content-Type)
例如application/json, text/html;
produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
如:produces="html/text;charset=utf8"
@RequestParam:用于获取传入参数的值
value:参数的名称
required:定义该传入参数是否必须,默认为true
如果数据是Map必须要加此注解

public String requestParams(@RequestParam(value = "name",required = false) String names){
     System.out.println("name = "+names);
     return "index";
 }
@PathViriable:用于定义路径参数值
value:参数的名称
required:定义传入参数是否为必须值
@RequestMapping(value="/{id}" ,method=RequestMethod.GET)

public String toUpdate(@PathVariable("id")Integer avId,Model model){
	AV av = avService.findAVById(avId);
	model.addAttribute("av", av);
	return "updateAV";
}
@ResponseBody:作用于方法上,可以将整个返回结果以某种格式返回,如json或xml格式。
后端如何接收前端的json数据
@RequestBody
public void receiveJSON(@RequestBody AV av,HttpServletResponse response){
    //代码
}
注意:
前端向后端发送JSON数据
一定要指定contentType:"application/json;charset=utf8"
后端如何发送json数据到前端
    @ResponseBody:
    1.把Java对象序列化为JSON
   	2.response.getWriter().print(data);
   	@ResponseBody 
	public AV sendJSON(AV av){
		return av;
	}
@ModelAttribute:用于把参数保存到model中

可以注解方法或参数,注解在方法上的时候,该方法将在处理器方法执行之前执行,然后把返回的对象存放在 session。

你可能感兴趣的:(SSM和SSH)