Laughing girl2021 2021-07-31 19:27 采纳率: 100%
浏览 30
已结题

java-web练习,点击addCart.html文档后,无法跳转到AddCartServlet,请问是不是下图红框所示的地址写错了?

这是项目文件列表及html文档的跳转地址
img
以下为具体实现代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<center>
    <h1>商品列表</h1>
    <a href="/war exploded/addCart?name=杯子">杯子</a><br>
    <a href="/war exploded/addCart?name=书包">书包</a><br>
    <a href="/war exploded/addCart?name=笔记本">笔记本</a><br>
</center>
</body>
</html>

package session;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

@WebServlet(name = "AddCartServlet", urlPatterns = "/addCart")
public class AddCartServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //获取商品信息
        String name=request.getParameter("name");
        //在服务器中开辟一个能保存商品信息的内存空间session
        HttpSession session= request.getSession();

        //重点:以下代码实现目的为--在连续点击打开多个商品链接后,使多个商品信息可以通过name传进来保存在session中,不会被前个商品信息覆盖,只出现一个商品;

        //创建一个list类集合对象用来保存此前session中的所有商品信息;此处需要强转(将session转为List类使等号两边类型相等)
        List list=(List)session.getAttribute("list");
        //第一次访问的时候,list不存在,需要创建一个;
        if (list==null){
            list=new ArrayList();
        }
        //将商品信息保存到list集合中
        list.add(name);
        //在session内存空间中保存一个键为"list",值为list的商品
        session.setAttribute("list",list);

        //方法重载,对session进行持久化操作,也就是持久化cookie里的JSESSIONID(标识id)
        Cookie cookie=new Cookie("JSESSIONID",session.getId());
        //使session内存空间在无操作情况下存在时间变为24小时;
        cookie.setMaxAge(60*60*24);
        //使cookie参数在war exploded目录下才会被携带;
        cookie.setPath("/war exploded");
        response.addCookie(cookie);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}

package session;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;

@WebServlet(name = "GetCartServlet", urlPatterns = "/getCart")
public class GetCartServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        HttpSession session=request.getSession();
        List<String> list=(List<String>) session.getAttribute("list");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");

        for (String s : list){
            response.getWriter().write(s+"<br/>");
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }
}


  • 写回答

2条回答 默认 最新

  • Aganstrong 2021-07-31 20:12
    关注

    /war exploded/addCart 这里是有空格的吗?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月9日
  • 已采纳回答 8月1日
  • 创建了问题 7月31日

悬赏问题

  • ¥15 有偿求效果比较好的遥感影像匹配的c++代码
  • ¥15 博主,你好,我下载了你的智能网联汽车辅助驾驶安全信息检测系统,现在不会运行,可以教我吗,
  • ¥15 怎么在excle输入下列公式
  • ¥15 Arduino,利用modbus的RS485协议,进行对外置的温湿度传感器进行数据读取
  • ¥15 vhdl+MODELSIM
  • ¥20 simulink中怎么使用solve函数?
  • ¥30 dspbuilder中使用signalcompiler时报错Error during compilation: Fitter failed,求解决办法
  • ¥15 gwas 分析-数据质控之过滤稀有突变中出现的问题
  • ¥15 没有注册类 (异常来自 HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
  • ¥15 知识蒸馏实战博客问题