响应数据和结果视图

返回值分类

1.返回值是String

返回值类型是字符串的,会根据返回的字符串去寻找相对应的jsp页面

@Controller
@RequestMapping("/user")
public class UserController {
//返回值类型是String
@RequestMapping("/testString")
public String testString(Model model){
System.out.println("testString方法执行了");
//模拟从数据库中查询出User对象
User user = new User();
user.setAge(20);
user.setPassword("123");
user.setUsername("任我行");
//使用model把对象存起来
model.addAttribute("user",user);
return "success";
}

2.返回值是Void

默认请求路径是什么就会去寻找请求路径的jsp

编写请求转发和重定向的程序和直接响应

@Controller
@RequestMapping("/user")
public class UserController {
//返回值类型是String
@RequestMapping("/testString")
public String testString(Model model){
System.out.println("testString方法执行了");
//模拟从数据库中查询出User对象
User user = new User();
user.setAge(20);
user.setPassword("123");
user.setUsername("任我行");
//使用model把对象存起来
model.addAttribute("user",user);
return "success";
}
//返回值类型是Void
//请求转发是一次请求:不用编写项目的名称 @RequestMapping("/testVoid")
public void testVoid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("testVoid方法执行了");
//编写请求转发的程序
// request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);//转发
//response.sendRedirect(request.getContextPath()+"/index.jsp");//重定向
//设置中文乱码
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.getWriter().print("hello,大笨蛋");
return;
}
}

返回值是ModelAndView对象(存JavaBean对象和跳转页面)

    //返回值类型是ModelAndView
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
ModelAndView mv = new ModelAndView();
System.out.println("testModelAndView执行了");
//模拟从数据库中查询出User对象
User user = new User();
user.setAge(20);
user.setPassword("123");
user.setUsername("令狐冲");
//调用mv的方法
//user对象存储到mv对象中,同时也会把user对象存入到requst对象
mv.addObject("user",user);
//想跳转的页面
mv.setViewName("success");
return mv;
}

转发或重定向

  //返回值类型是ModelAndView
@RequestMapping("/testForwardOrRedirect")
public String testForwardOrRedirect(){
System.out.println("testForwardOrRedirect执行了");
// return "forward:/WEB-INF/pages/success.jsp"; //不用加项目名称,框架已经加好
return "redirect:/index.jsp";
}

响应json数据值过滤静态资源

<%--
Created by IntelliJ IDEA.
User: Yuan
Date: 2019/7/22
Time: 14:39
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html>
<head>
<title>Title</title> <script src="js/jquery.min.js"></script> <script>
//页面加载,绑定单击事件
$(function(){
$("#btn").click(function(){
alert("hello btn");
})
});
</script>
</head>
<body> <br>
<button id="btn">发送ajax请求</button> </body>
</html>

上面的单击事件无法响应,原因是DispatcherServlet把静态资源给拦截了

解决方案

告诉前端控制器,哪些静态资源不拦截

响应jso数据值发送ajax的请求

