SpringMVC 快速入门

文章介绍了如何在SpringConfig中使用@ComponentScan的excludeFilters排除不需要的bean,以及在ServletContainersInitConfig中处理POST请求的中文乱码问题。此外,还展示了SpringMVC中的@RequestMapping注解用于处理相同方法名的情况,以及如何接收和返回JSON数据。同时,提到了静态资源的放行配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

 

 

 

 可以在SpringConfig配置类中使用@ComponentScan的excludeFilters来把不需要加载的bean排除一下

@Configuration
@ComponentScan(value = "com.itheima",
                excludeFilters = @ComponentScan.Filter(
                        type = FilterType.ANNOTATION,
                        classes = Controller.class

                ))
public class SpringConfig {
}

 

多个Controller中方法名相同时,可以使用@RequestMapping 添加请求路径的前缀

 

post 请求中文乱码

public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] {SpringConfig.class};
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    //乱码处理
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
}

不同参数名称映射 

 

 提交json对象需要先加入依赖,使用json向服务器传递数据,参数 必须加RequestBody

<dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.0</version>
    </dependency>
//springmvc配置类,本质上还是一个spring配置类
@Configuration
@ComponentScan("com.itheima.controller")
@EnableWebMvc
public class SpringMvcConfig {
}
@ResponseBody
    public String pojoParam(@RequestBody User user){
        System.out.println(user.toString());
        return "{'module':'pojoParam'}";
    }
    @RequestMapping("/arrayParam")
    @ResponseBody
    public String arrayParam(@RequestBody String[] likes){
        System.out.println(Arrays.toString(likes));
        return "{'module':'arrayParam'}";
    }

    @RequestMapping("/listParam")
    @ResponseBody
    public String listParam(@RequestBody List<String> likes){
        System.out.println(likes);
        return "{'module':'arrayParam'}";
    }

 

返回json对象

 

 

 

 

 @RequestMapping(value = "/users", method = RequestMethod.POST)
    @ResponseBody
    public String save(@RequestBody User user){
        System.out.println(user.toString());
        return "{'save':'springmvc'}";
    }

    @RequestMapping(value = "/users/{id}", method = RequestMethod.DELETE)
    @ResponseBody
    public String delete(@PathVariable Integer id){
        System.out.println("delete " + id);
        return "{'delete':'springmvc'}";
    }

    @RequestMapping(value = "/users", method = RequestMethod.PUT)
    @ResponseBody
    public String update(@RequestBody User user){
        System.out.println("update " + user.toString());
        return "{'delete':'springmvc'}";
    }

    @RequestMapping(value = "/users/{id}", method = RequestMethod.GET)
    @ResponseBody
    public String getById(@PathVariable Integer id){
        System.out.println("getById " + id);
        return "{'getById':'springmvc'}";
    }

    @RequestMapping(value = "/users", method = RequestMethod.GET)
    @ResponseBody
    public String getAll(@RequestBody User user){
        System.out.println("update " + user.toString());
        return "{'delete':'springmvc'}";
    }

 】设置静态资源的放行

@Configuration
public class SpringMvcSupport extends WebMvcConfigurationSupport {
    //设置静态资源访问过滤,当前类需要设置为配置类,并被扫描加载
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        //当访问/pages/????时候,从/pages目录下查找内容
        registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
        registry.addResourceHandler("/js/**").addResourceLocations("/js/");
        registry.addResourceHandler("/css/**").addResourceLocations("/css/");
        registry.addResourceHandler("/plugins/**").addResourceLocations("/plugins/");
    }
}

 

@Configuration
@ComponentScan({"com.itheima.controller","com.itheima.config"})
@EnableWebMvc
public class SpringMvcConfig {
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值