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

建网站做代理ip长沙网站开发 58

建网站做代理ip,长沙网站开发 58,wordpress建站有广告吗,有哪几个网站可以做贸易#x1f34a;作者#xff1a;计算机编程-吉哥 #x1f34a;简介#xff1a;专业从事JavaWeb程序开发#xff0c;微信小程序开发#xff0c;定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事#xff0c;生活就是快乐的。 #x1f34a;心愿#xff1a;点… 作者计算机编程-吉哥 简介专业从事JavaWeb程序开发微信小程序开发定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事生活就是快乐的。 心愿点赞 收藏 ⭐评论 文末获取源码联系 精彩专栏推荐订阅 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能 3.1【角色】 3.2【前端功能模块】 3.3【后端功能模块】 4.项目演示截图 4.1 美容师 4.2 美容项目 4.3 公告通知 4.4 美容项目预约 4.5 个人中心 4.6 美容师留言【美容师】 4.7 美容项目管理 4.8 美容项目订单统计报表 5.核心代码 5.1拦截器 5.2分页工具类 5.3文件上传下载 5.4前端请求 6.LW文档大纲参考 背景意义介绍 在美容和个人护理行业迅速发展的今天美发管理系统作为一种创新的信息化工具对于提升服务质量、优化客户体验、提高管理效率具有重要的意义。该系统通过集成现代信息技术为美容美发店提供了一个全面、高效的管理平台同时也为顾客提供了便捷的预约和交流渠道。 本文介绍的美发管理系统采用Java作为后端开发语言结合SpringBoot框架简化了服务端应用的搭建和部署。前端则利用Vue.js技术为用户提供了直观、易用的界面。系统服务于三种角色管理员、美容师和用户覆盖了登录注册、论坛交流、美容师信息展示、美容项目浏览、公告通知等功能。 后端管理模块为管理员提供了包括用户管理、美容师管理、美容项目管理、论坛管理、公告通知管理等在内的强大工具集。这些功能的实现不仅提高了美发店的运营效率也为美容师和用户提供了便捷的服务和管理方式。 美发管理系统的开发有助于美容美发店更好地管理日常运营包括服务项目、员工和客户信息同时也为顾客提供了一个预约和了解美容服务的窗口。系统的数据分析功能还可以帮助管理者洞察市场趋势优化服务项目提升顾客满意度。总之该系统对于推动美容美发行业信息化、提升行业竞争力具有重要的现实意义。 1.技术选型 springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8 2.开发工具 idea、navicat 3.功能 3.1【角色】 管理员、美容师、用户 3.2【前端功能模块】 登录注册论坛美容师美容项目公告通知个人中心个人信息、美容师收藏、美容师预约、美容项目收藏、美容项目订单 3.3【后端功能模块】 登录个人中心管理员管理用户管理美容师管理美容项目管理基础数据管理论坛管理公告通知管理轮播图信息 4.项目演示截图 4.1 美容师 4.2 美容项目 4.3 公告通知 4.4 美容项目预约 4.5 个人中心 4.6 美容师留言【美容师】 4.7 美容项目管理 4.8 美容项目订单统计报表 5.核心代码 5.1拦截器 package com.interceptor;import com.alibaba.fastjson.JSONObject; import com.annotation.IgnoreAuth; import com.entity.TokenEntity; import com.service.TokenService; import com.utils.R; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor;import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter;/*** 权限(Token)验证*/ Component public class AuthorizationInterceptor implements HandlerInterceptor {public static final String LOGIN_TOKEN_KEY Token;Autowiredprivate TokenService tokenService;Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {//支持跨域请求response.setHeader(Access-Control-Allow-Methods, POST, GET, OPTIONS, DELETE);response.setHeader(Access-Control-Max-Age, 3600);response.setHeader(Access-Control-Allow-Credentials, true);response.setHeader(Access-Control-Allow-Headers, x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization);response.setHeader(Access-Control-Allow-Origin, request.getHeader(Origin));// 跨域时会首先发送一个OPTIONS请求这里我们给OPTIONS请求直接返回正常状态if (request.getMethod().equals(RequestMethod.OPTIONS.name())) {response.setStatus(HttpStatus.OK.value());return false;}IgnoreAuth annotation;if (handler instanceof HandlerMethod) {annotation ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);} else {return true;}//从header中获取tokenString token request.getHeader(LOGIN_TOKEN_KEY);/*** 不需要验证权限的方法直接放过*/if(annotation!null) {return true;}TokenEntity tokenEntity null;if(StringUtils.isNotBlank(token)) {tokenEntity tokenService.getTokenEntity(token);}if(tokenEntity ! null) {request.getSession().setAttribute(userId, tokenEntity.getUserid());request.getSession().setAttribute(role, tokenEntity.getRole());request.getSession().setAttribute(tableName, tokenEntity.getTablename());request.getSession().setAttribute(username, tokenEntity.getUsername());return true;}PrintWriter writer null;response.setCharacterEncoding(UTF-8);response.setContentType(application/json; charsetutf-8);try {writer response.getWriter();writer.print(JSONObject.toJSONString(R.error(401, 请先登录)));} finally {if(writer ! null){writer.close();}}return false;} } 5.2分页工具类 package com.utils;import java.io.Serializable; import java.util.List; import java.util.Map;import com.baomidou.mybatisplus.plugins.Page;/*** 分页工具类*/ public class PageUtils implements Serializable {private static final long serialVersionUID 1L;//总记录数private long total;//每页记录数private int pageSize;//总页数private long totalPage;//当前页数private int currPage;//列表数据private List? list;/*** 分页* param list 列表数据* param totalCount 总记录数* param pageSize 每页记录数* param currPage 当前页数*/public PageUtils(List? list, int totalCount, int pageSize, int currPage) {this.list list;this.total totalCount;this.pageSize pageSize;this.currPage currPage;this.totalPage (int)Math.ceil((double)totalCount/pageSize);}/*** 分页*/public PageUtils(Page? page) {this.list page.getRecords();this.total page.getTotal();this.pageSize page.getSize();this.currPage page.getCurrent();this.totalPage page.getPages();}/** 空数据的分页*/public PageUtils(MapString, Object params) {Page page new Query(params).getPage();new PageUtils(page);}public int getPageSize() {return pageSize;}public void setPageSize(int pageSize) {this.pageSize pageSize;}public int getCurrPage() {return currPage;}public void setCurrPage(int currPage) {this.currPage currPage;}public List? getList() {return list;}public void setList(List? list) {this.list list;}public long getTotalPage() {return totalPage;}public void setTotalPage(long totalPage) {this.totalPage totalPage;}public long getTotal() {return total;}public void setTotal(long total) {this.total total;}} 5.3文件上传下载 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)IgnoreAuthpublic 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);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()){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);}} 5.4前端请求 import axios from axios import router from /router/router-static import storage from /utils/storageconst http axios.create({timeout: 1000 * 86400,withCredentials: true,baseURL: /furniture,headers: {Content-Type: application/json; charsetutf-8} }) // 请求拦截 http.interceptors.request.use(config {config.headers[Token] storage.get(Token) // 请求头带上tokenreturn config }, error {return Promise.reject(error) }) // 响应拦截 http.interceptors.response.use(response {if (response.data response.data.code 401) { // 401, token失效router.push({ name: login })}return response }, error {return Promise.reject(error) }) export default http 6.LW文档大纲参考 具体LW如何写法可以咨询博主耐心分享 你可能还有感兴趣的项目 更多项目推荐:计算机毕业设计项目 如果大家有任何疑虑请在下方咨询或评论
http://www.hkea.cn/news/14395490/

