1、导包,四大核心包,一个切面包(AOP),logging,web,springmvc

2、配置文件,核心代码如下:

web.xml
springDispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
springDispatcherServlet
/
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
CharacterEncodingFilter
/
HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
/*
springmvc.xml
index.jsp: 首页进入
hello
获取请求参数
获取请求头
图书id
图书name
图书author
图书price
图书sales
图书stock

作者name;

作者address;


给页面携带数据

output01

java获取变量数据类型 java获取参数的方法_数据

3./WEB-INF/pages 跳转后的内容

1).success.jsp

成功!

${msg}===${reMsg}

2).testScope.jsp

测试数据带在了哪个scope

request:${requestScope.msg }
session:${sessionScope.msg }
application:${applicationScope.msg}

4.src/bean包   Author.java

public class Author {
private String name;
private String address;   Book.java:
public class Book {
private int id;
private String name;
private double price;
private int sales;
private int stock;
private Author person;
private String imgPath = "static/img/default.jpg";
private String author;
src/controller 包, HelloController.java: 如果不加,则不能访问
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/hello") //连接地址必须加上"/hello"
public String hello(){
return "success";
}
}
TestParamController.java
@Controller
public class TestParamController {
/**
* 1、直接给方法的参数位置写上一个和请求带来的参数的名字相同的变量
* 2、这个变量就封装的是带来的参数的值
* user = request.getParameter("user")
* 3、如果没有就是null
*
* @RequestParam("user"):指定获取哪个参数的值
* 1、默认发送请求必须带上这个参数;
* 否则:HTTP Status 400 - Required String parameter 'user' is not present
* 2、required=false可以设置不是必须的;没带null
* 3、defaultValue="未命名"指定没带时的默认值;
* user = request.getParameter("user");
*/
@RequestMapping("/handle01")
public String handle01(
@RequestParam(value = "user", required = false, defaultValue = "未命名") String user) {
System.out.println("获取的User:" + user);
return "success";
}
/**
* 获取请求头;
* request.getHeader("User-Agent")
* 注解做了下面这些事情
* @RequestHeader("User-Agent")String userAgent;
* userAgent = request.getHeader("User-Agent");*/
@RequestMapping("/handle02")
public String handle02(
@RequestHeader(value = "User-Agent", required = false, defaultValue = "没有的") String userAgent) {
System.out.println("User-Agent:" + userAgent);
return "success";
}
/**
* 获取某个cookie的值;
* JSESSIONID=B05C018F82AA1B0BD3845831FADFE49A
* @CookieValue("JSESSIONID")String jid
* 注解做了下面这些事情
* Cookie[] cookies = request.getCookies();
* for(Cookie c:cookies){
* if(c.getName().equals("JSESSIONID")){
* jid = c.getValue();
* }
* }*/
@RequestMapping("/handle03")
public String handle03(
@CookieValue(value = "JSESSIONID", required = false, defaultValue = "hhhhh") String jid) {
System.out.println("jid:" + jid);
return "success";
}
/*传入POJO;直接帮我们封装页面的值; 方便简单,少写很多代码,实现代码分离,解耦和
* 1、book = new Book();
* 2、把book对象中的每一个属性的值查出来,request.getParameter(属性);
* 3、把这个值设置进去
* 注意:因为SpringMVC会进行类型转换,所以提交的数据一定要是合法的,否则400错误*/
@RequestMapping("/saveBook")
public String handle04(Book book) {
System.out.println("book的值:" + book);
return "success";
}
@RequestMapping("/handle05")
// pringMVC还允许我们在请求参数上使用原生的ServletAPI HttpServletRequest HttpServletResponse
// HttpSession
public String handle05(HttpSession session, HttpServletRequest request,
HttpServletResponse response) {
session.setAttribute("msg", "哈哈哈");
request.setAttribute("reqMsg", "嘿嘿嘿");
return "success";
}
}
src/dataout/ DataOutPutController.java 给页面携带数据
@Controller //给页面携带数据
public class DataOutPutController {
/**
* 1、返回值改为ModelAndView(包含模型数据(Model)和要去的页面地址(View));
* 数据放在请求域中;
* 2、在请求参数上传入Model、Map、ModelMap都行;给他们里面保存的数据会放在请求域中
* Model、Map、ModelMap最终其实都是再有用BindingAwareModelMap;
* 相当于给BindingAwareModelMap中保存数据就是给请求域中保存
* Model Map
* || ||
* || \/
* || ModelMap
* \/ \/
* ExtendedModelMap【隐含模型】 extends ModelMap implements Model
* \/
* BindingAwareModelMap
* @return
*/
@RequestMapping("/output04")
public String output04(ModelMap model){
//视图解析器会对视图名进行拼串
model.addAttribute("msg","output04");
System.out.println(model.getClass());
return "testScope";
}
@RequestMapping("/output03")
public String output03(Model model){
model.addAttribute("msg", "output03");
System.out.println(model.getClass());
return "testScope";
}
@RequestMapping("/output02")
public String output02(Mapmap){
//视图解析器会对视图名进行拼串
map.put("msg", "output02");
System.out.println(map.getClass());
return "testScope";
}
@RequestMapping("/output01")
public ModelAndView output01(){
//视图解析器会对视图名进行拼串
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("testScope");
modelAndView.addObject("msg", "output01");
return modelAndView;
}
}

以上这篇springmvc之获取参数的方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考