栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springMVC 笔记 请求与响应

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springMVC 笔记 请求与响应

SpringMVC开发底层是servlet

依赖

    
      org.springframework
      spring-webmvc
      ${spring.version}
    
    
      javax.servlet
      servlet-api
      2.5
    
    

简单应用

web.xml



	
	
		dispatcherServlet
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			classpath:applicationContext.xml
		

		1
	

	
		dispatcherServlet
		
		/
	

	
	
		characterEncodingFilter
		org.springframework.web.filter.CharacterEncodingFilter
		
			encoding
			UTF-8
		
	
	
		characterEncodingFilter
		
    
    
    

    
    
        
        
        
        
        
    

    
    
        
            
                
                
            
        
    

如果我们想使用servlet中的api,那么我们想用谁就给方法传谁

    @RequestMapping("test")
    public void test(HttpSession httpSession, HttpServletResponse httpServletResponse){
        
        //向session对象存值
        httpSession.setAttribute("password","123456");
        //用response
    }

其他SpringMVC常用注解

@RequestParam

1,如果我们要封装参数到Map或者List时必须添加这个注解在参数前面。

2,可以把请求中指定名称的参数赋值给方法的形参。也就是请求参数和方法形参名不一致的时候可以指定。案例:传过来的参数名是name,通过注解把name赋值给username

@RequestMapping(value = "sayHello",method = RequestMethod.GET)
    public String hello(@RequestParam("name")String username){
        //请求转发
        return "success";
    }

@RequestBody

1,获取请求体信息

2,获取json类型的请求参数,封装到pojo类中 

@PathVariable

该注解的作用是获取RestFul风格的url上的参数

同样的url不同的请求方式,对应分发的方法也不同。一个url代表一个资源,通过不同的请求方式对资源进行增删改查方法。

案例

    @GetMapping("/{id}")
    public void findUserById(@PathVariable("id") Integer id){

    }
    @DeleteMapping("/{id}")
    public void deleteById(@PathVariable("id")  Integer id){

    }

@RequestHeader获取指定的请求头

    @GetMapping("test5")
    public void test5(@RequestHeader("user-Agent") String userAgent){

    }

@CookieValue

获取指定cookie的值

@ModelAttribute

防止给不想修改但是没有提交的数据设置为null

@SessionAttributes

注解到类上,实现Session数据共享,作用往Session域对象存数据

在SpringMVC中Model类可以当作参数传给方法,作用往request域对象存数据,,所以我们如果要request域对象数据放到Session域对象里面可以使用这个注解


ModelAndView:既可以绑定域对象,又可以绑定视图

1、返回指定页面

ModelAndView构造方法可以指定返回的页面名称,

也可以通过setViewName()方法请求转发到指定的页面 ,

2、返回所需数值

使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。


请求转发和重定向

    @GetMapping("test6")
    public String  test6(){
        //return "redirct:http://www.baidu.com";
        return "forward:/WEB-INF/pages/success.jsp";
    }


 


 给客户端响应json字符串数据,先添加jackson依赖


    
      com.fasterxml.jackson.core
      jackson-core
      2.9.0
    
    
      com.fasterxml.jackson.core
      jackson-databind
      2.9.0
    
    
      com.fasterxml.jackson.core
      jackson-annotations
      2.9.0
    

然后使用@ResponseBody注解,案例:

    @GetMapping("test7")
    @ResponseBody
    public User test7(){
        User user = new User();
        user.setAddr("北京朝阳区");
        user.setAge(18);
        user.setName("张三");
        user.setDate(new Date());
        //将User类型转换成json字符串,并且响应给客户端
        return user;
    }

@ResponseBody注解可以加到类上,可以作用到所有方法。

或者直接写@RestController,这样也可以不写@Controller注解了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1028847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号