相关文章:

  • 整站seo包年费用住房和城乡建设局网站职能
  • 沧州网站设计师招聘公司网站建设 费用入账
  • 祥云平台英文网站网站建设与维护 书
  • 筑站网络推广中国石化工程建设有限公司首页
  • 有什么网站建设类岗位三合一网站指的是什么
  • 国外做网站公司能赚钱吗wordpress菜单导入导出
  • 网络科技公司网站网站综合开发怎么做
  • seo技术外包 乐云践新专家seo推广引擎优化
  • 网站logo下载购票网站模板
  • 网站开发人员晋升体系wordpress html5 主题
  • 江西建设信息港网站wordpress模板制作视频
  • 公司网站建设案例怎么建设自己的一个服务器网站
  • 怎么做一个自己网站wordpress 编辑器增强
  • 天津企业网站建站深圳公司做网站
  • 网站建设的相关资料网页设计旅游网站前言
  • wordpress-5.6.20长沙抖音seo公司地址
  • 南头专业外贸网站建设公司深圳培训手机网站建设
  • 聊城网站建设品牌如何制作网站设计
  • 如何看出网站是用wordpress搭建官方网站开发模板
  • 重庆渝北做网站哪里便宜网站改版汇报
  • 洛卡博网站谁做的wordpress表白墙模板下载
  • 明年做那些网站致富百度收录提交申请网站
  • asp网站管理系统破解版惠州市网站建设个人
  • 做服装哪个网站图片多wordpress 分类页面打开400
  • 深圳建设网官方网站南宁建设网站制作
  • 上海建设检测网上登记网站软文发布平台哪家好
  • 上海网站开发月薪多少钱上海网站建设制作
  • 网站不备案可以做微信小程序么设计发明的网站
  • 行业前10的网站建设公司中国建设银行威海分行网站
  • cnzz网站建设教学包头建设网站