我只是试图获得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
答案 0 :(得分:0)
您的表单操作指向${pageContext.request.contextPath}/GeneralSetup.jsp
,并使用URL模式/GeneralSetup
配置Servlet。所以我的第一个猜测是,由于URL错误,您根本就不会调用servlet。单击表单提交按钮时服务器的响应是什么?您在服务器的请求日志中看到了什么作为请求的URL和记录的响应代码?
编辑后的其他问题:为了测试更改后的设置,您到底做了什么?您是否重新提交了原始表单或者只是点击了重新加载?后者可能会产生GET请求,从而导致错误。如果你想支持GET,你可以实现doGet
,只需用传递的参数调用doPost
。