Springmvc_响应_请求

前提条件:建立在springmvc_环境搭建好的基础上,此处主要是修改TestController.

第一部分:响应

-------------------需求一:响应浏览器一句话--------------------------------------------------------------------------------------------------

//表明:这是个控制器
@Controller
public class TestController {
    //需求1:响应浏览器一句话
    @RequestMapping("show01")
    public ModelAndView show01(){
        ModelAndView mv = new ModelAndView("hello");
        mv.addObject("msg","这是第二个mvc");
        return mv;
    }

访问的hello页面:

<body>

<h1>${msg}</h1>

</body>

访问及结果:

 

-------------------需求二:将BookList放到model中返回, 且 jsp页面显示-------------------------------------------------------------------------

@RequestMapping("show02")
public ModelAndView show02(){
    //将10本书放入到集合之中
    List<Book> books = new ArrayList<>();
    for(int i=0;i<10;i++){
        Book book = new Book();
        book.setId(i);
        book.setName("宝宝"+i);
        book.setPrice(9.9+i);
        books.add(book);
    }
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("books",books);
    return mv;
}

访问及结果:

 

 

----需求3:将booklist转成json字符串返回给浏览器-------------------------------------------------------------@RequestMapping("show03")
//服务器给浏览器相应json,所以必须写ResponseBody
@ResponseBody
public List<Book> show03(){
    //将10本书放入到集合之中
    List<Book> books = new ArrayList<Book>();
    for(int i=0;i<10;i++){
        Book book = new Book();
        book.setId(i);
        book.setName("葵花宝典"+i);
        book.setPrice(9.9+i);
        books.add(book);
    }
    return books;
}

结果:json字符串

----需求4:只需要返回视图名称    ------------------------------------------------------------------------------------------------

@RequestMapping("show04")
public String show04(){
    return "hello";
}

结果:

因为没有返回的值,所以页面是空白.

----需求5:除了返回视图名称,还要返回数据---,返回值是String-----------------------------------------------------------------------------------------

@RequestMapping("show05")
public String show05(Model model){
    model.addAttribute("msg","我是show5,需求:除了返回视图名称, 还要增加数据");
    return "hello";
}

结果:

----需求6:重定向到show01----------------------------------------------------------------------------------------

@RequestMapping("show06")
public String show06(){
    return "redirect:/show01.do";
}

结果:访问show06.do,结果是重定向到show01.do

 

----需求7:请求转发到show01----------------------------------------------------------------------------------------

@RequestMapping("show07")

public String show07(){

       return "forward:/show01.do";

}

结果:show07展示的是show01的结果.

----需求8:既不想返回视图名称,也不返回视图内容,用viod-------------------------------------------------------------
@RequestMapping("show08")
@ResponseStatus(HttpStatus.OK)
public void show08(){
    System.out.println("我什么都不想干,不返回,但是要告诉浏览器你收到了信息,状态ok");
}

结果是空白页面,只是在控制台输出了一句话,此处必须写responseStatus(HttpStatus.ok),要不然没有返回值,会报404

 

第二部分:请求:

----需求9:获取servlet的相关对象,如 request, response. session等-----------------------------------------------

@RequestMapping("show09")
public ModelAndView show09(HttpServletRequest request, HttpServletResponse response, HttpSession session){
    request.setAttribute("msg1", "我是request, 我存放了数据:request=" + request);
    request.setAttribute("msg2", "我是response, 我被保存到request域容器中, response=" + response);
    session.setAttribute("msg3", "我是session, 我存放了数据, session=" + session);

    ModelAndView mv = new ModelAndView("servlet-test");
    return mv;
}

结果:均可以获取到

----需求10:获取路径占位符参数--------------------------------------------------------------------------------------

@RequestMapping("show10/{name}/{age}")
public ModelAndView show10(@PathVariable("name") String name, @PathVariable("age") int age){
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("msg","姓名="+name+"年龄="+age);
    return mv;
}

结果:

----需求11:获取表单参数值信息--------------------------------------------------------------------------------------

@RequestMapping("show11")
@ResponseStatus(HttpStatus.OK)
public void show11(Book book){
    System.out.println("接收javabean数据"+book);
}

结果:用postman模仿表单提交数据

控制台输出结果:说明获取浏览器提交表单数据成功

 

----需求12:注解RequestParm获取浏览器提交数据--------------------------------------------------------------------------------------

@RequestMapping("show12")
//此处required = true是默认的,必须有参数;defaultValue = "大黄",默认值是"大黄"
public ModelAndView show12(@RequestParam(value = "username",required = true,defaultValue = "大黄") String username){
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("msg","username="+username);
    return mv;
}

结果:url栏必须写username="..",不写默认是大黄.

----需求13:获取cookie的值-------------------------------------------------------------------------------------------------------------------

@RequestMapping("show13")
public ModelAndView show13(@CookieValue("JSESSIONID") String cookie){
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("msg","cookie="+cookie);
    return mv;
}

结果:正常获取

 

----需求14:将表单数据封装到bookList中-------------------------------------------------------------------------------------------------------------------

 @RequestMapping("show14")
public ModelAndView show14(BookForm bookForm){
     ModelAndView mv = new ModelAndView("hello");
     mv.addObject("msg","bookForm="+bookForm.getBookList());
     return mv;
 }

结果:模拟提交

结果:

----需求15:将浏览器发送的JSon转成对象JavaBean--------------------------------------------------------------------------------------

@RequestMapping("show15")
public ModelAndView show15(@RequestBody() Book book){
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("msg","book="+book);
    return mv;
}

结果:postman模拟提交一条json数据

 

 

----需求16:将浏览器发送的JSon数组转成对象JavaBean集合--------------------------------------------------------------------------------------

@RequestMapping("show16")
public ModelAndView show16(@RequestBody() List<Book> books){
    ModelAndView mv = new ModelAndView("hello");
    mv.addObject("msg","books="+books);
    return mv;

}

结果:用postman 模拟提交json数组

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
SpringMVC是一个用于构建Web应用程序的Java框架。在SpringMVC中,处理请求响应是通过使用控制器方法来实现的。控制器方法使用@RequestMapping注解来映射请求的URL,并通过方法参数来获取请求参数和响应对象。 在处理请求时,可以使用@RequestParam注解来获取请求参数的值。例如,可以在方法参数上使用@RequestParam注解来获取请求中的特定参数值。另外,也可以使用@PathVariable注解来获取URL中的路径参数。 在处理响应时,可以使用@ResponseBody注解将方法的返回值直接入HTTP响应体中,而不是进行视图跳转。这样可以直接返回字符串、JSON格式的数据或其他类型的数据。 另外,在SpringMVC中,还有一些核心组件,如处理器映射器、处理器适配器和视图解析器。处理器映射器负责将请求映射到相应的控制器方法,处理器适配器负责将请求参数绑定到方法参数,并调用相应的控制器方法,视图解析器负责将方法的返回值解析为视图。 总结起来,SpringMVC通过控制器方法、注解和核心组件来处理请求响应,使得开发者可以方便地构建Web应用程序。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *3* [springMVC请求响应](https://blog.csdn.net/weixin_38088097/article/details/105840310)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SpringMVC请求响应](https://blog.csdn.net/weixin_51146329/article/details/123166475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值