栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Servlet】通过Cookie实现Servlet之间数据共享(实现案例)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Servlet】通过Cookie实现Servlet之间数据共享(实现案例)

通过cookie实现Servlet之间数据共享(实现案例) 前言

本文内容主要为【cookie实现Servlet之间数据共享】的实现代码。关于Servlet之间数据共享的实现方案与cookie详细内容可参考文章【多个Servlet之间数据共享实现方案】。本文为《多个Servlet之间数据共享实现方案》中第二节的代码实现部分。建议阅读本文前先去阅读《多个Servlet之间数据共享实现方案》。 一、项目运行环境

本案例使用的编译器为idea。 1、Tomcat环境

2、api环境

3、项目目录结构

二、项目源码解析

index.html




    
    卡片充值


    

用户会员卡充值

用户名:
金额:

orderFood.html




    
    点餐


用户点餐

饺子-20元:
油条-10元:
米饭-15元:

OneServlet.java

package com.Etui.controller;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.net.cookieStore;

@WebServlet(name = "OneServlet", value = "/one")
public class OneServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 获取参数
        String userName = request.getParameter("userName");
        String money = request.getParameter("money");

        // 开卡,即将信息存入cookie
        cookie card1 = new cookie("userName", userName);
        cookie card2 = new cookie("money", money);
        response.addcookie(card1);
        response.addcookie(card2);

        // 请求转发“orderFood”页面
        request.getRequestDispatcher("/orderFood.html").forward(request, response);

        System.out.println(userName + "," + money);
    }

}

TwoServlet.java

package com.Etui.controller;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(name = "TwoServlet", value = "/two")
public class TwoServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String userName = null;
        String food = null;
        cookie[] cookies = null;
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out = response.getWriter();
        // 食物定价
        int jiaoziPrice = 20;
        int youtiaoPrice = 10;
        int mifanPrice = 15;
        int money = 0;
        // 获取参数
        food = request.getParameter("food");

        // 获取cookie
        cookies = request.getcookies();

        for (cookie cookie : cookies) {
            String key = cookie.getName();
            String value = cookie.getValue();
            if("userName".equals(key)) {
                userName = value;
            } else if("money".equals(key)) {
                money = Integer.parseInt(value);
                if("饺子".equals(food)) {
                    if(jiaoziPrice <= money) {
                        cookie newcookie = new cookie("money", (money - jiaoziPrice) + "");
                        out.print("

点餐成功!当前余额为" + newcookie.getValue() + "元"); // 添加money的cookie,覆盖原来的cookie response.addcookie(newcookie); } else { out.print("余额不足,请充值!"); } } else if ("油条".equals(food)) { if(youtiaoPrice <= money) { cookie newcookie = new cookie("money", (money - youtiaoPrice) + ""); out.print("

点餐成功!当前余额为" + newcookie.getValue()+ "元"); // 添加money的cookie,覆盖原来的cookie response.addcookie(newcookie); } else { out.print("余额不足,请充值!"); } } else if ("米饭".equals(food)) { if(mifanPrice <= money) { cookie newcookie = new cookie("money", money - mifanPrice + ""); out.print("

点餐成功!当前余额为" + newcookie.getValue() + "元"); // 添加money的cookie,覆盖原来的cookie response.addcookie(newcookie); } else { out.print("余额不足,请充值!"); } } } } // System.out.println("用户名" + userName + "的余额为"); } }

三、原理图

四、运行结果 1、用户名:李华,金额:100元

2、选择饺子20元

3、交易结果

Over!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781986.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号