返回

SpringMVC - 获取请求参数,作用域

发布时间:2022-11-22 10:21:17 306
# java# java# 数据

一、获取请求参数

1.原生serveltAPI

@Controller
public class TestController{

@RequestMapping("/test01")
public String test01(HttpServletRequest request) {

String username = request.getParameter("username");
String password = request.getParameter("password");
System.out.println("username : " + username + ", password : " + password);
return "success";
}

}

2.控制器参数列表

@Controller
public class TestController{

// 当请求参数与参数列表名一致时,会自动给形参赋值。
@RequestMapping("/test01")
public String test01(String username,String password) {
System.out.println("username : " + username + ", password : " + password);
return "success";
}

}

3.@Requestparam

@Controller
public class TestController{

// 当请求参数与形参列表名不一致时,使用@Requestparam注解
@RequestMapping("/test01")
public String test01(@RequestParam("username") String user_name, @Requestparam("password") String pass_word) {
System.out.println("username : " + user_name + ", password : " + pass_word);
return "success";
}

}

4.@RequestHeader  获取请求头

@Controller
public class TestController{

@RequestMapping("/test01")
public String test01(@RequestHader("Host") String location) {
System.out.println("Host : " + locaiont);
return "success";
}

}

5.@CookieValue   获取cookie存储的值

@Controller
public class TestController{

@RequestMapping("/test01")
public String test01(@CookieValue("JSESSIONID") String JSESSIONID) {
System.out.println("JSESSIONID : " + JSESSIONID);
return "success";
}

}

6.实体类

@Controller
public class TestController{

// 当请求参数与java实体类的属性一致,会将请求参数自动生成实体类
@RequestMapping("/test01")
public String test01(User user) {
System.out.println(user);
return "success";
}

}

二、作用域

四大作用域 :

1.page  (淘汰)

2.request

3.session

4.application

向request域中存放数据

1.使用原生servletAPI

@Controller
public class TestController{

@RequestMapping("/test01")
public String test01(HttpServeltRequest request) {
request.setAttribute("msg","servlet");
return "success";
}

}

2.使用ModelAndView

@Controller
public class TestController{

@RequestMapping("/test01")
public ModelAndView test01() {
ModelAndView mv = new ModelAndView();
mv.addObject("msg","ModelAndView");
mv.setViewName("success");
return mv;
}

}

3.使用Model

@Controller
public class TestController{

@RequestMapping("/test01")
public String test01(Model model) {
model.addAttribute("msg","model");
return "success";
}

}

4.使用ModelMap

@Controller
public class TestController{

@RequestMapping("/test01")
public String test01(ModelMap map) {
map.addAttribute("msg","ModelMap");
return "success";
}

}

5.使用Map

@Controller
public class TestController{

@RequestMapping("/test01")
public String test01(Map<String,String> map) {
map.put("msg","map");
return "success";
}

}

     向session作用域存放数据

1.原生servlet

@Controller
public class TestController{

@RequestMapping("/test03")
public String test03(HttpServletRequest request) {
HttpSession session = request.getSession();
session.setAttribute("msg","session");
return "success";
}

}

      向application作用域存放数据

1.原生servlet

@Controller
public class TestController{

@RequestMapping("/test03")
public String test04(HttpServletRequest request) {
HttpSession session = request.getSession();
ServletContext application = session.getServletContext();
application.setAttribute("msg","application");
return "success";
}

}
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线
下一篇
java高并发-如何设计秒杀系统 2022-11-22 09:38:30