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取参数值、把值放入作用域方法相关推荐

  1. java 获取类的注解_Java 自定义注解通过反射获取类、方法、属性上的注解

    反射 JAVA中的反射是运行中的程序检查自己和软件运行环境的能力,它可以根据它发现的进行改变.通俗的讲就是反射可以在运行时根据指定的类名获得类的信息. 注解的定义 注解通过 @interface 关键 ...

  2. java 获取所有实现类_Java动态获取实现某个接口下所有的实现类对象集合

    Java动态获取实现某个接口下所有的实现类对象集合 最近有个需求,我需要获取所有同一类型的定时任务的对象,并自动执行. 我想的方案是:直接获取某个接口下面所有的实现类的对象集合,方便以后只需要 实现这 ...

  3. java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...

    条件:1.请求URL:http://ip:port/yypt/*.jsonRequest 2.接口采用http post协议.Content-Type为application/json 调用流程: 第 ...

  4. java 获取手机归属地_java 获取手机归属地

    java 获取手机归属地 [2021-01-30 20:46:44]  简介: php去除nbsp的方法:首先创建一个PHP代码示例文件:然后通过"preg_replace("/( ...

  5. java cookie 取不到_java中Servlet Cookie取不到值原因解决办法

    java中Servlet Cookie取不到值原因解决办法 现象: 在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到 ...

  6. java获取图片主色_Java获取彩色图像中的主色彩的实例代码

    本文讲述了java获取彩色图像中的主色彩的实例代码.分享给大家供大家参考,具体如下: 一:基本思路 对于一张rgb色彩空间的彩色图像,很多时间我们想通过程序获得该图像有几种主要的色彩,但是对一般图像来 ...

  7. java获取当前日期 星期几_java获取当前日期是星期几的方法

    java获取当前日期是星期几的方法 发布时间:2020-06-29 11:16:15 来源:亿速云 阅读:133 作者:Leah 本篇文章为大家展示了java获取当前日期是星期几的方法,代码简明扼要并 ...

  8. java获取当前年月日历_java万年历,获取该年月日历表

    这篇文章主要介绍了java获取对应年月分日历表有需要的朋友可以来参考下 这篇文章应用java技术输入年份和月份获取该年月日历表,下面通过一段代码给大家做展示: 输入年份和月份,打印出这个月的日历表 1 ...

  9. java 获取下一年_JAVA获取下一年,下个月,下一天;月份为何以0开始?

    JAVA获取下一年,下个月,下一天:月份为何以0开始? JAVA获取下一年,下个月,下一天:月份为何以0开始? 活不多说,直接上代码: public static void main(String[] ...

最新文章

  1. SysAid 9.0 发布,增加移动设备管理功能
  2. 关于一道简单的Java 基础面试题的剖析: short s1=1;s1 = s1 +1会报错吗?
  3. QCustomplot几种清理曲线数据方法
  4. 166. 分数到小数
  5. OpenCV初探 —— VS2019配置环境
  6. java学习之—链表(3)
  7. log4j:warn找不到_修复log4j WARN找不到记录器的附加程序,请正确初始化log4j系统
  8. SP263 PERIOD - Period
  9. thinkphp __hash__
  10. 转载 关于git的常用命令总结
  11. Vue中解决移动端点击300毫秒延迟的问题
  12. 啊哈C语言答案,啊哈c语言开头的题,哪位大佬来试试?
  13. 【数据结构排序算法(五)】二路归并排序
  14. 超全!我常用的70个数据分析网址
  15. C++基础笔记——汇总版(上)
  16. ios使用theos tweak logify.pl自动hook .h头文件中所有的方法
  17. 三角形边长求高的c语言函数公式,各种三角形边长的计算公式-三角形三边公式...
  18. PHP如何使用Ds\Deque clear()函数?用法示例
  19. android UI设计图片和文字尺寸px对应dp、sp值换算
  20. LED电子显示屏真彩显示的几种关键技术[转]

热门文章

  1. eval() python_如何使用 Python 编写 vim 插件
  2. oracle wms连不上,几个WMS的问题处理
  3. google浏览器打开关闭标签
  4. Android App优化之提升你的App启动速度之实例挑战
  5. android studio 中使用lambda表达式
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的汽车维修管理平台
  7. 电力与计算机科学技术,上海电力大学计算机科学与技术专业
  8. WPF中如何重新定义Main函数
  9. 学习笔记(五)——数据适配器、数据表、数据网格视图控件的综合应用。
  10. POJ 2762 Going from u to v or from v to u? (判断单连通)