java获取作用域的值_Java-springMVC框架:springMVC取参数值、把值放入作用域方法
Java-springMVC框架:springMVC取参数值、把值放入作用域方法
package com.zp.upload;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts2.json.JSONException;
import org.apache.struts2.json.JSONUtil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.bind.support.SessionStatus;
import org.springframework.web.servlet.ModelAndView;
import com.zp.bean.User;
@Controller
@RequestMapping("model")
@SessionAttributes("sessionUser")
public class ModelMapController {
/***********************************参数获取的方式**********************************************/
//http://localhost:8080/zpupload/model/index1/3/fyl.html
@RequestMapping("/index1/{id}/{name}")
public String index1(@PathVariable("id") Integer id,@PathVariable("name") String username) {
System.out.println("参数一:id="+id+",参数二:username="+username);
//结果为:参数一:id=3,参数二:username=fyl
return "model/index1";
}
//http://localhost:8080/zpupload/model/index2.html?id=56&name=mm
@ResponseBody
@RequestMapping("/index2")
public String index2(Integer id,String name) {
System.out.println("参数一:id="+id+",参数二:name="+name);
//结果:参数一:id=56,参数二:name=mm
return "index2";
}
//http://localhost:8080/zpupload/model/index3.html?username=mm&age=17&address=北京
@ResponseBody
@RequestMapping("/index3")
//参数名要和User 类属性名一致,属性也要相同(例如Integer不能穿String类型的值)
public String index3(User user) {
System.out.println("username="+user.getUsername()+";age="+user.getAge()+";address="+user.getAddress());
//结果:username=mm;age=17;address=北京
return "index3";
}
//http://localhost:8080/zpupload/model/index4.html?name=fyl
@ResponseBody
@RequestMapping("/index4")
public String index4(HttpServletRequest request) {
System.out.println(request.getParameter("name"));
//结果:fyl
return "index4";
}
/**************作用域的问题 reuqest session application ************/
/**************作用域的范围:request*******/
/**
* index5.jsp EL表达式返回值
1111 ${message }
2222 ${user.username }
3333 ${user.age }
4444 ${sessionMessage }
5555 ${sessionUser.username }
6666 ${sessionUser.age }
*/
@RequestMapping("/index5")
public String index5(HttpServletRequest request) {
request.setAttribute("message", "request作用域-HttpServletRequest-index5");
return "model/index5";
}
@RequestMapping("/index6")
public String index6(ModelMap map) {
map.addAttribute("message", "request作用域-ModelMap-index6");
return "model/index5";
}
@RequestMapping("/index7")
public ModelAndView index7() {
//视图和作用域融合体
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("model/index5");
modelAndView.addObject("message", "request作用域-ModelAndView-index7");
return modelAndView;
}
//@ModelAttribute 需要传递对象
@RequestMapping("/index8")
public String index8(@ModelAttribute("user") User user) {
user.setUsername("request作用域-@ModelAttribute-index8");
user.setAge(18);
return "model/index5";
}
/**************以流的方式返回数据 *******/
@ResponseBody
@RequestMapping("/data1")
public String data1(User user) throws JSONException {
user.setUsername("MM");
user.setAddress("北京");
List patterns = new ArrayList<>();
patterns.add(Pattern.compile("age|address"));
//不显示key为"age|address",不显示null,以JSON方式返回 {"username":"MM"}
return JSONUtil.serialize(user, patterns, null, false, true, false);
}
@RequestMapping("/data2")
public void data2(HttpServletResponse response) throws IOException, JSONException {
//response.setCharacterEncoding("UTF-8");
response.setContentType("application/json;charset=utf-8");
User user = new User();
user.setUsername("ff");
user.setAge(18);
user.setAddress("海淀区");
PrintWriter writer = response.getWriter();
writer.println(JSONUtil.serialize(user));
writer.flush();
writer.close();
}
/**************作用域的范围:session*******/
@RequestMapping("/index9")
public String index9(HttpServletRequest request) {
//放入session域后,其他请求也会取到sessionMessage 值
request.getSession().setAttribute("sessionMessage", "session作用域-@-index9");
//request.setAttribute("sessionMession", "session作用域-@-index9");
return "model/index5";
}
/*的时候,方法的@ModelAttribute先调用 会调用一个指明:@ModelAttribute隐式的对象创建,
* 第一步
* 如果@SessionAttributes没有sessionUser属性
* 带@ModelAttribute方法先执行,
@ModelAttribute("sessionUser")
public User getUser() {
return new User();
}
上面代码及:User user = new User();
对象创建成功以后在赋给 @SessionAttributes
session.setAttribute("sessionUser",user);
* 第二步(index10)
@ModelAttribute("sessionUser") User user
User user = (User)session.getAttribute("sessionUser");
user.setAge(17);
* */
@RequestMapping("/index10")
public String index10(@ModelAttribute("sessionUser") User user) {
user.setUsername("session作用域-@ModelAttribute-index10");
user.setAge(17);
return "model/index5";
}
//@ModelAttribute隐式的对象
@ModelAttribute("sessionUser")
public User getUser() {
return new User();
}
/**************注销session*******/
@RequestMapping("/logout")
public String logout(HttpSession session) {
session.invalidate();//清除所有的会话
//session.removeAttribute("user");
return "model/index5";
}
@RequestMapping("logout2")
public String logout2(SessionStatus sessionStatus) {
sessionStatus.setComplete();
return "model/index5";
}
/*application的获取*/
//@RequestMapping("/application")
//public String application(ServletContext context){
//System.out.println(context);
//return "ok";
//}
//@RequestMapping("/application")
//public String application(HttpServletRequest request){
//request.getServletContext();
//return "ok";
//}
}
java获取作用域的值_Java-springMVC框架:springMVC取参数值、把值放入作用域方法相关推荐
- java 获取类的注解_Java 自定义注解通过反射获取类、方法、属性上的注解
反射 JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 注解的定义 注解通过 @interface 关键 ...
- java 获取所有实现类_Java动态获取实现某个接口下所有的实现类对象集合
Java动态获取实现某个接口下所有的实现类对象集合 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行. 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这 ...
- java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...
条件:1.请求URL:http://ip:port/yypt/*.jsonRequest 2.接口采用http post协议.Content-Type为application/json 调用流程: 第 ...
- java 获取手机归属地_java 获取手机归属地
java 获取手机归属地 [2021-01-30 20:46:44] 简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...
- java cookie 取不到_java中Servlet Cookie取不到值原因解决办法
java中Servlet Cookie取不到值原因解决办法 现象: 在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到 ...
- java获取图片主色_Java获取彩色图像中的主色彩的实例代码
本文讲述了java获取彩色图像中的主色彩的实例代码.分享给大家供大家参考,具体如下: 一:基本思路 对于一张rgb色彩空间的彩色图像,很多时间我们想通过程序获得该图像有几种主要的色彩,但是对一般图像来 ...
- java获取当前日期 星期几_java获取当前日期是星期几的方法
java获取当前日期是星期几的方法 发布时间:2020-06-29 11:16:15 来源:亿速云 阅读:133 作者:Leah 本篇文章为大家展示了java获取当前日期是星期几的方法,代码简明扼要并 ...
- java获取当前年月日历_java万年历,获取该年月日历表
这篇文章主要介绍了java获取对应年月分日历表有需要的朋友可以来参考下 这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示: 输入年份和月份,打印出这个月的日历表 1 ...
- java 获取下一年_JAVA获取下一年,下个月,下一天;月份为何以0开始?
JAVA获取下一年,下个月,下一天:月份为何以0开始? JAVA获取下一年,下个月,下一天:月份为何以0开始? 活不多说,直接上代码: public static void main(String[] ...
最新文章
- SysAid 9.0 发布,增加移动设备管理功能
- 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
- QCustomplot几种清理曲线数据方法
- 166. 分数到小数
- OpenCV初探 —— VS2019配置环境
- java学习之—链表(3)
- log4j:warn找不到_修复log4j WARN找不到记录器的附加程序,请正确初始化log4j系统
- SP263 PERIOD - Period
- thinkphp __hash__
- 转载 关于git的常用命令总结
- Vue中解决移动端点击300毫秒延迟的问题
- 啊哈C语言答案,啊哈c语言开头的题,哪位大佬来试试?
- 【数据结构排序算法(五)】二路归并排序
- 超全!我常用的70个数据分析网址
- C++基础笔记——汇总版(上)
- ios使用theos tweak logify.pl自动hook .h头文件中所有的方法
- 三角形边长求高的c语言函数公式,各种三角形边长的计算公式-三角形三边公式...
- PHP如何使用Ds\Deque clear()函数?用法示例
- android UI设计图片和文字尺寸px对应dp、sp值换算
- LED电子显示屏真彩显示的几种关键技术[转]
热门文章
- eval() python_如何使用 Python 编写 vim 插件
- oracle wms连不上,几个WMS的问题处理
- google浏览器打开关闭标签
- Android App优化之提升你的App启动速度之实例挑战
- android studio 中使用lambda表达式
- 基于JAVA+SpringMVC+Mybatis+MYSQL的汽车维修管理平台
- 电力与计算机科学技术,上海电力大学计算机科学与技术专业
- WPF中如何重新定义Main函数
- 学习笔记(五)——数据适配器、数据表、数据网格视图控件的综合应用。
- POJ 2762 Going from u to v or from v to u? (判断单连通)