当前位置:   article > 正文

ajax和springBoot完整的交互过程_ajax 调用springboot

ajax 调用springboot

1.0 创建项目

        1.1 创建后台springboot项目

        new project 创建一个springboot项目

创建web项目

点击 File -> Project Structure->module->点击+号->选择web-> 选择create Artifact

        1.2 启动springboot项目报错

Process finished with exit code 0

        解决方案 引入web依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-web</artifactId>
  4. </dependency>

出现问题controller访问web-inf存在jsp页面报404,网上找了各种解答,都没用,最后随便弄弄都成功了,没找到具体原因,将正确的附在下面

首先添加依赖

  1. <!-- 添加servlet依赖模块 -->
  2. <dependency>
  3. <groupId>javax.servlet</groupId>
  4. <artifactId>javax.servlet-api</artifactId>
  5. <!--<scope>provided</scope>-->
  6. </dependency>
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-web</artifactId>
  10. </dependency>
  11. <!-- 添加jstl标签库依赖模块 -->
  12. <dependency>
  13. <groupId>javax.servlet</groupId>
  14. <artifactId>jstl</artifactId>
  15. </dependency>

配置文件配置

  1. server:
  2. port: 8080
  3. spring:
  4. mvc:
  5. view:
  6. suffix: .jsp
  7. prefix: /WEB-INF/

然后更改配置点击 File -> Project Structure->module->点击+号->选择web 将webapp放到main目录下即可

 项目基本已经搭建完成,开始测试ajax和后台交互!!!以登录界面为例子

2.0 ajax与后台交互测试

       2.1 前台首先导入jquery,前台代码

  1. <%--
  2. Created by IntelliJ IDEA.
  3. User: 50373
  4. Date: 2023/4/3
  5. Time: 15:30
  6. To change this template use File | Settings | File Templates.
  7. --%>
  8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
  9. <html>
  10. <head>
  11. <meta charset="UTF-8">
  12. <title>登录界面</title>
  13. <script src="../static/js/jquery-1.7.2.js" type="text/javascript" charset="utf-8"></script>
  14. <script type="text/javascript">
  15. $(function () {
  16. var btn = $("#flush");
  17. btn.click(function () {
  18. $.ajax({
  19. url: '/user/getCode',
  20. type:'get',
  21. data:'id=1', //字符串
  22. dataType:'text',
  23. success:function (data) {
  24. console.log(data);
  25. alert("后台验证码:" + data);
  26. }
  27. })
  28. })
  29. })
  30. $(function (){
  31. var userLogin = $("#login");
  32. userLogin.click(function () {
  33. $.ajax({
  34. url: "/user/login",
  35. type: "POST",
  36. contentType: "application/json;charset=UTF-8",
  37. data: JSON.stringify({
  38. 'username': $("#username").val(),
  39. 'password': $("#password").val()
  40. }),
  41. dataType: 'json',
  42. success: function (data) {
  43. /* if (data.code == "100") {
  44. //登录成功,则跳转到成绩查询页面
  45. window.location.href = "/suda/searchById/" + data.result;
  46. } else {
  47. //登录失败,则给出提示信息
  48. var msg = $("#btn");
  49. msg.after("<br><br><span style='color:red;'>提示:" + data.result + "</span>")
  50. }*/
  51. console.log(data)
  52. }
  53. })
  54. })
  55. }
  56. )
  57. </script>
  58. </head>
  59. <body>
  60. <div style="text-align: center;">
  61. <h2>用户登录</h2>
  62. <form>
  63. 用户名:<input type="text" name="username" id="username"><br>
  64. &emsp;码:<input type="password" name="password" id="password"><br>
  65. 验证码:<input type="text" name="code"><br><br>
  66. <input type="button" id="login" value="登录">&emsp;<input type="button" id="flush" value="获取验证码">
  67. </form>
  68. </div>
  69. </body>
  70. <script type="text/javascript">
  71. </script>
  72. </html>

2.2 springboot后台接收请求并进行处理

  1. @Controller
  2. @RequestMapping("/user")
  3. public class UserController {
  4. @RequestMapping("/toLogin")
  5. public String toLogin(){
  6. return "login";
  7. }
  8. @PostMapping("/login")
  9. @ResponseBody
  10. public String login(@RequestBody User user){
  11. System.out.println(user);
  12. return user.toString();
  13. }
  14. //SpringBoot接收ajax请求的方式
  15. //方式一:使用HttpServletRequest request接收请求参数
  16. @GetMapping("/getCode")
  17. @ResponseBody
  18. public String getCode(HttpServletRequest request){
  19. String id = request.getParameter("id");
  20. System.out.println("AJAX传递的参数:" + id);
  21. //获取5位验证码
  22. return randomCodes();
  23. }
  24. public String randomCodes(){
  25. String str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  26. StringBuilder code=new StringBuilder(5);
  27. for(int i=0;i<5;i++)
  28. {
  29. char ch=str.charAt(new Random().nextInt(str.length()));
  30. code.append(ch);
  31. }
  32. return code.toString();
  33. }
  34. }

2.3 使用restfull风格需要导入mybatis依赖

  1. <dependency>
  2. <groupId>org.mybatis</groupId>
  3. <artifactId>mybatis</artifactId>
  4. <version>3.5.6</version>
  5. <scope>test</scope>
  6. </dependency>
  7. <dependency>
  8. <groupId>org.projectlombok</groupId>
  9. <artifactId>lombok</artifactId>
  10. </dependency>

2.4 遇到的问题,请求的user数据为null

        2.4.1 没有输入数据,是浏览器保存之前的数据

        2.4.2 ajax 要携带  contentType: "application/json;charset=UTF-8"

        2.4.3 参数使用@RequestBody

之后就可以使用ajax请求与springboot交互了。

下一篇写拦截器相关的,尝试去自己走一遍代码,写一下看看能不能写出来,之前完全没有自己写过拦截器都是跟着视频,这次自己写一下,然后记录一下博客写的过程。


                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/652189
推荐阅读
相关标签
  

闽ICP备14008679号