哈尔滨 做网站,杭州广告公司排行榜,自己怎样制作网页,百度帐号登录末尾获取源码 开发语言#xff1a;Java Java开发工具#xff1a;JDK1.8 后端框架#xff1a;SSM 前端#xff1a;采用JSP技术开发 数据库#xff1a;MySQL5.7和Navicat管理工具结合 服务器#xff1a;Tomcat8.5 开发软件#xff1a;IDEA / Eclipse 是否Maven项目#x… 末尾获取源码 开发语言Java Java开发工具JDK1.8 后端框架SSM 前端采用JSP技术开发 数据库MySQL5.7和Navicat管理工具结合 服务器Tomcat8.5 开发软件IDEA / Eclipse 是否Maven项目是 目录
一、项目简介
二、技术介绍
1、JSP
2、Java
3、Tomcat
三、系统项目截图
3.1管理员功能
3.2用户功能
四、核心代码
4.1登录相关
4.2文件上传
4.3封装 一、项目简介
随着科学技术的飞速发展各行各业都在努力与现代先进技术接轨通过科技手段提高自身的优势对于精品酒销售管理系统当然也不能排除在外随着网络技术的不断成熟带动了精品酒销售管理系统它彻底改变了过去传统的管理方式不仅使服务管理难度变低了还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合激发了管理人员的创造性与主动性对精品酒销售管理系统而言非常有利。
本系统采用的数据库是Mysql使用JSP技术开发运行环境使用Tomcat服务器ECLIPSE 是本系统的开发平台。在设计过程中充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。 二、技术介绍
1、JSP
JSP技术本身是一种脚本语言但它的功能是十分强大的因为它可以使用所有的JAVA类。当它与JavaBeans 类进行结合时它可以使显示逻辑和内容分开这就极大的方便了用户的需求。JavaBeans 可以对JSP技术的程序进行扩展从而形成新的应用程序而且JavaBeans的代码可以重复使用所以就便于对程序进行维护。JavaBean 组件有内部的接口可以帮助不同的人对系统进行访问。1999年Sun微系统公司正式推出了JSP技术这是一种动态技术是基于整个JAVA体系和JavaServlet提出的是具有普遍适用性的WEB技术也是本系统设计的核心技术之一。JSP技术能够极大的提高WEB网页的运行速度。这些内容会与脚本结合并且由JavaBean和Servlet组件封装。所有的脚本均在服务器端运行JSP引擎会针对客户端所 提交的申请进行解释然后生成脚本程序和JSP标识然后通过HTML/XML页面将结果反馈给浏览器。因此开发人员亲自设计最终页面的格式和HTML/XML标识时完全可以使用JSP技术。
所以结合精品酒销售管理系统的需求及功能模块的实现使用JSP技术是最合适的而且JSP的拓展性比较好对于系统在后期使用过程中可以不断对系统功能进行拓展是系统更完成更方便的满足用户管理。
2、Java
Java主要采用CORBA技术和安全模型可以在互联网应用的数据保护。它还提供了对EJBEnterprise JavaBeans的全面支持java servlet APIJSPjava server pages和XML技术。JAVA语言是一种面向对象的语言它通过提供最基本的方法来完成指定的任务开发者只需要知道一些概念就能够编写出一些应用程序。Java程序相对较小其代码能够在小机器上运行。Java是一种计算机编程语言具有封装、继承和多态性三个主要特性广泛应用于企业Web应用程序开发和移动应用程序开发。
Java语言和一般编译器以及直译的区别在于Java首先将源代码转换为字节码然后将其转换为JVM的可执行文件JVM可以在各种不同的JVM上运行。因此实现了它的跨平台特性。虽然这使得Java在早期非常缓慢但是随着Java的开发它已经得到了改进。
3、Tomcat
Tomcat属于一种轻型的服务器所以说在中小企业中并不具有普适性。但是当程序员需要开发或调试JSP 程序时则通常会将该服务器作为首选。对于一个仅具有计算机基础知识的人来说计算机系统具有一个好的Apache服务器可以很好的对HTML 页面进行访问。Tomcat 虽然是Apache的扩展但是它们都是可以独立运行的二者是不互相干扰的。当配置正确的时候Apache服务器为HTML 页面的运行提供技术支持Tomcat 的任务则是运行Servle和JSP 页面。Tomca也具有一定的HTML页面处理功能。 三、系统项目截图
3.1管理员功能
管理员通过用户名和密码填写完成后进行登录如图5-6所示。管理员登录成功后进入到系统操作界面可以对主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理等功能模块进行相对应操作。
个人中心通过列表可以获取原密码、新密码、确认密码等内容可以进行修改或删除操作如图5-7所示。 个人信息通过列表可以获取用户名等信息进行删除或修改操作 用户管理通过列表可以获取用户账号、用户姓名、密码、性别、联系电话、电子邮箱、余额等信息进行修改或删除操作 商品分类管理通过列表可以获取商品分类等信息进行修改或删除操作 商品信息管理管理员通过列表可以获取商品编号、商品名称、商品分类、数量、品牌、规格、封面、价格、详情等信息进行修改或删除操作 轮播图该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理通过新建操作可在轮播图中加入新的图片还可以对以上传的图片进行修改操作以及图片的删除操作 新闻资讯管理员通过列表可以获取标题、图片、内容等信息进行修改或删除操作 已完成订单管理员通过列表可以获取订单id、用户id、商品id、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址等信息进行修改或删除操作 已支付订单列表管理员通过列表可以获取订单id、用户id、商品id、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、
状态、地址等信息进行修改或删除操作 已完成订单列表管理员通过列表可以获取订单id、用户id、商品id、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、
状态、地址等信息进行修改或删除操作 3.2用户功能 精品酒销售管理系统在精品酒销售管理系统可以查看商品信息、新闻资讯、我的、跳转到后台、购物车等内容 登录、注册通过注册填写用户账号、用户姓名、密码、联系电话、电子邮箱等信息进行注册操作 商品信息在商品信息页面可以查看商品编号、价格、数量、品牌、规格等信息进行立即购买 个人中心在个人中心页面可以查看用户账号、用户姓名、密码、性别、联系电话、电子邮箱等 收货地址添加在收货地址添加页面可以查看个人中心、我的订单、我的地址、我的收藏等 确认下单在确认下单页面可以查看选择收货地址、清单列表等信息进行支付 四、核心代码
4.1登录相关 package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
RequestMapping(users)
RestController
public class UserController{Autowiredprivate UserService userService;Autowiredprivate TokenService tokenService;/*** 登录*/IgnoreAuthPostMapping(value /login)public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user userService.selectOne(new EntityWrapperUserEntity().eq(username, username));if(usernull || !user.getPassword().equals(password)) {return R.error(账号或密码不正确);}String token tokenService.generateToken(user.getId(),username, users, user.getRole());return R.ok().put(token, token);}/*** 注册*/IgnoreAuthPostMapping(value /register)public R register(RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapperUserEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}userService.insert(user);return R.ok();}/*** 退出*/GetMapping(value logout)public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok(退出成功);}/*** 密码重置*/IgnoreAuthRequestMapping(value /resetPass)public R resetPass(String username, HttpServletRequest request){UserEntity user userService.selectOne(new EntityWrapperUserEntity().eq(username, username));if(usernull) {return R.error(账号不存在);}user.setPassword(123456);userService.update(user,null);return R.ok(密码已重置为123456);}/*** 列表*/RequestMapping(/page)public R page(RequestParam MapString, Object params,UserEntity user){EntityWrapperUserEntity ew new EntityWrapperUserEntity();PageUtils page userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put(data, page);}/*** 列表*/RequestMapping(/list)public R list( UserEntity user){EntityWrapperUserEntity ew new EntityWrapperUserEntity();ew.allEq(MPUtil.allEQMapPre( user, user)); return R.ok().put(data, userService.selectListView(ew));}/*** 信息*/RequestMapping(/info/{id})public R info(PathVariable(id) String id){UserEntity user userService.selectById(id);return R.ok().put(data, user);}/*** 获取用户的session用户信息*/RequestMapping(/session)public R getCurrUser(HttpServletRequest request){Long id (Long)request.getSession().getAttribute(userId);UserEntity user userService.selectById(id);return R.ok().put(data, user);}/*** 保存*/PostMapping(/save)public R save(RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapperUserEntity().eq(username, user.getUsername())) !null) {return R.error(用户已存在);}userService.insert(user);return R.ok();}/*** 修改*/RequestMapping(/update)public R update(RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);userService.updateById(user);//全部更新return R.ok();}/*** 删除*/RequestMapping(/delete)public R delete(RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}4.2文件上传
package com.controller;import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.ConfigEntity;
import com.entity.EIException;
import com.service.ConfigService;
import com.utils.R;/*** 上传文件映射表*/
RestController
RequestMapping(file)
SuppressWarnings({unchecked,rawtypes})
public class FileController{Autowiredprivate ConfigService configService;/*** 上传文件*/RequestMapping(/upload)public R upload(RequestParam(file) MultipartFile file,String type) throws Exception {if (file.isEmpty()) {throw new EIException(上传文件不能为空);}String fileExt file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(.)1);File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);if(!upload.exists()) {upload.mkdirs();}String fileName new Date().getTime().fileExt;File dest new File(upload.getAbsolutePath()/fileName);file.transferTo(dest);FileUtils.copyFile(dest, new File(C:\\Users\\Desktop\\jiadian\\springbootl7own\\src\\main\\resources\\static\\upload/fileName));if(StringUtils.isNotBlank(type) type.equals(1)) {ConfigEntity configEntity configService.selectOne(new EntityWrapperConfigEntity().eq(name, faceFile));if(configEntitynull) {configEntity new ConfigEntity();configEntity.setName(faceFile);configEntity.setValue(fileName);} else {configEntity.setValue(fileName);}configService.insertOrUpdate(configEntity);}return R.ok().put(file, fileName);}/*** 下载文件*/IgnoreAuthRequestMapping(/download)public ResponseEntitybyte[] download(RequestParam String fileName) {try {File path new File(ResourceUtils.getURL(classpath:static).getPath());if(!path.exists()) {path new File();}File upload new File(path.getAbsolutePath(),/upload/);if(!upload.exists()) {upload.mkdirs();}File file new File(upload.getAbsolutePath()/fileName);if(file.exists()){/*if(!fileService.canRead(file, SessionManager.getSessionUser())){getResponse().sendError(403);}*/HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); headers.setContentDispositionFormData(attachment, fileName); return new ResponseEntitybyte[](FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);}} catch (IOException e) {e.printStackTrace();}return new ResponseEntitybyte[](HttpStatus.INTERNAL_SERVER_ERROR);}}4.3封装
package com.utils;import java.util.HashMap;
import java.util.Map;/*** 返回数据*/
public class R extends HashMapString, Object {private static final long serialVersionUID 1L;public R() {put(code, 0);}public static R error() {return error(500, 未知异常请联系管理员);}public static R error(String msg) {return error(500, msg);}public static R error(int code, String msg) {R r new R();r.put(code, code);r.put(msg, msg);return r;}public static R ok(String msg) {R r new R();r.put(msg, msg);return r;}public static R ok(MapString, Object map) {R r new R();r.putAll(map);return r;}public static R ok() {return new R();}public R put(String key, Object value) {super.put(key, value);return this;}
}