javascript
SpringMVC---四大作用域
四大作用域(page,request,session,application)
request作用域
ModelAndView,ModelMap 默認都放入request里
//request作用域@RequestMapping("/put")public String put(ModelMap map){map.put("food","2個披薩");System.out.println("放入食物...");return "success";}在首頁通過${requestScope.food}得到數據
session作用域
與request唯一不同處,只需要在類的上方加入注釋如下:
@SessionAttributes({"food1"}) //food1即session變量名 //session作用域@RequestMapping("/put2")public String put(ModelMap map){map.put("food1","8個披薩");System.out.println("放入食物...");return "success";}在首頁通過${sessionScope.food1}得到數據
銷毀session作用域
在學springmvc前用:session.invalidate();進行銷毀
springmvc銷毀session作用域做法:
application作用域
//application作用域@RequestMapping("/put3")public String put(HttpSession se){ServletContext app=se.getServletContext();app.setAttribute("food3","1個9寸披薩");return "success";}在首頁通過${applicationScope.food3}得到數據
返回JSON數據
可以創建一個統一JSON返回的類代碼如下:
變量根據開發者自己需求自定義
創建返回JSON的測試方法
關鍵:@ResponseBody (json必要的注釋) 返回值為上方創建的json轉換類
允許跨域:@CrossOrigin
前臺通過按鈕ajax請求得到數據,代碼如下:
不要忘了導入jquery-
這樣就可以得到數據啦~
拓展------美化路徑參數傳值(入門)
老式寫法:
https://www.baidu.com?id=12345&question=中國
新式寫法:
https://www.baidu.com/12345/中國
接下來就實現一下springmvc如何傳路徑參數
代碼如下:
運行項目訪問該方法并且通過/進行傳值即可
課后練習
1 表單–》將一件商品放入購物車(這里是放入session域)
2 ajax查詢購物車 session
3 清空購物車(清空session域)
具體實現
商品類Goods
/*** 商品類*/ public class Goods {String name;int num;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}@Overridepublic String toString() {return "Goods{" +"name='" + name + '\'' +", num=" + num +'}';} }購物車類Cart
/*** 購物車*/ public class Cart {List<Goods> list;Map<String,Goods> map;public Map<String, Goods> getMap() {return map;}public void setMap(Map<String, Goods> map) {this.map = map;}public List<Goods> getList() {return list;}public void setList(List<Goods> list) {this.list = list;}@Overridepublic String toString() {return "Cart{" +"list=" + list +", map=" + map +'}';} }購物車顯示頁CartMsg.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>購物車詳情</title> </head> <body><h1>My Cart</h1>商品名:${sessionScope.product.list[0].name}<br />商品數量:${sessionScope.product.list[0].num}</body> </html>購物車操作頁Cart.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head><title>購物車</title><script src="js/jquery.min.js"></script><script>$(function () {$("#Cartjson").click(function () {$.ajax({url: 'anno/Cartjson',type: 'post',dataType: 'json', //接收數據的類型success: function (data) {console.log(data)}})})})</script> </head> <body><form action="anno/addproduct" method="post">商品名:<input type="text" name="list[0].name" required><br/>商品數量:<input type="number" name="list[0].num" value="1" min="1"><input type="submit" value="AddProduct"></form><button id="Cartjson">JSON查詢購物車</button><form action="anno/clearCart"><button id="clear" type="submit">清空購物車</button></form> </body> </html>方法(添加商品,清空,json獲取)
@Controller @RequestMapping("/anno") @SessionAttributes({"product"}) public class AnnoController {//添加商品@RequestMapping("/addproduct")public String addproduct(ModelMap map, Cart goods){map.put("product",goods);return "CartMsg";}//查詢購物車@ResponseBody@RequestMapping("/Cartjson")public JsonResult Cartjson(ModelMap map){System.out.println("購物車="+map.get("product"));Cart product=(Cart) map.get("product");JsonResult ok=new JsonResult(200,"查詢成功",product);System.out.println("ok="+ok);return ok;}//清空購物車@RequestMapping("/clearCart")public String clearCart(SessionStatus ss){ss.setComplete();System.out.println("清空購物車...");return "CartMsg";}}練習就這樣完成啦~~~~下期再見ヾ(=・ω・=)o
總結
以上是生活随笔為你收集整理的SpringMVC---四大作用域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stm32逆向入门
- 下一篇: Firefox 导入书签,不覆盖已有书签