读完这篇文章,妥妥拿下springboot+jsp+vue+easyui架构项目

news2024/10/7 8:27:25

概念

  • Spring Boot是一个快速构建基于Java的Web应用程序的框架。它提供了简化开发流程的特性,如自动配置和内置的嵌入式服务器。

  • JSP(Java Server Pages)是一种基于Java的服务器端技术,用于动态生成HTML页面。在Spring Boot中,可以使用JSP来构建视图层。

  • Vue是一个轻量级的前端界面框架,用于构建用户界面。它采用自底向上的方式构建应用程序,并提供了易于使用的组件化开发模式。

  • EasyUI是一个基于jQuery的UI库,提供了丰富的用户界面组件,如表格、表单、布局等。它可以帮助快速构建美观且易于使用的Web应用程序界面。

综上所述,Spring Boot JSP Vue EasyUI是一种使用Spring Boot作为后端框架,JSP作为视图层技术,Vue作为前端框架,以及EasyUI作为UI库的Web应用程序开发模式。这种组合可以提供快速开发、易于维护且具有良好用户体验的Web应用程序。

流程图

在这里插入图片描述

流程解释

如果下方代码不能理解的,直接拉个项目模板看看就知道了
j4n-spring-boot-jsp-vue-easyui

ModelAndView (简称MVC) 我个人简称 模型数据(model) 和视图解析(view),下方说明均以model 和view进行解释

第一步

启动项目,根据Index地址访问前端项目首页,然后进行正常的前后端交互了

第二步

前后端交互

  • 前端发个请求,Controller接收,代码处理DB数据并封装到model。通过view进行JSP页面转发。到了jsp页面,通过el表达式+ easyui组件或者原始html进行model数据渲染。自此完成了动态页面数据交互(ModelAndView 交互)
//简单的ModelAndView 
ModelAndView modelAndView = new ModelAndView();  
//假设 hello world 就是db的数据,//省略db的业务操作
modelAndView.addObject("message", "Hello World!");  
modelAndView.setViewName("hello");  
return modelAndView;  
当然也可以这样写,但是要配置下方yaml的视图解析。这是可以不配置,只是作者忘记了默认视图解析路径是啥
ModelAndView modelAndView = new ModelAndView();  
modelAndView.addObject("message", "Hello World!");  
return "hello";  

yaml

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp

el表达式

${message}
  • Ajax发个请求,RestContrller接收,代码处理DB数据并封装到对象中,返回JSON格式数据交于jsp页面处理。到了jsp页面,可以单独通过easyui框架对数据进行绑定并渲染。也可以通过vue将获取的数据渲染到data。因为初始化页面mounted挂载了easyUI组件,easyui组件关联了data(JSON 交互)
/**
@RestController底层是下方两个注解。@Controller 默认返回是modelandview 。如果加了@ResponseBody则返回是JSON
RestController是写在类上的,相当给所有方法加上了@ResponseBody。如果一个控制层要同时存在modelandview 和JSON返回。那类上的注解必须是Controller,需要modelandview 返回的只要在方法上加上@ResponseBody即可

*/
@Controller
@ResponseBody
  • 还有一种交互也是Ajax请求,但是可以同时携带model和JSON数据到前端。model通过jsp技术解析获取,JSON通过ajax渲染 JSON(ModelAndView 或 JSON 交互)

总结

  • 传统的项目依赖Spring容器是通过xml的方式配置bean完成依赖注入的。Tomcat也要自己配置,配置开发都极其繁琐。Springboot内置Tomcat并且通过注解的方式就可以完成依赖注入了开发极其方便简单。

  • 有人说使用了vue为啥不进行前后端分离呢,这个问题?公司项目就用jsp开发,能奈何,除非你可以做到把公司原有的业务全部替换成vue开发。这。。。没个半年也得一年都是钱啊。

  • 我可以使用layui 或者bootstrap嘛?当然可以。只要前端ui框架是js或者jquery封装的原理都一样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/886754.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

100个网络知识,懂一半绝对高手!

中午好,我的网工朋友。 咱网工找工作的时候,招聘岗位上,都会有好几个大差不差的指标。 比如说,相关专业、啥等级的厂商证书,又或是熟悉网络基础知识等等,对吧。 那这个网络基础知识,就很灵性了…

飞腾架构麒麟V10安装达梦数据库客户端

目录 前言1.下载2.检查安装环境2.1 检查操作系统限制2.2 检查系统内存与存储空间 3.安装4.打开数据库管理工具5.总结 前言 本文主要介绍在飞腾架构麒麟V10桌面系统下如何安装达梦数据库客户端。参照安装手册安装的时候遇到了一些问题特意记录在此,希望能为遇到类似…

ubuntun 18.04设为静态ip(.net模式,可连接外网)

ubuntun 18.04设为静态ip(.net模式,可连接外网) ubuntun设置 进入到网络配置文件中 sudo vim /etc/netplan/01-network-manager-all.yaml修改配置文件如下 注意制表符(格式),其中addresses为要设定的固定…

42个人工智能机器学习数据集推荐

为成功推出人工智能(AI)项目,许多公司正在转向采用外部数据集。当今时代,寻找数据集比以往任何时候都要容易,数据集对机器学习模型的性能也日益重要。有许多站点都托管数据存储库,涵盖主题广泛,…

Boost开发指南-4.6singleton

