当前位置: 首页 > article >正文

实验七 JSP内置对象II

实验七 JSP内置对象II

目的
1、掌握JSP内置对象的使用。
2、理解JSP的作用域
3、掌握session,application对象的使用
实验要求
1、完成实验题目
2、要求提交实验报告,将代码和实验结果页面截图放入报告中

实验过程
一、结合之前所学的相关技术,编写代码实现以下购物车功能:
1、编写一个页面,展现商品列表(静态页面),页面右上方有登陆、结账和查看购物车三个按钮,下方展示网站历史访问的人数
2、用户点击商品后,可以将商品加入购物车
3、用户点击登陆,跳转到登陆页面
4、用户点击结账,若已登陆跳转至结账页面,否则跳转到登陆页面登陆后再跳转到结账页。
5、用户点击查看购物车按钮,跳转至购物车页面,可查看购物车列表、增加商品数量或者删除商品

代码及结果
1、编写一个页面,展现商品列表(静态页面),页面右上方有登陆、结账和查看购物车三个按钮,下方展示网站历史访问的人数
2、用户点击商品后,可以将商品加入购物车

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>商品列表</title>
    <style>
        .people{
            position: absolute;
            bottom: 0px;
        }
    </style>
</head>
<body>
<div style="text-align: right;">
    <a href="login.jsp">登录</a> |
    <a href="checkout.jsp">结账</a> |
    <a href="cart.jsp">查看购物车</a>
</div>
<h1>欢迎来到我们的商店</h1>
<div>
    <h2>商品列表</h2>
    <ul>
        <li><a href="addtocart.jsp?product=衣服">衣服</a></li>
        <li><a href="addtocart.jsp?product=裤子">裤子</a></li>
        <li><a href="addtocart.jsp?product=帽子">帽子</a></li>
    </ul>
</div>
<div class="people">
    <span>网站历史访问人数:1122人</span>
</div>
</body>
</html>

在这里插入图片描述

3、用户点击登陆,跳转到登陆页面
4、用户点击结账,若已登陆跳转至结账页面,否则跳转到登陆页面登陆后再跳转到结账页。
login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登录</title>
</head>
<body>
<h1>请登录</h1>
<form action="processLogin.jsp" method="post">
    用户名: <input type="text" name="username"><br>
    密码: <input type="password" name="password"><br>
    <input type="submit" value="登录">
</form>
</body>
</html>

processLogin.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String username = request.getParameter("username");
    String password = request.getParameter("password");

    if ("admin".equals(username) && "123456".equals(password)) {
        session.setAttribute("isLoggedIn", true);
        response.sendRedirect("checkout.jsp");
    } else {
        out.println("<script>alert('登录失败');</script>");
        response.sendRedirect("login.jsp");
    }
%>
checkout.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%
    Boolean isLoggedIn = (Boolean) session.getAttribute("isLoggedIn");
    if (isLoggedIn == null || !isLoggedIn) {
        response.sendRedirect("login.jsp");
    }
%>
<html>
<head>
    <title>结账</title>
</head>
<body>
<h1>结账</h1>
<p>感谢您的购买!</p>
<a href="index.jsp">返回首页</a>
</body>
</html>

在这里插入图片描述

在这里插入图片描述

5、用户点击查看购物车按钮,跳转至购物车页面,可查看购物车列表、增加商品数量或者删除商品
cart.jsp

<%@ page import="java.util.List" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>购物车</title>
</head>
<body>
<h1>我的购物车</h1>
<%
    // 这里应该从session中获取购物车信息
    Object cart = session.getAttribute("cart");
    if (cart == null || ((List<String>) cart).isEmpty()) {
        out.println("您的购物车为空。");
    } else {
        for (String item : (List<String>) cart) {
            out.print("<p>" + item + "</p>");
        }
    }
%>
<a href="index.jsp">继续购物</a>
</body>
</html>
addtocart.jsp
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
    String product = request.getParameter("product");
    List<String> cart = (List<String>) session.getAttribute("cart");
    if (cart == null) {
        cart = new ArrayList<>();
        session.setAttribute("cart", cart);
    }
    cart.add(product);
    response.sendRedirect("cart.jsp");
%>

在这里插入图片描述

二、实验心得。
理解了JSP中这些关键概念的应用,并掌握了如何在JSP页面中有效地使用这些对象来实现特定的功能。


http://www.kler.cn/a/526788.html

相关文章:

  • [STM32 - 野火] - - - 固件库学习笔记 - - -十二.基本定时器
  • LINUX部署微服务项目步骤
  • 详解python的修饰符
  • Java---入门基础篇(上)
  • 论文阅读(九):通过概率图模型建立连锁不平衡模型和进行关联研究:最新进展访问之旅
  • 白嫖DeepSeek:一分钟完成本地部署AI
  • 力扣【98. 验证二叉搜索树】Java题解(容易写错的题)
  • Java小白入门教程:内置数据类型(四类八种)和引用数据类型
  • Java知识速记:深拷贝与浅拷贝
  • 基于Python的药物相互作用预测模型AI构建与优化(下.代码部分)
  • LabVIEW透镜多参数自动检测系统
  • HTML DOM 修改 HTML 内容
  • SG算法解析
  • java_throw和throws的区别
  • 【OpenGL】OpenGL游戏案例(二)
  • Gurobi基础语法之打印模型
  • 本地部署 DeepSeek-R1 大模型实操
  • PHP中配置 variables_order详解
  • 爬虫基础(四)线程 和 进程 及相关知识点
  • 蓝桥杯例题五
  • 跨平台物联网漏洞挖掘算法评估框架设计与实现文献综述之GMN
  • doris:导入高可用性
  • 电脑要使用cuda需要进行什么配置
  • LitGPT - 20多个高性能LLM,具有预训练、微调和大规模部署的recipes
  • 电子电气架构 --- 在智能座舱基础上定义人机交互
  • 题单:冒泡排序1