日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringMVC---四大作用域

發布時間:2024/1/1 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringMVC---四大作用域 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

四大作用域(page,request,session,application)

  • request
  • session
  • application
  • 返回JSON數據
  • 路徑參數–入門
  • 課后練習
  • 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作用域做法:

    @RequestMapping("/logout")public String logout(SessionStatus ss){System.out.println("銷毀session作用域成功...");ss.setComplete(); //銷毀session作用域return "success";}

    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返回*/ public class JsonResult {int code;String msg;Object data;public JsonResult(int code,String msg,Object data){this.code=code;this.msg=msg;this.data=data;}public JsonResult(int code,String msg){this.code=code;this.msg=msg;}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}@Overridepublic String toString() {return "JsonResult{" +"code=" + code +", msg='" + msg + '\'' +", data=" + data +'}';} }

    創建返回JSON的測試方法
    關鍵:@ResponseBody (json必要的注釋) 返回值為上方創建的json轉換類
    允許跨域:@CrossOrigin

    //控制器 返回JSON last:response.setContentType("application/json")@ResponseBody@CrossOrigin@RequestMapping("/json")public JsonResult json(){List list=new ArrayList();list.add("凱南");list.add("劍姬");list.add("瑞文");JsonResult ok=new JsonResult(200,"查詢成功",list);return ok;}

    前臺通過按鈕ajax請求得到數據,代碼如下:
    不要忘了導入jquery-

    <script> $("#testjson2").click(function () {$.ajax({url: 'anno/json',type: 'post',dataType: 'json', //接收數據的類型success: function (data) {console.log(data)}})}) </script> <button id="testjson2">收json測試</button>

    這樣就可以得到數據啦~

    拓展------美化路徑參數傳值(入門)

    老式寫法:
    https://www.baidu.com?id=12345&question=中國
    新式寫法:
    https://www.baidu.com/12345/中國

    接下來就實現一下springmvc如何傳路徑參數
    代碼如下:

    @RequestMapping("/baidu/{question}/{id}")public String baidu(@PathVariable("id") String id,@PathVariable("question") String question){System.out.println("你要查詢的id="+id+"問題是:"+question);return "success";}

    運行項目訪問該方法并且通過/進行傳值即可

    課后練習

    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---四大作用域的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。