<SpringMvc>入门二 注解

1.RequestMapping

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
    String name() default "";

    @AliasFor("path")
    String[] value() default {};

    @AliasFor("value")
    String[] path() default {};

    RequestMethod[] method() default {};

    String[] params() default {};

    String[] headers() default {};

    String[] consumes() default {};

    String[] produces() default {};
}

可以看出requestMapping可以作用在类和方法上

1.value和path是一样的,并且默认值就是路径,下面是测试,请求成功

<a href="/hello/sayHello" >入门程序</a>

2.method,规定了该方法的请求类型,如果写了,前端的请求类型一致才能访问到该方法

如果不写,则根据前端自动适应

public enum RequestMethod {
    GET,
    HEAD,
    POST,
    PUT,
    PATCH,
    DELETE,
    OPTIONS,
    TRACE;

    private RequestMethod() {
    }
}

此时还是使用get方法进行请求,但是设置了该方法的访问为post,则会报错405

3.params:意思是前端必须传递一个参数过来

第一种情况:

例如:

如果使用

<a href="/hello/sayHello" >入门程序</a>

则会报错

所以应该修改为带有username的参数

<a href="/hello/sayHello?username=hehe" >入门程序</a>

第二种情况:

规定了必须传递username=haha

我们传递一个username=hehe

<a href="/hello/sayHello?username=hehe" >入门程序</a>

依然会报400的错误;所以需要传递username=haha

加入我们传入多个参数呢?

<a href="/hello/sayHello?username=haha&pwd=123" >入门程序</a>

这样也是可以的,所以只要带了 params 里应该有的参数,就可以访问成功。

4.headers:浏览器的请求头里必须带哪些信息,才可以请求到

如果设置了其他头信息,普通的浏览器访问就会报错

5.consumers和produces

consumers:指定请求提交内容的类型(Content-Type),例如application/json,text/html等

例如我们希望前台传递过来是applicaton/json数据

但是我们用get请求,传递的参数类型是text/html

则会出现415的报错

使用postman发送application/json格式的数据去访问,则访问成功

producers:可以指定返回值的类型及其编码,例如

但是必须要和@ResponseBody注解一起使用才可以,不加@ResponseBody注解相当于按照和返回String同名jsp页面解析自然就会报错。

如果返过来,不加produces属性,只有@ResponseBody注解的话也是没有问题的,只是在浏览器中直接访问的时候有区别:

情况1:

情况2:

总的来说produces有两个好处:一个是浏览器查看方便(json自动格式化,带搜索),另一个可以防止中文乱码。

原文地址:https://www.cnblogs.com/mapleins/p/10125584.html

时间: 2024-10-29 00:48:08

<SpringMvc>入门二 注解的相关文章

SpringMVC入门之注解式控制器

上面一篇写的是配置式的控制器现在已经不推荐使用了,其实注解式控制器和它的差不多只不过 更简洁而已! 1.还是在web.xml中进行配置DispatcherServlet <servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-para

springMVC入门程序-注解开发环境配置

在进行springMVC开发时,我们也希望通过注解进行开发,这样比较快捷方便.现将springMVC开发步骤记录如下: 1.新建web程序,导入springMVC需要的jar包: 2.配置web.xml文件.主要是进行servlet的配置. 1 <servlet> 2 <servlet-name>springmvc</servlet-name> 3 <servlet-class>org.springframework.web.servlet.Dispatch

springmvc入门基础之注解和参数传递

一.SpringMVC注解入门 1. 创建web项目2. 在springmvc的配置文件中指定注解驱动,配置扫描器 Xml代码   <!-- mvc的注解驱动 --> <mvc:annotation-driven /> <!--只要定义了扫描器,注解驱动就不需要,扫描器已经有了注解驱动的功能 --> <context:component-scan base-package="org.study1.mvc.controller" /> &l

SpringMVC入门学习(二)

SpringMVC入门学习(二) ssm框架 springMVC 在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. model.addAttribute()的使用 model接口的源代码: 由图可知,在addAttribute()中有两种入参方式,一种是指明名字var1,一种是不指明名字var1.在不指明名字中,会通过相近的去寻找. 在addAttribute()中,我们可以放任何对象: 首先先导入jsp标签maven

SpringMVC应用------基于注解的入门实例

SpringMVC应用------基于注解的入门实例 目录 1.在 web.xml 文件中配置前端处理器 2.在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器 3.编写 Handler 4.编写 视图 index.jsp 5.在浏览器中输入:http://localhost:8080/SpringMVC-003/hello 前两篇博客我们讲解了基于XML 的入门实例,以及SpringMVC运行的详细流程.但是我们发现基于 XML 的配置还是比较麻烦的,而且,每个

SpringMVC 入门教程知识

SpringMVC 入门知识 一.SpringMVC入门介绍 springMVC代替struts2去整合hibernate实现功能的框架.使用springMVC有两个配置文件需要配置,一 个是applicationContext.xml.另一个是web.xml,在applicationContext.xml里面配置事务管理器以及属性注入等.web.xml里面要添加一个springMVC的servlet的注册和映射(DispatcherServlet),这个servlet是 springMVC的核

SpringMVC入门(一)

一. SpringMVC入门 1.1 Springmvc是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出来,如下图: 1.2  Springmvc处理流程 二. 入门程序2.1 导包 2.2 创建springmvc.xml SpringMVC本身就是Spring的子项目,对Spring兼容性很好,不需要做很多配置. 这里只配置一个Controller扫描就可以了,让Spring对页面控制层Control

Netty入门二:开发第一个Netty应用程序

    既然是入门,那我们就在这里写一个简单的Demo,客户端发送一个字符串到服务器端,服务器端接收字符串后再发送回客户端. 2.1.配置开发环境 1.安装JDK 2.去官网下载jar包 (或者通过pom构建) 2.2.认识下Netty的Client和Server 一个Netty应用模型,如下图所示,但需要明白一点的是,我们写的Server会自动处理多客户端请求,理论上讲,处理并发的能力决定于我们的系统配置及JDK的极限. Client连接到Server端 建立链接发送/接收数据 Server端

SpringMVC入门

介绍 SpringMVC是一款Web MVC框架. 它跟Struts框架类似,是目前主流的Web MVC框架之一. 本文通过实例来介绍SpringMVC的入门知识. 实例 本文所写的实例是一个员工的CRUD demo. 用idea编写,基于maven, Web框架使用SpringMVC,视图采取Freemarker技术,数据库使用MySQL,用Hibernate4存储数据. 本文关于其他一些内容 如maven的pom文件内容,spring常规bean,事务,数据源的配置等不会详细描述,可自行下载