Java 使用http post参数的Servlet

Java 使用http post参数的Servlet,java,rest,servlets,httpwebrequest,Java,Rest,Servlets,Httpwebrequest,我对JAVA完全陌生。我需要编写一个servlet,它将使用从客户端发送的HTTPPOST参数。我已经有了一个java应用程序平台服务器,可以在那里部署我的应用程序。我需要的是编写一个servlet,它将对发布的参数做出反应 显然我需要在Servlet中公开这些变量?我在谷歌上做过,在搜索结果中,有人建议使用REST框架来实现这一点。如果不使用任何额外的框架,编写平面java代码(例如运行Tomcat)是不可能的吗?链接到示例或教程也会很有帮助 谢谢不,您不需要REST框架 只需编写一个serv

我对JAVA完全陌生。我需要编写一个servlet,它将使用从客户端发送的HTTPPOST参数。我已经有了一个java应用程序平台服务器,可以在那里部署我的应用程序。我需要的是编写一个servlet,它将对发布的参数做出反应

显然我需要在Servlet中公开这些变量?我在谷歌上做过,在搜索结果中,有人建议使用REST框架来实现这一点。如果不使用任何额外的框架,编写平面java代码(例如运行Tomcat)是不可能的吗?链接到示例或教程也会很有帮助


谢谢

不,您不需要REST框架

只需编写一个servlet来扩展
HttpServlet
,并实现
doPost()

从Sun/Oracle教程开始:

下面是父类的javadocs:


如果你想用jax RS构建一个应用程序,在部署到Tomcat之前,你只需要在你的项目中包含一些JAR。IDE在构建war文件时可能会为您执行此操作。如果您想在部署时减小上载的大小,可以将这些JAR移动到Tomcat lib文件夹中。但您当然不需要使用REST来访问请求参数

实际上,所有传统Web应用程序都需要捕获http post参数。我编写了一个小实用程序servlet来列出所有参数,以帮助我避免愚蠢的错误,即在HTML中用一个名称调用参数,在servlet中用另一个名称调用参数。此代码显示如何获取请求和会话参数:(请参阅)


试试谷歌搜索JavaServlets,问题是使用REST的绝对必要性。duffymo提供了一个很好的解释,他可能花了2分钟写了一个很棒的官方教程(这不是我从谷歌得到的,也不是我不确定的,这是最好的一个)。。这对他来说可能比否决更快——这反过来肯定会帮助一些Java新手。谢谢duffymo。你也没有提供你尝试过的东西。你没有做太多的研究。谷歌搜索
JavaServletPost
显示了大量不使用REST框架的示例,或者只是查看此处的标记wiki页面。将鼠标放在
[servlet]
标记上方,直到出现一个黑框,然后单击信息链接中的。
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;

/**
 * This Servlet contains some helpful debugging methods.
  * @author Leon LaSpina
 */
@WebServlet(name = "UtilityServlet", urlPatterns = {"/dev/Utility"})
public class UtilityServlet extends HttpServlet {

    /**
     * This is a utility method for displaying the list of all request parameters
     * sent to a Servlet or JSP.
     * @param request - The HTTP request sent to the Servlet or JSP
     * @param out The stream so that the method may write directly to the web page.
     */
    public static void printMap(HttpServletRequest request, PrintWriter out) {
        java.util.Map<String, String[]> paramMap = request.getParameterMap();
        out.println("<h3>From Data</h3>");
        out.println("<table border='1'><tr>");
        out.print("<td>attribte name</td><td>Attribute Data</td></tr>");
        String[] attribute;
        for (String name : paramMap.keySet()) {
            out.print("<tr>");
            out.println("<td>" + name + "</td><td>");
            attribute = paramMap.get(name);
            if (attribute.length == 1) {
                out.print(attribute[0]);
            } else {
                for (String s : attribute) {
                    out.print(s + ", ");
                }
            }
            out.println("</td></tr>");
        }
        out.println("</table>");
    }

    /**
     * This is a simple utility method for displaying the list of all Session
     * Objects in a simple table.
     * @param request - sent to servlet or JSP
     * @param out the OutputStream so that we may write directly to the web page
     */
    public static void printSessionMap(HttpServletRequest request, PrintWriter out) {
        HttpSession session = request.getSession();
        printSessionMap(session, out);
    }

    /**
     * This is a simple utility method for displaying the list of all Session
     * Objects in a simple table.
     * @param request - sent to servlet or JSP
     * @param out the OutputStream so that we may write directly to the web page
     */
    public static void printSessionMap(HttpSession session, PrintWriter out) {
        java.util.Enumeration<String> names = session.getAttributeNames();
        out.println("<h3>Session Objects</h3>");
        out.println("<table border='1'><tr>");
        out.print("<td>attribte</td><td>DataType</td><td>Object Data</td></tr>");
        while (names.hasMoreElements()) {
            out.print("<tr><td>");
            String attribute = names.nextElement();
            out.print(attribute + "</td><td>");
            out.print(session.getAttribute(attribute).getClass().getName());
            out.print("</td><td>");
            out.println(session.getAttribute(attribute));
            out.println("</td></tr>");
        }
        out.println("</table>");
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        //HttpSession theSession = request.getSession();
        try {
            out.println("<html><head>");
            out.println("<title>UtilityServlet</title></head>");
            out.println("<body><h1>UtilityServlet for development</h1>");
            printMap(request, out);
            printSessionMap(request, out);
            out.println("</body></html>");
        } finally {
            out.close();
        }
    }
}