SpringMVC的项目实际遇到的问题

@RequestMapping,@ResponseBody,@RequestBody,@PathVariable四者的区别;
@RequestMapping可以用在类或者方法上,用于指定请求处理的方向;
@ResponseBody,一般在异步获取数据时使用,通常是使用@RequestMapping后,返回值通常解析为跳转路径,而加上了@ResponseBody之后返回结果不会被解析为跳转路径,而是直接写入HTTP响应正文中,也就是直接返回数据;
@RequestBody,将ajax里面请求过来的参数自动封装写入对象之中,也就是说,你的参数会自动封装成对象;
@PathVariable,写入URL中的动态参数;
@Component,将一个类声明为Bean,加入Spring容器管理,下次要用的时候,直接@Autowired;就可以了;
@Service,将一个类声明为业务层,下次可以直接在控制层里面@Autowired;直接调用,注意了要在业务层的接口实现类里面声明,而不是在业务层的接口类;
@parameter
我们记得,如果是业务层的话,我们要注解好@Service,而如果是mapper层的话,则可以通过批量扫描基础包的方式来将mapper集体注释了,这样就可以直接用@Autowired来调用了。
我们在用generator自动生成mapper,pojo的时候,可以把xml和接口类的包名为同一个,这样子就可以把两个都放在同一个里面了;
借助@PathVariable注解,控制器能够处理参数化的URL(将变量输入作为URL的一部分);
借助@ResponseBody注解和各种HttpMethodConverter实现,能够替换基于视图的渲染方式;
@RequestBody注解以及HttpMethodConverter实现,能够替换基于视图的渲染方式;返回json数据;
@RequestParam接受普通参数;
使用@Responsebody,是为了使用消息转换功能,也就是告诉Spring跳过正常的模型/视图流程,并使用消息转换器;
什么是消息转换器?将控制器产生的数据转换为服务于客户端的表述形式。而不是将模型数据传送到视图中;也就是产生json类型的数据,返回给前端解析使用;
使用@RequestBody,可以将传过来的参数对象封装起来,放到控制器的一个对象里面,
在登录这一块,根据用户输入的用户名去数据库里面查询一个对象出来,然后根据查出来的对象和原本的用户的密码是否相同来判断是否登录成功;
@RequestParam("file_upload") MultipartFile[] files;
这个可以用来接收图片等二进制文件;
@RequestMapping()的六大属性;
1,value;Method;
value就是用来指定你这个控制器所接收处理的请求;
method就是标明你请求的类型;可以用于REST的POST,PUT,DELETE,GET;
consumes:指定处理请求的提交内容类型(Content-Type),例如application/json,text/html;
multipart/form-data :这种Content-Type是在上传文件时用到的;
produces??
params:指定request中必须包含某些参数值时才让该方法处理;
headers:指定request中必须包含指定的header值时,才让该方法返回;
@SuppressWarnings("finally")这个是什么意思啊。。。
@Autowired,@Resource;这两个方法都是实现将bean注入进来,但是呢,@Autowired是Spring的,而@Resource是jdk的,@Autowired是按照类型查找的,而@Resource是按照名字来查找的;如果@Autowired要实现按名字查找的话,需要再加一条@Qualifier,来标明是用名字寻找Bean。
@Controller:标注一个控制器组件的类;
@Service:标注一个业务逻辑组件的类;
@Component:标注一个普通的类;
@Repository:标注一个Dao组件的类;
@RestController可以设置在Controller上,可以将返回的对象自动通过消息转换机制;
 
带有@ResponseStatus注解的异常类会被ResponseStatusExceptionResolver解析,可以实现自定义的一些异常,同时在页面上进行显示;
@ResponseStatus(value = HttpStatus.FORBIDDEN,reason = "用户名和密码不匹配")
public class UserNameNotMatchPasswordException extends RuntimeException{
 
}
  1. @RequestMapping("/testResponseStatusExceptionResolver")  
  2.   public String testResponseStatusExceptionResolver(@RequestParam("i") int i){  
  3.       if (i==13){  
  4.           throw new UserNameNotMatchPasswordException();  
  5.       }  
  6.       System.out.println("testResponseStatusExceptionResolver....");  
  7.       return "success";  
  8.   } 
人为抛出一个异常;
Spring RestTemplate几种常见的请求方式;
检查型异常和非检查型异常;
    是指编译器要检查这类异常,检查的目的一方面是因为该类异常的发生难以避免,另一方面是让开发者去解决掉这类异常,所以称为必须处理的异常,如果不处理这类异常,集成开发环境中的编译器一般会给出错误提示;
    编译器不会检查这类异常,不检查的则开发者在代码的编辑编译阶段不是必须处理的,这类异常一般可以避免,因此无需处理try--catch,如果不处理这类异常,集成开发环境中的编译器也不会给出错误提示;
通常http消息有一个起始行,一个或多个头域,一个知识头域结束的空行和可选消息体组成;
头域包括通用头,请求头,响应头和实体头四个部分,每一个头域由一个域名,冒号和域值三部分组成;
Status-Code定义响应的类别:
1xx:信息响应类:表示接收到请求并且继续处理;
2xx:处理成功响应类,表示动作被成功接收,理解和接受;
3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理;
4xx:客户端错误,客户请求包含语法错误或者是不能正确执行;
5xx:服务端错误,服务器不能正确执行一个正确的请求;
 
 
 
 
@SuppressWarnings("finally")
@TokenValid
@TokenCreated
 
 
 
@RequestParam("file_upload") MultipartFile[] files
这个可以用来接收图片等二进制文件;
Request
 
 
 
 
Request

猜你喜欢

转载自www.cnblogs.com/zxx123/p/9245442.html