一、Vue项目如何访问JavaWeb的Servlet

简单描述该问题:

该问题是我因为初学JavaWeb,所以导致我不太会使用Vue来访问JavaWeb的资源。主要解决能够在本地的Vue项目中访问本地的JavaWeb项目以完成与数据库相关的各类操作。

对该问题进行简单分析:
1.首先我需要做的是能够在浏览器中访问到本地的JavaWeb的Servlet控制器,并把从数据库读取的数据返回到浏览器。
2.然后我需要想办法在Vue中访问该资源,但因为两个项目不是在同一个服务上,因此肯定会出现跨域问题。
3.解决axios跨域的问题,我放在了前台,比较简单一点。
4.将JavaWeb返回的数据json格式化,便于Vue使用。
具体实现
1.首先是一个简单的Servlet,并且调用读取数据库的Dao类来获取数据,如下(这一步就不细讲了)

2.并且把该JavaWeb项目部署到 Tomcat(我用的8.5)上,跑起来,端口什么的最好改一下,别和Vue的重了。
3.注意!这里比较重要的一步来了——注解。将注解改为小写字母,我的是“menu”,然后打开浏览器,访问地址:http://localhost:81/vueapp/menu,就是http://主机名:端口号/项目名/Servlet注解名
4.然后就会发现数据出来了!
5.数据那一块,使用了fastjson.jar来处理了数据,并且使用PrintWriter写入到页面。
6.现在来到Vue这边,我用的是Vue(v3)
7.正常的流程,npm install axios
8.来到Vue项目目录下的vue.config.js,代码如下,你们看着自己的改,解决跨域的

