前端發送post請求,如何跟后端交互


假如,現在我做了一個給用戶使用的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



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM