加载《SpringMVC概述》成功,点击此处阅读
首页 →文档下载

SpringMVC概述

以下为《SpringMVC概述》的无排版文字预览,完整内容请下载

SpringMVC

1.概述

2.MVC

3.SpringMVC中的核心组件

前端控制器

派发器

控制器

视图

视图解析器

4.入门案例

创建maven的webapp项目

引入依赖

填充项目结构

配置springmvc的五大组件

在web.xml中配置前端控制器(DispatchServlet)

在springmvc.xml中配置派发器(HandlderMapping)

新建一个类实现Controller接口(控制器Controller)

Controller返回ModelAndView,ModelAndView绑定视图和数据

视图解析器(ViewResolver)解析视图完成跳转

配置tomcat,启动服务

/

基于注解的入门案例

/

/

获取请求参数的几种方式:

通过传统的请求对象来获取请求参数

在springmvc中,当表单的标签的name属性的值和当前方法的形参一致时,springmvc就 可以获取当前表单数据

当表单的标签的name属性的值和当前方法的形参不一致时,可以使用@RequestParam注解来获取对应的值

通过实体类对象进行封装,获取请求参数

package com.tedu.controller;

import com.tedu.entity.Account;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

@Controller

@RequestMapping("/account")

public class AccountController {

/**

* 1.在springmvc中,当表单的标签的name属性的值和当前方法的形参一致时,springmvc就可以

* 获取当前表单数据

* 2.当表单的标签的name属性的值和当前方法的形参不一致时,可以使用@RequestParam注解来获取对应的值

* 3.通过请求对象(HttpServletRequest)进行参数的获取,通过请求对象可以进行更多操作

* 4.使用实体类对象进行数据封装,来获取请求参数,实体类对象的set方法的名字必须和表单name属性的值一致

* @param s_account

* @param password

* @param email

* @return

*/

// @RequestMapping("/save")

// public String saveAccount(@RequestParam("account")String s_account, String password, String email){

// System.out.println(s_account);

// System.out.println(password);

// System.out.println(email);

// return "success";

// }

// @RequestMapping("/save")

// public String saveAccount1(HttpServletRequest req){

// String s_account = req.getParameter("account");

// String password = req.getParameter("password");

// String email = req.getParameter("email");

// HttpSession session = req.getSession();

// System.out.println(s_account);

// System.out.println(password);

// System.out.println(email);

// return "success";

// }

@RequestMapping("/save")

public String saveAccount2(Account account){

System.out.println(account);

return "success";

}

}



向页面传值:

1.通过请求对象和session对象

2.通过ModelAndView对象传值

3.通过ModelMap对象进行传值

package com.tedu.controller;

import com.tedu.entity.Account;

import org.springframework.stereotype.Controller;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestParam;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpSession;

import java.util.HashMap;

import java.util.Map;

@Controller

@RequestMapping("/account")

public class AccountController {

/**

* 1.在springmvc中,当表单的标签的name属性的值和当前方法的形参一致时,springmvc就可以

* 获取当前表单数据

* 2.当表单的标签的name属性的值和当前方法的形参不一致时,可以使用@RequestParam注解来获取对应的值

* 3.通过请求对象(HttpServletRequest)进行参数的获取,通过请求对象可以进行更多操作

* 4.使用实体类对象进行数据封装,来获取请求参数,实体类对象的set方法的名字必须和表单name属性的值一致

* @param s_account

* @param password

* @param email

* @return

*/

// @RequestMapping("/save")

// public String saveAccount(@RequestParam("account")String s_account, String password, String email,HttpServletRequest req){

// System.out.println(s_account);

// System.out.println(password);

// System.out.println(email);

// req.setAttribute("name","admin_admin_admin");

// HttpSession session = req.getSession();

// session.setAttribute("age","150");

// return "success";

// }

// @RequestMapping("/save")

// public ModelAndView saveAccount(){

// String name = "qwer";

// /*map集合就是需要传递的数据*/

// Map map = new HashMap();

// map.put("name1",name);

// map.put("age1",20);

// /*携带数据和具体需要跳转的页面*/

// ModelAndView model = new ModelAndView("success1",map);

// return model;

// }

/* @RequestMapping("/save")

public String saveAccount(ModelMap model){

String name = "zhoujin";

int age = 18;

model.addAttribute("name1",name);

model.addAttribute("age1",age);

return "success1";

}*/

/**

* 向页面传值的几种方式:

* 1.通过请求对象和session对象

* 2.通过ModelAndView对象传值

* 3.通过ModelMap对象进行传值

*/

// @RequestMapping("/save")

// public String saveAccount1(HttpServletRequest req){

// String s_account = req.getParameter("account");

// String password = req.getParameter("password");

// String email = req.getParameter("email");

// HttpSession session = req.getSession();

// System.out.println(s_account);

// System.out.println(password);

// System.out.println(email);

// return "success";

// }

// @RequestMapping("/save")

// public String saveAccount2(Account account){

// System.out.println(account);

// return "success";

// }

}



