当前位置:   article > 正文

使用tomcat部署前后端程序与前后端交互的几种方式_部署完前端怎么把后端

部署完前端怎么把后端

本文主要涉及如何使用tomcat部署前后端程序与前后端交互的几种方式,首先先是如何在tomcat中部署后端程序

部署后端程序

1.创建项目

首先要在idea中创建一个maven项目

右上角文件-新建-新建项目选择maven项目 这样就得到了一个pom.xml的项目

2.引入依赖

创建<dependencies>标签 并在其中引入对应jar包 代码如下文

  1. <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
  2. <dependency>
  3. <groupId>javax.servlet</groupId>
  4. <artifactId>javax.servlet-api</artifactId>
  5. <version>3.1.0</version>
  6. <scope>provided</scope>
  7. </dependency>

该代码中包含了接下来所需要的http类所需要的父类

引入后pom.xml项目文件如下

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>org.example</groupId>
  7. <artifactId>untitled1</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <properties>
  10. <maven.compiler.source>8</maven.compiler.source>
  11. <maven.compiler.target>8</maven.compiler.target>
  12. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  13. </properties>
  14. <dependencies>
  15. <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
  16. <dependency>
  17. <groupId>javax.servlet</groupId>
  18. <artifactId>javax.servlet-api</artifactId>
  19. <version>3.1.0</version>
  20. <scope>provided</scope>
  21. </dependency>
  22. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  23. <dependency>
  24. <groupId>com.fasterxml.jackson.core</groupId>
  25. <artifactId>jackson-databind</artifactId>
  26. <version>2.14.1</version>
  27. </dependency>
  28. </dependencies>
  29. <packaging>war</packaging>
  30. <build><finalName>hello_servlet1</finalName></build>
  31. </project>

3.创建项目

webapp文件夹下新建一个WEB-INF文件 在此文件夹下创建一个web.xml文件

引入该文件主要是告诉tomcat 该项目需要tomcat所带运行

在web.xml中写入如下代码

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4. <web-app>
  5. <display-name> Archetype Created Web Appl ication </display-name>
  6. </web-app>

 到现在为止都是固定套路

4.创建代码

在java文件夹下创建java代码

  1. @WebServlet("/hello1")
  2. public class hellosevelet extends HttpServlet {
  3. @Override
  4. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  5. // super.doGet(req, resp);
  6. //属于resp对象 写入resp的body对象
  7. String student=req.getParameter("studentid");
  8. String classid=req.getParameter("classid");
  9. resp.getWriter().write("studentid="+student+"classid="+classid);
  10. }
  11. }

这里有几个注意点

1.需要继承httpservlet 此类在第一步所依赖的jar包中

2.将代码自带的super屏蔽,因为父类默认返回报错界面

3.req是客户端发来的请求 会自动解析 resp则是程序员自己设置的反馈信息

4.最后需要在代码前面加上@WebServlet("/你想设置的文件路径")

5.doget在前端发送get请求时调用 dopost则是发送post时调用

5.打包程序

首先 tomcat运行后端代码需要war包 而打包默认jar包 因此需要在pom.xml中写入代码

<packaging>war</packaging>

将其变成war包

然后找到右侧maven程序找到packet 双击运行 这样就会出现一个默认项目名的jar包

6.部署程序

将所得到的jar包放到tomcat中的webapp下 tomcat会自动生成目录 然后在bin文件夹下找到start.bat程序 启动tomcat

7.验证

在网站中输入验证

http://127.0.0.1:8080/hello_servlet1/hello2

127.0.0.1代表本机ip 8080代表tomcat所绑定的本地端口 hello_servlet为jar包名也就是context path hello2则是自己写的文件路径

这样 我们就成功将后端代码部署到tomcat(注意 使用dopost方法会显示405方法错误 因为打开后端页面代码默认都是get)

当然还有插件例如smarttomcat 可以将打包项目和部署项目合并,大家可以下载安装尝试一下,能够提高效率

接下来 我们看如何部署前端代码

部署前端代码

部署前端代码相比于后端较为简单既在webapp中创建html项目(tomcat中规定前端代码需要在此保存)

前后端交互的几种方式

1.通过键值对既query string进行传输

  1. String student=req.getParameter("studentid");
  2. String classid=req.getParameter("classid");
  3. resp.getWriter().write("studentid="+student+"classid="+classid);

接下来 我们默认后端代码需要接受student和classid两个值并将他们打印

第一种 也是最简单的 可以在网站中加入查询字符串进行传递信息

http://127.0.0.1:8080/hello_servlet1/hello1?studentid=100&classid=200

键值之间用=连接 文件层次和查询字符串直接用?分隔 不同的键值对用&分割

这样就能正确的把studentid和classid传给后端

2.通过ajax进行传递

首先引入包含ajax的jquery cdn

  1. <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.4/jquery.min.js">
  2. </script>

以及所需要的方法以及相对路径(这是对于html文件所在的路径来说)

  1. $.ajax({
  2. type:'get',
  3. url:'hello1',
  4. });

构建完成后即可完成前后端交互 实现数据传输

3.使用form标签

  1. <form action="hello1"method="Post">
  2. <input type="text" name="studentid">
  3. <input type="text"name="classid">
  4. <input type="submit"value="submit">
  5. </form>

action与method与ajax中的url和type相同 用户通过input进行输入 并用submit提交 后端就能得到name所对应的值

4.用postman发送json请求

body-raw-json 发送json请求(send)json请求格式类似于

{

    "studentid":10,

    "classid":20

}一样

注意 此时后端收到json请求时 并不会自动解析出键值对 而是req通过读字节将json请求完整读出

想要解析出键值对 则要

1.引入依赖

  1. <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
  2. <dependency>
  3. <groupId>com.fasterxml.jackson.core</groupId>
  4. <artifactId>jackson-databind</artifactId>
  5. <version>2.14.1</version>
  6. </dependency>

2.在java代码中创建class包含所需要读取的键值对

  1. class student{
  2. public int studentid;
  3. public int classid;
  4. }

3.创建ObjectMapper objectMapper = new ObjectMapper();

4.通过objectmapper中的getvalueof 将req读入的json请求字节流转化为类中的对应属性 并返回一个新的类对象

student s=objectMapper.readValue(req.getInputStream(),student.class);

这样就能够得到所需的键值对 实际生产中  如果使用tomcat实现前后端交互 json请求用的比较多

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

闽ICP备14008679号