网上购物框架

news/2024/10/4 19:34:45

javaweb项目实战

1.功能概述
网上购物商城分为管理员和普通用户页面,用户可以自行注册登录,用户可以加入商品到购物车中,可以查看商品的详情,管理员可以对商品进行增删改查,比如发布商品,下架商品,修改商品,搜索商品。
本项目采用mysql数据库进行储存数据,所以先搭建项目所需数据库结构,此项目有
用户和管理员表,商品信息表,客户订单信息表等信息表。
利用搭建好的jsp+servlet框架提供http请求及响应视图能力,展示项目所需各个jsp页
面。根据响应显示注册页面进行注册操作。根据注册所填写的帐号和密码进行系统登录。
2.项目基本结构

filter:过滤器当用户访问服务器资源时,过滤器将请求拦截下来,完成一些通用的操作。
listener:在java程序中,有时也需要监视某些事情,一旦被监听的对象发生相应的变化,我们应该采取相应的操作。
监听web三大域对象:HttpServletRequest、HttpSession、ServletContext,通过监听器监听三大域对象它们的创建和销毁。
utils:工具类层。
dao:持久层,接口(应用层和数据层的接口),数据访问对象,主要做的事情就是对数据库单表进行增删改操作。
model:保存与数据库表所对应的结构体,作用是方便用表的结构体,增加Mapper的易用性,把所有SQL字段变成变量放在里面,根据表结构自动生成。
service: 业务层(应用层),对应界面上的操作,增删改查,涉及到几个dao,就调用几个dao。
Servlet:主要是跳转页面:1、接受用户请求,进行处理(doget/dopost)调用service,得到数据。
2、做出响应:通过PrintWriter out = response.getWriter()输出代码。
c3p0-config.xml:设置连接数据库的信息。
3.项目实战
本案例实现用户登录界面
用户登录界面包括用户的用户名或邮箱,密码。
本案例的主要代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%><!DOCTYPE html>
<html>
<head><title>用户登录</title><meta name="viewport" content="width=device-width, initial-scale=1"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><link type="text/css" rel="stylesheet" href="css/bootstrap.css"><link type="text/css" rel="stylesheet" href="css/style.css"><link type="text/css" href="css/login.css"><script type="text/javascript" src="js/jquery.min.js"></script><script type="text/javascript" src="js/bootstrap.min.js"></script><script type="text/javascript" src="js/simpleCart.min.js"></script><style></style>
</head>
<body><!--header--><jsp:include page="header.jsp"><jsp:param name="flag" value="9"></jsp:param></jsp:include><!--account--><div class="account"><div class="container"><div class="register"><c:if test="${!empty msg }"><div class="alert alert-success">${msg }</div></c:if><c:if test="${!empty failMsg }"><div class="alert alert-danger">${failMsg }</div></c:if><form action="/user_login" method="post" style="position:relative;right: 90px;width: 900px;height: 560px;display: flex;border-radius: 20px;overflow: hidden;box-shadow: 0 25px 45px rgba(0, 0, 0, 0.1);"><div class="left" style="width: 500px;height: 560px;"><img src="picture/3.jpg" alt="" style="width:100%;height:100%;object-fit: cover;"></div><div class="right" style="width: 400px;height: 760px;background: rgba(255,255,255,0.9);position: relative; top: 22%"><div class="register-top-grid text-center"><h3>用户登录</h3><div class="input"><span>用户名/邮箱 <label style="color:red;">*</label></span><input type="text" name="ue" placeholder="请输入用户名" required="required" style="width: 280px;height: 40px;border-radius: 20px;"></div><div class="input"><span>密码 <label style="color:#ff0000;">*</label></span><input type="password" name="password" placeholder="请输入密码" required="required"style="width: 280px;height: 40px;border-radius: 20px;" ></div><div class="clearfix"> </div></div><div class="register-but text-center"><input type="submit" value="提交" style=" width: 180px;height: 40px;border-radius: 20px;border: none;color: #fff;font-size: 16px;cursor: pointer;margin-top: 50px;background-image: linear-gradient(120deg, #76daec 0%, #c5a8de 100%);"><div class="clearfix"> </div></div></div></form><div class="clearfix"> </div></div></div></div><!--footer--><jsp:include page="footer.jsp"></jsp:include><!--//footer-->
</body>
</html>

运行结构图如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/44235.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Pixel Transformer:用像素代替补丁可以提升图像分类精度

在快速发展的人工智能领域,ViTs已成为各种计算机视觉任务的基础模型。ViTs通过将图像划分为小块并将这些小块作为标记来处理图像。6月刚发布一篇论文,引入了一种新颖的方法,即像素级Transformers,它通过将单个像素视为令牌来挑战这种范式。本文将讨论Pixel Transformer的复…

Lakehouse 还是 Warehouse?(2/2).md

这篇博文包括 Onehouse 首席执行官 Vinoth Chandar 于 2022 年 3 月在奥斯汀数据委员会发表的重要演讲的后半部分。本文是第 2 部分,比较了架构的功能和性价比特征。最后,它描述了一个面向未来的、湖仓一体的架构。 数据仓库和Lakehouse:功能对比对于核心读写:湖仓一体和仓…

k8s资源管理方式

目录一、什么是k8s资源管理1、简介2、系统资源查看3、常见的资源类型二、资源管理的方式1、命令式对象管理2、命令式对象配置3、声明式对象配置4、区别三、命令式对象管理1、kubectl命令1.1、语法格式1.2、常见操作1.3、示例1.3.1、查看所有的pod1.3.2、查看某个pod1.3.3、查看…

dotnet 简单控制台使用 KernelMemory 向量化文本嵌入生成和查询

本文将和大家简单介绍一下如何在控制台里面使用 Microsoft.KernelMemory 调用 TextEmbedding 对一些文本知识库内容生成向量化信息,以及进行向量化查询本文属于 SemanticKernel 入门系列博客,更多博客内容请参阅我的 博客导航 或 博客园的合集 根据 new bing 对 Microsoft.Ke…

WPF 通过 SetWindowDisplayAffinity 配置禁止对窗口进行截图或录屏

有些应用程序比较机密或隐私,不期望被其他截图软件截图到应用的窗口,或者被录屏软件录制到。简单的方法是通过 SetWindowDisplayAffinity 方法进行配置窗口阻止截图软件对其截图开始之前必须说明的是对抗截图录屏是一个矛和盾的事情,截图和录屏技术方向在千方百计尝试对所有…

[转帖]性能分析之TCP全连接队列占满问题分析及优化过程

https://cloud.tencent.com/developer/article/1558493 前言 在对一个挡板系统进行测试时,遇到一个由于TCP全连接队列被占满而影响系统性能的问题,这里记录下如何进行分析及解决的。 理解下TCP建立连接过程与队列 从图中明显可以看出建立 TCP 连接的时候,有两个队列:syns…

Linux内核版本以及部分参数与性能之二

Linux内核版本以及部分参数与性能之二版本范围 grubby --set-default /boot/vmlinuz-6.9.4-1.el7.elrepo.x86_64 grubby --set-default /boot/vmlinuz-5.4.277-1.el7.elrepo.x86_64 grubby --set-default /boot/vmlinuz-4.19.12-1.el7.elrepo.x86_64 grubby --set-default /boo…