响应数据和结果视图

返回值分类

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. OKR的两个基本原则

    <启示录>作者,前易贝高级副总裁,硅谷产品集团创始人马蒂·卡根在<OKR工作法>的序言中提到了目标管理法的两个原则: 不要告诉下属具体怎么做,要告诉他们你要什么,他们就会给你满 ...

  2. vue解决大文件断点续传

    一.概述 所谓断点续传,其实只是指下载,也就是要从文件已经下载的地方开始继续下载.在以前版本的HTTP协议是不支持断点的,HTTP/1.1开始就支持了.一般断点下载时才用到Range和Content- ...

  3. 使用jmx-exporter&&jmxtrans && nexus jmx 暴露nexus 系统指标信息

    以下演示一个简单的使用jmxexporter 暴露nexus jmx 指标为prometheus metrics,同时也集成了一个简单的jmxtrans 输出数据到 graphite 环境准备 doc ...

  4. tensorflow手写数字识别(有注释)

    import tensorflow as tf import numpy as np # const = tf.constant(2.0, name='const') # b = tf.placeho ...

  5. LOJ6609 无意识的石子堆【加强版】【容斥原理,计数】

    题目描述:在一个\(n\times m\)的网格中,放\(2n\)个棋子,使每一行和每一列都不超过两个棋子.求方案数\(\mathrm{mod} \ 943718401\). 数据范围:\(n\le ...

  6. mysql upper() 函数

    mysql> select upper(" cdcdcd"); +------------------+ | upper(" cdcdcd") | +-- ...

  7. TypeScript规则整理

    介绍我在初学 TS 开发项目中遇到的一些问题,希望对你有所帮助~   因为我们的JavaScript是弱类型语言,如果项目过大,或者团队人数很多,不仅代码风格不统一,以后还会很难维护       Ty ...

  8. pycharm 当有多个.py文件在开发环境中时,如何操作可以保证运行当前面对自己的文件?

    Alt+shift+F10选择自己的py文件,执行就可以了.

  9. shell | crontab 定时任务

    crontab工具 linux下自带的定时任务执行器 常用命令:crontab -l //显示用户的crontab文件的内容crontab -e //编辑用户的crontab文件的内容crontab ...

  10. Java-Maven(十一):Maven 项目出现pom.xml错误:Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-compiler-plugin

    Maven项目出现ERROR: eclipse更新了Maven插件后,让后就出现了以下错误: Description Resource Path Location Type Conflicting l ...