const {defineConfig
} = require('@vue/cli-service')
module.exports = defineConfig({transpileDependencies: true,devServer: {proxy: {'/api': {target: 'http://localhost:81/', //这里填入你要请求的接口的前缀ws: true, //代理websockedchangeOrigin: true, //虚拟的站点需要更管originsecure: false, //是否https接口pathRewrite: {'^/api': '' //重写路径}}}}
})

9.在想要发起请求的页面,添加如下代码:

import axios from "axios";
axios.defaults.baseURL = "/api";// GET方法
axios.get("/vueapp/menu").then(function (response) {// 处理成功情况menuList.value = response.data}).catch(function (error) {// 处理错误情况console.log(error)}).then(function () {// 总是会执行});
// POST方法
axios.post("/vueapp/menuadd", qs.stringify(data)).then(function (response) {// 处理成功情况console.log(response);}).catch(function (error) {// 处理错误情况console.log(error);}).then(function () {// 总是会执行});

10.这就完事了。数据就在 Response里面

二、菜单项显示问题

简单描述该问题:

该后台需要对登录用户的等级做出区分,并根据等级的不同,来展示不同的菜单项,比如等级高的人可以看到全部菜单,但等级低的人只能看到少数的菜单项。

对该问题进行简单分析:
首先是登录用户的字段里需要有一个字段作为其等级,假设为identify,现在当我登录该后台时,获取到我的identify,假设数字越大,权限越高。我的数字此时为1
然后是对菜单项进行数据表设计,假设表为tb_menu,其中包含字段(id,menu_title,menu_icon,menu_level,menu_url),其中高亮字段为级别字段,可以按照权限级别来取1,2,3等等。
当我进入后台时,系统根据我的id,去tb_menu表中读取菜单项,例如 “SELECT * FROM tb_menu WHERE menu_level <= ?”,此处的插值为我的id,这样就可以实现简单的权限系统。

三、axios读取数据库数据,传递给组件,结果不渲染数据

简单描述该问题:

我使用axios请求数据后,将数据赋值给变量,并将该变量传递给子组件,结果发现子组件那里的数据是空的,但是在异步回调函数里有数据,这是怎么回事呢?

对该问题进行简单分析:
1.经过我查阅资料,发现axios请求和子组件渲染是同步的,意思就是我的数据还没读完,但是组件已经渲染好了,所以肯定没有数据。
2.所以可以在组件那里加个v-if判断,判断我读取的数据是否为空,如果不为空了,说明读取完毕了。在渲染子组件,这样就不会出现问题了。

具体实现
就给你们看一句代码就明白了:
模板代码:

<template><div class="common-layout"><MeTablev-if="tableData.length !== 0"        <-就这一句:tableDataSource="tableData":tableKeysSource="tableKeys":fromPathSource="'Menu'"></MeTable></div>
</template>

读数据的代码:

   axios.get("/vueapp/menu").then(function (response) {// 处理成功情况tableData.value = response.data;}).catch(function (error) {// 处理错误情况console.log(error);}).then(function () {// 总是会执行});

暂且记这么多。。。

Vue+Javaweb 项目心得相关推荐

  1. 尚硅谷vue前端项目心得2

    Day 3,4 (22-42) 2.1 演示卡顿现象引入防抖与节流 正常:事件触发非常频繁,而且每一次的触发,回调函数都要去执行(如果时间很短,而回调函数内部有计算,那么很可能出现浏览器卡顿) 防抖: ...

  2. 计算机毕业设计-ssm+vue宿舍管理系统源码-宿舍维修管理系统javaweb项目

    计算机毕业设计-ssm+vue宿舍管理系统源码-宿舍维修管理系统javaweb项目 注意:该项目只展示部分功能,如需了解,评论区咨询即可. 作者:IT跃迁谷 1.开发环境 开发语言:Java 后台框架 ...

  3. JavaWeb项目结构使用Vue项目

    提示:javaweb项目中引用Vue项目的案例 文章目录 前言 一.JavaWeb项目结构 项目启动顺序 二.Vue项目结构 Vue结构粗略解释 思考 三.使用Vue 1.使用vue.js, 在htm ...

  4. 踩坑之旅:springboot+vue+webpack项目实战(一)

    2019独角兽企业重金招聘Python工程师标准>>> 网上关于springboot的小项目很多,node.js+vue的项目也很多,但是好像没有两者合一的项目,最近在想实践下将两者 ...

  5. JavaWeb学习心得总结

    JavaWeb(JSP+Servlet)新手学习心得总结 说明: 由于篇幅的原因,本文只是对于JavaWeb项目的大致数据流程做一个介绍,同时引出一些JavaWeb开发中很基础的知识点,且不会精确到具 ...

  6. JavaWeb项目——黑马旅游网

    在学习完Ajax和json后,博主在新年过后开始JavaWeb项目--黑马旅游网的学习和完善,这个项目是使用的jQuery去编写的,因为需要使用异步请求,就不能使用jsp方法. 过程中遇到了很多大大小 ...

  7. java优化登录注册,Java-Web(项目)优化登录注册

    Java-Web(项目)优化登录注册 Java-Web(项目)优化登录注册 实现代码: package com.homework.dao1; public interface Login { publ ...

  8. 【JavaWeb】JavaWeb项目实战——品牌后台管理系统

    JavaWeb项目实战--品牌后台管理系统 项目概述 功能介绍 成果展示 项目实现 使用Maven构建项目 Maven介绍 具体操作 使用Mybatis封装对数据库的操作 在Mysql中建表,并添加数 ...

  9. IDEA 导入别人的javaweb项目进行部署

    前言 我主要是进行java的springboot项目和vue项目的开发,但是架不住在这些框架兴起之前,公司内部已经是有其他的老的框架,我需要在这些老的框架进行修改和调整代码.原本我是使用的eclips ...

最新文章

  1. [原][osg][gdal]两种方式修改tiff高程
  2. 月均活跃用户达1.3亿,B站高可用架构实践
  3. SQL Server 2008 性能测试和调优
  4. python操作access数据库未发现数据源名称_ASP连接ACCESS数据库失败,提示“未发现数据源名称并且未指定默认驱动程序”...
  5. NULL和空字符的区别
  6. rocketmq linux环境下载地址,Linux下RocketMQ下载安装教程
  7. 国际化的支持--多编码问题
  8. iPhone SDK开发基础之UIPageControl编程
  9. OpenCV人工智能图像处理学习笔记 第5章 计算机视觉加强之图像美化
  10. Linux 服务器时区、时间校准,定时校准脚本
  11. 80套微信朋友圈小游戏源码分享
  12. FudanNLP 复旦分词系统 小试一把
  13. 用微信网页版阅读文章
  14. php网页抓取浏览者手机号码_提供一个网页抓取hao123手机号码归属地的例子
  15. linux7开放3306端口,CentOS 7 开放3306端口
  16. linux 线程tid,关于linux:PID和TID之间的区别
  17. 电脑之间利用串口传文件
  18. Android10 SystemUI状态栏网络图标流程分析
  19. 迪赛智慧数——柱状图(基本柱状图):1994-2022年历届世界杯投入资金
  20. 一次内存泄露排查小结

热门文章

  1. Hadoop3.x 50070端口访问不到WEB UI页面
  2. 光模块的传输距离受哪些方面的因素影响?
  3. 如何访问海康威视摄像机的后台
  4. 多层地层中的井筒及地层温度解析
  5. Swfit Float/Double保留一位小数
  6. lol提示游戏环境异常重启计算机,小编教你lol游戏环境异常请重启机器该怎么办...
  7. EDFA可以作为光源吗
  8. python网易云听歌时长_Python爬虫实战:爬取小姐姐最近的听歌曲目
  9. ATU中GSM Layer3
  10. 开源ESP32彩屏WIFI/BLE智能万用表制作过程:3.频率占空比测量