Java-web:使用Axios代替JSP进行前后端分离与数据交互

这篇具有很好参考价值的文章主要介绍了Java-web:使用Axios代替JSP进行前后端分离与数据交互。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java-web:使用Axios代替JSP

使用Servlet注解代替配置web.xml文件

在servlet3.0版本支持使用注解

1.创建一个Servlet响应axios发送的请求

@WebServlet("/hello")
public class HelloWorldServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取请求Reader对象
        BufferedReader br = req.getReader();
        //读取axios发送的data:字符串
        String params = br.readLine();
        //{"str":"hello world!"}
        System.out.println(params);
        //返回一个响应response
        //其中响应体里面的data对象有个"success"字符串
        resp.getWriter().write("success");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       this.doGet(req,resp);
    }
}

JSP代替:

还原JSP到HTML:

Axios:将ajax进行封装,简化JS发送异步请求的代码

Axios官网:https://www.axios-http.cn/

下载axios.js文件到本地然后再HTML头文件引入或者直接引用网址的JS头文件两种方式

2.创建一个main.html文件,设置一个div用于显示axios使用回调函数时从响应体里获得的JSON数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="../static/js/axios.js"></script>
</head>
<body>
     <div id="main"></div>
</body>
</html>

3.编写JS代码

设置窗口onload函数:里面直接调用axios封装好的ajax函数发送异步请求

axios发送POST请求跳转前面设置好的路径"/hello",设置data

回调函数向div里插入servlet响应的JSON字符串

window.onload = function (){
   axios({
         method: 'post',
         url:'http://localhost:8080/test/hello',
         data:{
              str:'hello world!'
           }
         })
        .then(function (response){
            document.getElementById("main").innerText = response.data
            console.log(response);
        })
    }

4.maven打包(package)并运行http://localhost:8080/test/main.html

运行顺序如下:

main.html打开应该是空白页面,但是axios发送了一个POST请求

按下F12打开浏览器开发者工具NetWork查看捕获的请求和响应:

Java-web:使用Axios代替JSP进行前后端分离与数据交互

后端Servlet响应请求并且使用print打印传送的JSON字符串,Tomcat的console可以查看:

Java-web:使用Axios代替JSP进行前后端分离与数据交互

之后servlet也给予response响应体JSON字符串

html页面里对应axios的回调函数进行页面显示(innerText)和浏览器console显示(console.log)

Java-web:使用Axios代替JSP进行前后端分离与数据交互

打开f12浏览器的开发者工具查看控制台console:

Java-web:使用Axios代替JSP进行前后端分离与数据交互

TIPS:使用alibaba的FastJSON.jar可以帮助快速处理字符串

心得:

项目的一些实际的部署会安排到服务器上面html页面对于css/js/images等静态资源最好放在static文件夹里,引用时候最好直接是以完整的路径http://localhost:8080/demo/static/…,避免路径的误解,而不是使用…/static/…这样

一个完整的过程描述:

HTML页面→使用axios函数封装ajax发送异步请求(request)→servlert后端对request处理(获取发送的JSON字符串作为数据),然后也能对response也能进行处理(response.getWirter().write(“xxxxxxx”))→axios的回调函数对servlet后端发送的resopnse也能进行处理(response.data)文章来源地址https://www.toymoban.com/news/detail-461127.html

到了这里,关于Java-web:使用Axios代替JSP进行前后端分离与数据交互的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenHarmony:使用网络组件axios与Spring Boot进行前后端交互

    流程图: 前端请求函数 这两个函数是使用axios库发起HTTP GET请求的函数,用于与服务器进行通信 服务器端点: http://192.168.211.1:8090/test/1 这是我本机的ip地址和springboot运行端口,使用在windows终端输入ipconfig可查看 返回值: 该函数返回一个Promise,该Promise在请求成功时将包含

    2024年01月22日
    浏览(52)
  • 基于Axios完成前后端分离项目数据交互

    npm i axios -S 封装一个请求工具:request.js  在vue 的 methods 中使用 :    或者直接在vue 中引用使用:  但是现在就运行程序则会报错 方法一:增加一个 CorsConfig 类  方法二:在controller层上加上@CrossOrigin 注解  两个方法任选其中一个就行。现在将前后端启动就可以进行数据交互

    2024年02月11日
    浏览(38)
  • Vue的Ajax请求-axios、前后端分离练习

    ​ Axios,是Web数据交互方式,是一个基于promise [5]的网络请求库,作用于node.js和浏览器中,它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生node.js http模块, 而在客户端 (浏览端) 则使用XMLHttpRequest。 [2] axios :不是vue的插件,可以在任何地方使用

    2024年02月11日
    浏览(49)
  • 【深入浅出 Spring Security(十三)】使用 JWT 进行前后端分离认证(附源码)

    JWT 全称 Java web Token,在此所讲述的是 JWT 用于身份认证,用服务器端生成的JWT去替代原始的Session认证,以提高安全性。 JWT本质是一个Token令牌,是由三部分组成的字符串,分别是头部(header)、载荷(payload)和签名(signature)。头部一般包含该 JWT 的基本信息,例如所使用的

    2024年02月12日
    浏览(39)
  • Java代码优化案例2:使用HashMap代替List进行数据查找

    在开发过程中,我们经常需要在一个集合中查找某个元素。一种常见的做法是使用List来存储数据,然后通过循环遍历List来查找目标元素。然而,当数据量较大时,这种做法效率较低。我们可以通过使用HashMap来优这个过程。 1. 原始代码实现 上述代码使用List存储学生对象,然

    2024年02月11日
    浏览(40)
  • SpringBoot&Vue&EmementUI前后端分离整合、统一封装axios、跨域配置

    🧑‍💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开发。技术尚浅,闭关学习中······ 😎人生感悟:尝尽人生百味,方知世间冷暖。

    2024年02月09日
    浏览(40)
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--功能实现[五]

    需求分析/图解 思路分析 完成后台代码从dao - serivce - controller , 并对每层代码进行测试 完成前台代码,使用axios 发送http 请求,完成带条件查询分页显示 代码实现 修改FurnService.java 和FurnServiceImpl.java , 增加条件查询 修改FurnService.java 修改FurnServiceImpl.java 修改FurnController.java , 处

    2024年02月14日
    浏览(34)
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--具体功能实现【三】

    需求分析/图解 思路分析 完成后台代码从dao - serivce - controller , 并对每层代码进行测试, 到controller 这一层,使用Postman 发送http post 请求完成测试 完成前端代码, 使用axios 发送ajax(json 数据)给后台, 实现添加家居信息 代码实现 创建srcmainjavacomnlcfurnsserviceFurnService.java 和src

    2024年02月14日
    浏览(41)
  • SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[二]

    需求分析 效果图 思路分析 使用Vue3+ElementPlus 完成。 代码实现 修改ssm_vuesrcApp.vue 成如下形式, 会删除部分用不上的代码,增加 修改ssm_vuesrcviewsHomeView.vue , 删除ssm_vuesrccomponentsHelloWorld.vue 创建ssm_vuesrccomponentsHeader.vue 修改ssm_vuesrcApp.vue , 引入Header 组件 创建全局的global

    2024年02月13日
    浏览(44)
  • Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【四】

    😀前言 本篇博文是关于Spring Boot(Vue3+ElementPlus+Axios+MyBatisPlus+Spring Boot 前后端分离)【四】,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 💕欢迎大家:这里是CSDN,我总结知识的地方,欢

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包