【发布时间】:2014-10-04 03:49:30
【问题描述】:
大家好,我正在阅读一本 jsp 书籍“Head First Servlet 和 JSP”,而下一个示例不起作用...
html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="windows-1255">
<title>Insert title here</title>
</head>
<body>
<h1 style="text-align: center;">Beer Selection Page</h1>
<br><br>
<form method = "POST" action="SelectBeer.do">
Select beer characteristics<p>
Color:
<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>
<br><br>
<div style="text-align:center">
<input type = "SUBMIT">
</div>
</form>
</body>
</html>
Web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>Ch3 Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-name>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
Servlet 代码:
package com.example.web;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
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);
}
}
当我运行它时,我得到...“HTTP 状态 405 - 此 URL 不支持 HTTP 方法 GET”...我急需帮助。 提前感谢您的帮助!!
【问题讨论】:
-
您在浏览器中尝试的是什么网址? html代码的文件名是什么?
-
GET请求需要提供doGet方法
-
但我没有任何获取请求。
-
您的示例在 WebSphere Liberty 中运行良好。为此,您不需要任何 doGet() 方法,您只在此处使用 post。谁说的都不对。你的容器可能有问题。您使用什么 url 来显示 html 页面以及您使用什么容器?
-
我使用 tomcat 作为容器,我的 url 是 localhost:8080/Beer/form.html(表单是 html 文件)我正在使用 elipce,我复制了 .class 文件并将其移动到 WEB- INF/classes/com/example/web/.没有任何效果!!