0

我使用 Eclipse IDE 创建了一个动态项目。我在CollegeManagement 项目的WebContent 文件夹中添加了一个html 页面Welcome.html。我将项目部署在 Apache Tomcat-7.0.47 上。部署后,我可以在 C:\apache-tomcat-7.0.47\webapps 中看到一个文件夹 CollegeManagement,其中包含 Welcome.html。当我通过右键单击 Welcome.html 并选择在服务器上运行来运行应用程序时,它会给出错误 HTTP 405。有人可以帮我解决这个问题吗?请在此处找到快照http://imageshack.us/photo/my-images/843/3q0r.png/

项目结构图:http: //imageshack.us/photo/my-images/826/ufep.png/

HTML 页面 Welcome.html 包含

<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Welcome</title>
</head>
<body>
<form method="post" action="http://localhost:8181/CollegeManagement/do">
Operation<input type="text" name="op"/>
<button type="submit">Do</button>
</form>
</body>
</html>

web.xml 包含

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>CollegeManagement</display-name>
  <welcome-file-list>
   <!--  <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file> -->
     <welcome-file></welcome-file>
  </welcome-file-list>

  <servlet-mapping>
  <servlet-name>welcome</servlet-name>
  <url-pattern>/*</url-pattern>
  </servlet-mapping>
  <servlet>
  <servlet-name>welcome</servlet-name>
  <servlet-class>com.vijay.Welcome</servlet-class>
  </servlet>
</web-app>

我正在尝试访问服务器上的静态页面,它应该返回而不检查 web.xml 或 HTML 文件的内容。为什么不支持返回 GET 方法?

仅供参考:我尝试将 Welcome.html 重命名为 College.html,问题仍然存在。

非常感谢。

4

1 回答 1

0

注意:首先检查是否有任何不正确的 url-pattern。

使用以下内容确保默认的 servlet 容器。

  <!-- Disables Servlet Container welcome file handling. Needed for compatibility with Servlet 3.0 and Tomcat 7.0 -->
  <welcome-file-list>
    <welcome-file></welcome-file>
  </welcome-file-list>

这是因为您可能在没有实际实现 doGet() 的情况下调用 doGet()。它是 doGet() 的默认实现,它会引发错误,指出该方法不受支持。

于 2013-11-04T13:25:06.680 回答