处理乱码问题:

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

encodingFilter

/*



重定向

获取JSON对象和响应JSON对象

1.从前端发送JSON对象到后台服务器

后台需要使用的注解是@RequestBody

2.从后台服务器响应JSON对象给前端

后台需要使用的注解是@ResponseBody

释放静态资源(因为前端控制器拦截了所有的请求,因此静态资源也被拦截,可以通过以下配置释放静态资源)



2.从前端页面使用ajax发送JSON对象到后台,后台需要使用@RequestBody注解来获取JSON对象

$(function () {

$("#btn").click(function () {

$.ajax({

url:"test/ajaxJson",

contentType:"application/json;charset=UTF-8",

data:"{'name':'张三','age':18}",

type:"post",

success:function (data) {

alert(data);

}

});

});

});





$(function () {

$("#btn").click(function () {

$.ajax({

url:"test/ajaxJson",

contentType:"application/json;charset=UTF-8",

data:"{'name':'张三','age':18}",

type:"post",

success:function (data) {

alert(data);

}

});

});

});





@Controller

@RequestMapping("/test")

public class JSONController {

@RequestMapping("/ajaxJson")

public String ajaxJson(@RequestBody String json){

System.out.println(json);

return "success";

}

}



从后台响应JSON对象到前端

@RequestMapping("/ajaxJson")

@ResponseBody

public User ajaxJson(@RequestBody String body){

System.out.println(body);

User u = new User();

u.setName("哈哈");

u.setAge(20);

return u;

}



上传文件

1.上传文件表单的ContentType类型必须是multipart/form-data

2.上传文件必须使用POST请求

/

1.传统文件上传

表单必须以及multipart/form-data方式提交

表单必须用POST提交

引入依赖commons-fileupload,commons-io

@RequestMapping("/fileUpLoad")

public String testFileUpLoad(HttpServletRequest request) throws Exception {

System.out.println("上传文件");

//1.确定文件上传的位置

ServletContext servletContext = request.getSession().getServletContext();

String path = servletContext.getRealPath("/images/");

File file = new File(path);

if(!file.exists()){

file.mkdirs();

}

//2.拿到文件(通过解析请求对象(request)拿到上传文件)

//2.1通过commons-fileupload拿到磁盘文件项工厂对象

DiskFileItemFactory factory = new DiskFileItemFactory();

//2.2解析请求对象

ServletFileUpload fileUpload = new ServletFileUpload(factory);

内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 //获取文件的名字

String filename = item.getName();

String suffix = filename.substring(filename.indexOf("."));

// long l = System.currentTimeMillis();

String newName = UUID.randomUUID().toString();

//写入文件

item.write(new File(path,newName+suffix));

}

}

return "success";

}





2.springmvc文件上传

/

表单必须以及multipart/form-data方式提交

表单必须用POST提交

配置文件解析器

控制层拿到解析的文件进行存储

表单

/

配置文件解析器

/

控制层

/

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。

  1. The_Necklace_Guy_de_Maupassant
  2. 09-人教九年级英语 Unit 5-6【免费分享 关注VX公众号:初中网课云】
  3. 【热点英语试题】新冠病毒肺炎的英语原创试题最全汇总(1)
  4. 中学2020届高三下学期3月线上考试 英语试卷word
  5. 自学任务1:新型冠状病毒-视频作业
  6. C 编程练习题大全(带答案)
  7. Unit 1 Reading1[课件]
  8. WHO新冠疫苗技术线路(英文)
  9. lesson03-01 Java类基础知识--Java类结构
  10. 高中英语必修一unit 2 English around the world 课件
  11. 【冀教版】八上:Unit 1《Lesson 1 Back to School》ppt课件(2)
  12. HLPE-Report-8_EN
  13. ann
  14. java100个经典例子
  15. UnitFourBodyLanguage
  16. Unit1Howtallareyou?
  17. Unit 3 Look at me! Part B Let's learn教案
  18. reading教案
  19. 教学设计与反思咸永丽
  20. 阿甘正传(中英文台词对照)

以上为《SpringMVC概述》的无排版文字预览,完整内容请下载

SpringMVC概述由用户“liuzhenhua1986”分享发布,转载请注明出处
XXXXX猜你喜欢
回顶部 | 首页 | 电脑版 | 举报反馈 更新时间2021-04-11 11:35:13
if(location.host!='wap.kao110.com'){location.href='http://wap.kao110.com/html/19/15/50557.html'}ipt>if(location.host!='wap.kao110.com'){location.href='http://wap.kao110.com/html/19/15/50557.html'}ipt>