雕刻时光

just do it……nothing impossible
随笔 - 547, 文章 - 0, 评论 - 82, 阅读 - 86万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

前端发送post请求,如何跟后端交互

Posted on   huhuuu  阅读(45605)  评论(0编辑  收藏  举报

假如,现在我做了一个给用户使用的html页面:

复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<h1>helloPost!</h1>

<body>

<form method="post" action="SelectBeer.do">
    <p>Select beer</p>
    <select name="color" size="1">
        <option value="light"> light</option>
        <option value="amber"> amber</option>
        <option value="brown"> brown</option>
        <option value="dark"> dark</option>
    </select>
    <center>
        <input type="submit">
    </center>
</form>>
</body>
</html>
复制代码
<form method="post" action="SelectBeer.do"> 中的SelectBeer.do有点像资源名。最终会被http:/127.0.0.1:8080/文件名/SelectBeer.do 的形式访问到。

这是我又写了后台servlet程序,实现了get,post的方法:
复制代码
package com.example.web;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Time;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloWorld2
 */
@WebServlet("/HelloWorld2")
public class HelloWorld2 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * Default constructor. 
     */
    public HelloWorld2() {
        // TODO Auto-generated constructor stub
        
        
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    @SuppressWarnings("deprecation")
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        PrintWriter out = response.getWriter();
        //out.print("helloWorld");
        
        //String outPut=request.getParameter("input");
        out.print(request);
        System.out.println(request);
        
        String c = request.getParameter("color");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub

        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("Beer Selection Advice<br>");
        String c = request.getParameter("color");
        out.println("<br> Got beer color"+c);
        
        System.out.println(c);
        
        
    }

}
复制代码

 

把html放到servlet目录下,发现前后端无法通信。

这时还需要在web.xml下进行设置。

复制代码
      <servlet>
          <servlet-name>123123</servlet-name>
          <servlet-class>com.example.web.HelloWorld2</servlet-class>
      </servlet>
    
    <servlet-mapping>
        <servlet-name>123123</servlet-name>
        <url-pattern>/SelectBeer.do</url-pattern>
    </servlet-mapping>    
复制代码
servlet:可以自己设置servlet的资源名字, 然后写上对应的servlet类名
servlet-mapping:自己的servlet与资源的映射关系


发送Post请求:


返回:

发送get请求:

参考:head first,servlet & jsp


编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示