HTTP Post不工作​​?

时间:2017-09-25 08:36:17

标签: java html http

My layout

我只是试图获得name字段atm,因为它甚至无法正常工作。永远不会调用doPost方法。我正在使用GlassFish。

<div class="container">
    <div class="row">
    <div class="col-md-6">
        <div class="row">
            <div class="form-group">
                <h5>Name:</h5>
                <form action="${pageContext.request.contextPath}/GeneralSetup.jsp" method="post">
                <input type="text" class="form-control" name="name">
                    <p>Submit button.
                        <input type="submit" value="submit" /></p>
                </form>
            </div>
        </div>

我目前只测试名称没有成功

public class FetchEnvironmentData extends HttpServlet {

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    String name = request.getParameter("name");
    System.out.println(name);
}

我修改了web.xml

   <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <servlet>
        <servlet-name>fetchEnvironmentData</servlet-name>
        <servlet-class>com.atp.jsp.FetchEnvironmentData</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>fetchEnvironmentData</servlet-name>
        <url-pattern>/GeneralSetup</url-pattern>
    </servlet-mapping>
</web-app>

编辑:我将/ GeneralSetup更改为/GeneralSetup.jsp,现在我明白了:

  

HTTP状态405 - 此URL不支持HTTP方法GET

     

输入状态报告

     

messageHTTP方法此URL不支持GET

     

description对于请求的,不允许使用指定的HTTP方法   资源。

     

GlassFish Server Open Source Edition 4.1.2

1 个答案:

答案 0 :(得分:0)

您的表单操作指向${pageContext.request.contextPath}/GeneralSetup.jsp,并使用URL模式/GeneralSetup配置Servlet。所以我的第一个猜测是,由于URL错误,您根本就不会调用servlet。单击表单提交按钮时服务器的响应是什么?您在服务器的请求日志中看到了什么作为请求的URL和记录的响应代码?

编辑后的其他问题:为了测试更改后的设置,您到底做了什么?您是否重新提交了原始表单或者只是点击了重新加载?后者可能会产生GET请求,从而导致错误。如果你想支持GET,你可以实现doGet,只需用传递的参数调用doPost