singleton singleton即单件模式,实现这种模式的类在程序生命周期里只能有且仅有一个实例。单件模式是一个很有用的创建型模式,有许多实际的应用,并被广泛且深入地研究。 虽然单件模式非常重要,但很遗憾目前Boost中并没有专门的单…

IDA调试安卓应用

先安装好IDA工具 找到需要放到android上的android_server文件 我这里是64位的 # 将android_server64放入到手机/data/local/tmp adb push d:\as /data/local/tmp/as启动android_server 默认的端口是23946, 但我指定了一个新的端口 PC端端口转发 adb forward tcp:23946 tcp:…

django实现文件上传

在django中实现文件上传有三种方法可以实现: 自己手动写使用Form组件使用ModelForm组件 其中使用ModelForm组件实现是最简单的。 1、自己手写 先写一个上传的页面 upload_file.html enctype"multipart/form-data 一定要加这个,不然只会上传文件名…

在Orangepi5开发板3588s使用opencv获取摄像头画面

先感谢香橙派群的管理员耐心指导,经过不断的调试修改最后成功通过opencv调用mipi摄像头获取画面 就记录分享一下大概步骤希望大家少踩点坑!!!!!! 我用的固件系统是ubuntu2022.0.4 固件是&#x…

【java毕业设计】基于SSM+MySql的个人交友网站设计与实现(程序源码)--个人交友网站

基于SSMMySql的个人交友网站设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于SSMMySql的个人交友网站设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方式。更多毕业设计源…

Git 目录详解

一、Git目录详解 在使用Git时,有几个目录和文件在Git项目中扮演着重要的角色,下面详细介绍一下这些目录和文件的作用 1、.git目录 .git目录是Git项目的核心,包含了Git的版本库和元数据等重要信息。在该目录中,有一些重要的子目录和…

Python Web框架:Django、Flask和FastAPI巅峰对决

今天,我们将深入探讨Python Web框架的三巨头:Django、Flask和FastAPI。无论你是Python小白还是老司机,本文都会为你解惑,带你领略这三者的魅力。废话不多说,让我们开始这场终极对比! Django:百…

【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云

【腾讯云 TDSQL-C Serverless产品体验】抓取processon热门模版的标题生成词云 serverless服务是腾讯云自研的新一代云原生关系型数据库TDSQ L-C的无服务器架构版,是全Serverless架构的云原生数据库 前言 体验了一下腾讯云刚出的TDSQL-C Serverless,使用…

阿里云故障洞察提效 50%,全栈可观测建设有哪些技术要点?

本文根据作者在「TakinTalks 稳定性社区 」公开分享整理而成 #一分钟精华速览# 全栈可观测是一种更全面、更综合和更深入的观测能力,能协助全面了解和监测系统的各个层面和组件,它不仅仅是一个技术上的概念,更多地是技术与业务的结合。在“…

Oracle外部表ORACLE_LOADER方式加载数据

当数据源为文本或其它csv文件时,oracle可通过使用外部表加载数据方式,不需要导入可直接查询文件内的数据。 1、如下有一个文件名为:test1.txt 的数据文件。数据文件内容为: 2、使用sys授权hr用户可读写 DATA_PUMP_DIR 目录权限&a…

Python tkinter Notebook标签添加关闭按钮元素,及左侧添加存储状态提示图标案例,类似Notepad++页面

效果图展示 粉色框是当前页面,橙色框是鼠标经过,红色框是按下按钮,灰色按钮是其他页面的效果; 存储标识可以用来识别页面是否存储:例如当前页面已经保存用蓝色,未保存用红色,其他页面已经保存用…

数据分析 | 调用Optuna库实现基于TPE的贝叶斯优化 | 以随机森林回归为例

1. Optuna库的优势 对比bayes_opt和hyperoptOptuna不仅可以衔接到PyTorch等深度学习框架上,还可以与sklearn-optimize结合使用,这也是我最喜欢的地方,Optuna因此特性可以被使用于各种各样的优化场景。 2. 导入必要的库及加载数据 用的是sklea…

idea插件开发-自定义语言01Language和LanguageType

Intellij platform本质是对不同的开发语言提供支持,举例来说我们也可以用notebook.app来开发java代码,但效率上可能没有可比性。因为Intellij idea提供了很多语言特定功能(例如语法高亮显示和代码分析)。很多插件本质上都是效率插…

AI项目二:基于mediapipe的虚拟鼠标控制

若该文为原创文章,转载请注明原文出处。 一、项目介绍 由于博主太懒,mediapipe如何实现鼠标控制的原理直接忽略,最初的想法是想控制摄像头识别手指控制鼠标,达到播放电影的效果。基本上效果也是可以的。简单的说是使用mediapipe检…

【软件测试】随笔系统测试报告

博主简介:想进大厂的打工人博主主页:xyk:所属专栏: 软件测试 随笔系统采用 SSM 框架前后端分离的方法实现,本文主要针对功能:登录,注册,注销,写随笔,删除随笔,随笔详情页…

SQLite数据库实现数据增删改查

当前文章介绍的设计的主要功能是利用 SQLite 数据库实现宠物投喂器上传数据的存储,并且支持数据的增删改查操作。其中,宠物投喂器上传的数据包括投喂间隔时间、水温、剩余重量等参数。 实现功能: 创建 SQLite 数据库表,用于存储宠…