Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat找不到我的servlet_Java_Jsp_Tomcat_Servlets_Tomcat7 - Fatal编程技术网

Java Tomcat找不到我的servlet

Java Tomcat找不到我的servlet,java,jsp,tomcat,servlets,tomcat7,Java,Jsp,Tomcat,Servlets,Tomcat7,我正在使用IDEA 13。我正在尝试编写一个简单的JAVA应用程序,其中有一个表单 带有一些选项,其操作是一个servlet Beer是我的应用程序的名称。表单显示正确,但当我单击submit按钮时,tomcat无法找到servlet 它再次显示空白页(不显示表单)“HTTP Status 404-/Beer/SelectBeer.do” My web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="h

我正在使用IDEA 13。我正在尝试编写一个简单的JAVA应用程序,其中有一个表单 带有一些选项,其操作是一个servlet



Beer是我的应用程序的名称。表单显示正确,但当我单击submit按钮时,tomcat无法找到servlet 它再次显示空白页(不显示表单)“HTTP Status 404-/Beer/SelectBeer.do”


My 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>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>

我的表格

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <h1 align="center">Beer Selection</h1>
    <form method="POST" action="SelectBeer.do">

     Select Beer characteristics<br>
    Color:
    <select name="color" size="1">
    <option value="light">light</option>
    <option value="dark">dark</option>
    <option value="amber">amber</option>
    <option value="brown">brown</option>
    </select>
    <br><br>
    <center>
     <input type="submit">
   </center>
   </form>
   </body>
   </html>


为什么tomcat找不到我的servlet?

将应用程序从webapps/根目录移动到webapps目录

webapps/
   ROOT/
       ...
   Beer/
       index.jsp
       ...
   app2/
       ...

也可以覆盖doGet方法

public void  doGet(HttpServletRequest request,HttpServletResponse response)
    throws IOException , ServletException {

        doPost(request,response)
  }

你的
result.jsp
文件在哪里?为什么你的servlet和模型类看起来是一样的?@R.S我的jsp文件就是result.jsp我已经在你的servlet类的postoverride doGet方法中包含了它。@ravikumar很抱歉,这是一个错误,现在已经更正了。它不起作用,我不认为我必须在表单使用时覆盖doGetPOST Method它可能还不起作用,但它以前肯定不正确是的,你说的关键是我的问题,谢谢
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.*" %>
<html>
<head>
    <title></title>
</head>
<body>
<h1 align="center">Beer Recommendation JSP</h1>
<%
    List styles=(List)request.getAttribute("styles");
    Iterator it=styles.iterator();
    while(it.hasNext()){
    out.print("<br>try: " +it.next());
    }
%>
</body>
</html>
     /**
 * Created by sasha.s on 5/28/2014.
 */
import java.util.*;
public class BeerExpert {
    public List getBrands(String color){
        List brands=new ArrayList();
        if(color.equals("amber")){
            brands.add("Jack Amber");
            brands.add("Red Moose");
        }
        else{
            brands.add("Jail Pale Ale");
            brands.add("Gout Stout");
        }
        return (brands);
    }
}
webapps/
   ROOT/
       ...
   Beer/
       index.jsp
       ...
   app2/
       ...
public void  doGet(HttpServletRequest request,HttpServletResponse response)
    throws IOException , ServletException {

        doPost(request,response)
  }