基于javaweb的网上花店商城系统(java+jsp+servlert+mysql+ajax)

2024-01-23 20:50

本文主要是介绍基于javaweb的网上花店商城系统(java+jsp+servlert+mysql+ajax),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于javaweb的网上花店商城系统(java+jsp+servlert+mysql+ajax)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220519001904

20220519001906

20220519001907

20220519001908

20220519001909

20220519001910

基于javaweb+jsp的网上花店商城系统鲜花商城(java+jsp+servlert+mysql+ajax)

一、项目简述

功能: 一套完整的网上花店商场系统,系统支持前台会员的注册 登陆系统留言,花朵的品种选择,详情浏览,加入购物 车,购买花朵等;后台支持管理员的花朵种类添加,花朵 详情的添加修改,用户管理,留言管理,商场新闻管理等。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP + Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等。

用户信息控制层:

/**

  • 用户

**/

@RestController

@RequestMapping(“user”)

public class UserController {

@Autowired

UserService userService;

@Autowired

UserDao dao;

@RequestMapping(“/test”)

R test() {

R r = new R();

return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(dao.findAll());

@RequestMapping(“/queryInfoByAccount”)

R queryInfoByAccount(@RequestParam(“account”) String account) {

R r = new R();

if (StringUtil.isEmpty(account)){

return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);

User loginUser = userService.queryInfo(account);

if (loginUser == null){

return r.setCode(4000).setMsg(HttpMsg.INVALID_USER);

return r.setCode(2000).setData(loginUser);

@RequestMapping(“/find”)

R find(@RequestParam(“page”) int page, @RequestParam(“searchKey”) String searchKey) {

R r = new R();

Map<String, Object> map = new HashMap<>();

List users = userService.find(searchKey);

if (users == null) {

return r.setCode(2000);

List items = users.size() >= page * Constant.PAGE_SIZE ?

users.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)

: users.subList((page - 1) * Constant.PAGE_SIZE, users.size());

int len = users.size() % Constant.PAGE_SIZE == 0 ? users.size() / Constant.PAGE_SIZE

: (users.size() / Constant.PAGE_SIZE + 1);

map.put(“items”, items);

map.put(“len”, len);

return r.setCode(2000).setData(map);

@RequestMapping(“/create”)

R create(@RequestBody User user) {

R r = new R();

int ans = userService.add(user);

if (ans == 1) {

return r.setCode(2000).setMsg(HttpMsg.ADD_USER_OK);

return r.setCode(4000).setMsg(HttpMsg.ADD_USER_FAILED);

@RequestMapping(“/update”)

R update(@RequestBody User user) {

R r = new R();

int ans = userService.update(user);

if (ans >= 0) {

return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);

return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);

@DeleteMapping(“/delete”)

R delete(@RequestParam(“id”) int id) {

R r = new R();

int ans = userService.delete(id);

if (ans == 1) {

return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);

return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);

订单控制层:

/**

  • 订单控制层

**/

@RestController

@RequestMapping(“order”)

public class OrderController {

@Autowired

OrderService orderService;

@Autowired

UserDao userDao;

@Autowired

OrderDao orderDao;

@Autowired

FlowersDao flowersDao;

@RequestMapping(“/test”)

R test() {

R r = new R();

return r.setCode(4000).setMsg(Constant.IMG_PATH).setData(orderDao.findAll(null));

@RequestMapping(“/queryByAccount”)

R queryByAccount(@RequestParam(“account”) String account) {

R r = new R();

if (StringUtil.isEmpty(account)) {

return r.setCode(4000).setMsg(HttpMsg.INVALID_PARAM);

List orders = orderService.queryByAccount(account);

return r.setCode(2000).setData(orders);

@RequestMapping(“/find”)

R find(@RequestParam(“page”) int page, @RequestParam(“searchKey”) String searchKey, @RequestParam(“account”) String account) {

R r = new R();

Map<String, Object> map = new HashMap<>();

List orders = orderService.find(searchKey, account);

if (orders == null) {

return r.setCode(2000);

map.put(“items”, orders);

map.put(“len”, orders.size());

return r.setCode(2000).setData(map);

@RequestMapping(“/findAll”)

R findAll(@RequestParam(“page”) int page, @RequestParam(“searchKey”) String searchKey) {

R r = new R();

Map<String, Object> map = new HashMap<>();

List orders = orderService.findAll(searchKey);

if (orders == null) {

return r.setCode(2000);

List items = orders.size() >= page * Constant.PAGE_SIZE ?

orders.subList((page - 1) * Constant.PAGE_SIZE, page * Constant.PAGE_SIZE)

: orders.subList((page - 1) * Constant.PAGE_SIZE, orders.size());

int len = orders.size() % Constant.PAGE_SIZE == 0 ? orders.size() / Constant.PAGE_SIZE

: (orders.size() / Constant.PAGE_SIZE + 1);

List vos = new ArrayList<>();

for (Order item : items) {

User user = userDao.queryById(item.getUid());

OrderVo vo = new OrderVo();

vo.setAddress(user.getAddress()).setPhone(user.getPhone()).setUsername(user.getName())

.setAmount(item.getAmount()).setFlower(item.getFlower()).setId(item.getId())

.setUid(item.getUid()).setOrder_guid(item.getOrder_guid()).setPrice(item.getPrice())

.setState(item.getState());

vos.add(vo);

map.put(“items”, vos);

map.put(“len”, len);

return r.setCode(2000).setData(map);

@RequestMapping(“/update”)

R update(@RequestBody Order order) {

R r = new R();

int ans = orderService.update(order);

if (ans >= 0) {

return r.setCode(2000).setMsg(HttpMsg.UPDATE_USER_OK);

return r.setCode(4000).setMsg(HttpMsg.UPDATE_USER_FAILED);

@RequestMapping(“/changeState”)

R changeState(@RequestBody Order order) {

orderDao.changeState(order);

return new R().setCode(2000).setMsg(HttpMsg.UPDATE_ORDER_OK);

@DeleteMapping(“/delete”)

R delete(@RequestParam(“id”) int id) {

R r = new R();

int ans = orderService.delete(id);

if (ans == 1) {

return r.setCode(2000).setMsg(HttpMsg.DELETE_USER_OK);

return r.setCode(4000).setMsg(HttpMsg.DELETE_USER_FAILED);

用户登录控制层:

/**

  • 登录

**/

@RestController

@RequestMapping(“login”)

public class LoginController {

@Autowired

LoginDao loginDao;

@RequestMapping(“/doLogin”)

R doLogin(@RequestBody LoginForm form) {

R r = new R();

if (!VerifyUtil.verifyLoginForm(form)) {

return r.setCode(4000).setMsg(HttpMsg.ERROR_INPUT);

User loginUser = loginDao.login(form);

if (loginUser != null) {

return r.setCode(2000).setMsg(“欢迎您:” + loginUser.getName()).setData(loginUser);

return r.setCode(4000).setMsg(HttpMsg.ERROR_VERIFY);

@RequestMapping(“/test”)

R test() {

R r = new R();

return r.setCode(4000).setMsg(Constant.IMG_PATH);


这篇关于基于javaweb的网上花店商城系统(java+jsp+servlert+mysql+ajax)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/637481

相关文章

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

Spring Security--Architecture Overview

1 核心组件 这一节主要介绍一些在Spring Security中常见且核心的Java类,它们之间的依赖,构建起了整个框架。想要理解整个架构,最起码得对这些类眼熟。 1.1 SecurityContextHolder SecurityContextHolder用于存储安全上下文(security context)的信息。当前操作的用户是谁,该用户是否已经被认证,他拥有哪些角色权限…这些都被保

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M