<%--
Created by IntelliJ IDEA.
User: Yuan
Date: 2019/7/22
Time: 14:39
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html>
<head>
<title>Title</title> <script src="js/jquery.min.js"></script> <script>
//页面加载,绑定单击事件
$(function(){
$("#btn").click(function(){
$.ajax({
//编写json格式,设置属性和值
//url:请求服务器的路径
url:"user/testAjax",
//contentType:发送内容给服务器是的编码类型
contentType:"application/json;charset=UTF-8",
//data:发送到服务器的数据
data:'{"username":"hehe","password":"123","age":"20"}',
//dataType预期服务器返回的类型
dataType:"json",
//tpye,请求方式
type:"post",
//success:请求成功后的回调函数
success:function(data){
//data服务器端响应的json的数据,进行解析 }
});
});
});
</script>
</head>
<body>
<br>
<button id="btn">发送ajax请求</button>
</body>
</html>
 @RequestMapping("/testAjax")
public void testAjax(@RequestBody String body){
System.out.println("ajax执行了....");
System.out.println(body);
}

文件上传之上传原理分析

文件上传的必要前提

1.form表单的enctype取值必须是:multipart/form-data

2.method属性取值必须是Post

3.提供一个文件选择域

SpringMVC笔记2的更多相关文章

  1. SpringMVC笔记——SSM框架搭建简单实例

    落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...

  2. SpringMvc 笔记

    整理出来是 SpringMvc 笔记 方便以后查询 框架太多了 不经常使用 忘记的可能性很大 自己整理一套笔记 一看就明白了 1 对比 原始请求响应流程 1 发送请求 --> 2 控制层 --& ...

  3. 初学者的springmvc笔记02

    springmvc笔记 springmvc拦截器,spring类型转换,spring实现文件上传/下载 1.SpringMVC标准配置 导入jar包:core contaner 在web.xml文件中 ...

  4. SpringMVC笔记

    Struts1是采用单例模式的,在并发访问中出来资源混乱,于是出现Struts2被设计为多例的解决并发产生的 数据混乱由于Struts2引入了值栈,拦截器,OGNL等,,,是访问速度下降在原生的JSP ...

  5. 框架SpringMVC笔记系列 二 传值

    主题:SpringMVC(第一节中再回顾复习一次) 学习资料参考网址: 1.http://www.icoolxue.com 2.http://haohaoxuexi.iteye.com/blog/13 ...

  6. 框架SpringMVC笔记系列 一 基础

    主题:SpringMVC 学习资料参考网址: 1.http://www.icoolxue.com 2.http://aokunsang.iteye.com/blog/1279322 1.SpringM ...

  7. 传智springMVC笔记

    springmvc 第一天 springmvc的基础知识 课程安排: 第一天:springmvc的基础知识 什么是springmvc? springmvc框架原理(掌握) 前端控制器.处理器映射器.处 ...

  8. springmvc笔记(来自慕课网)

    1.准备工作:springmvc相关的jar包. 2.这里我们先用eclipse来操作. 首先看一个接口编程,后面的所有知识点都是通过这个接口编程引出的. OneInterface.java pack ...

  9. springmvc笔记(基本配置,核心文件,路径,参数,文件上传,json整合)

    首先导入jar包 大家注意一下我的springmvc,jackson,common-up的jar包版本.其他版本有可能出现不兼容. src文件: webroot目录: web.xml <?xml ...

  10. SpringMvc笔记-对RESTFUL风格的配置

    1.@RequestMapping注解可以使用如下参数: 1,params:例如params={'username',"age!=100"}表示需要usernmame并且age 属 ...

随机推荐

  1. 限流神器之-Guava RateLimiter 实战

    前段时间,项目中需要对某些访问量较高的路径进行访问并发数控制,以及有些功能,比如Excel导出下载功能,数据量很大的情况下,用户不断的点击下载按钮,重复请求数据库,导致线上数据库挂掉.于是在这样的情况 ...

  2. 微信小程序电影模板

    [外链图片转存失败(img-STw401rR-1565101469846)(https://upload-images.jianshu.io/upload_images/11158618-52efd0 ...

  3. mysql 通配符%以及_

    %匹配任意长度 _ 匹配单个字符 mysql> select * from table1; +----------+------------+-----+-------------------- ...

  4. mysql 添加表字段

    mysql> alter table table1 add price ) not null; Query OK, rows affected (0.05 sec) Records: Dupli ...

  5. 15、基于consul+consul-template+registrator+nginx实现自动服务发现

    一.架构图 二.组件介绍 1.Registrator Registrator:一个由Go语言编写的,针对docker使用的,通过检查本机容器进程在线或者停止运行状态,去注册服务的工具.所以我们要做的实 ...

  6. Spring Boot 配置文件 bootstrap vs application 到底有什么区别?

    用过 Spring Boot 的都知道在 Spring Boot 中有以下两种配置文件 bootstrap (.yml 或者 .properties) application (.yml 或者 .pr ...

  7. springMvc 入门二

    目的:请求参数接受,输出,常见的注解(在上一篇入门1基础上) 1:请求参数的绑定 1.1绑定的机制 表单中请求参数都是基于key=value的. SpringMVC绑定请求参数的过程是通过把表单提交请 ...

  8. 关于资源获取(请把https改为http)

    所有demo以及资源获取,请把https改为http.

  9. arcpy实例教程-上游流域下游流域查找

    arcpy实例教程-上游流域下游流域查找 商务合作,科技咨询,版权转让:向日葵,135-4855_4328,xiexiaokui#qq.com 功能:对于选定某一流域,查找其直接(一次)的上游流域和下 ...

  10. easyui datagrid怎么动态获取表头的列名及显示名称

    说明:目前使用easyui combobox多选属性,绑定的数据源是来自datagrid的表头的列名及显示名称 处理方法: //获取冻结的数据源并返回key,value格式数据 var GetFroz ...