有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javaheadfirstservlet&JSP示例不起作用

我正在读一本书“Head first servlets & JSP”,并使用tomcat 9jdk8eclipse neonservlet不工作。我收到一个错误:“HTTP Status 500 - Error instantiating servlet class com.example.web.BeerSelect

这张照片是我的工作区

my workspace

这是我的代码。(form.html

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>beer</title> </head> <body> <h1 align = "center">Beer Selection Page</h1> <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> <center> <input type="SUBMIT"> </center> </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://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" 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>

这是我的servletBeerSelect.java

package com.example.web; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @SuppressWarnings("serial") public class BeerSelect extends HttpServlet{ public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { 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); } }

.class未生成。有什么问题吗

Tags:  

共 (2) 个答案

  1. # 1 楼答案

    嗯,我在你的工作区里看不到.class文件。这只是一个建议,但您可以尝试使用

     javac BeerSelect.java
    

    这将创建一个BeerSelect.class文件。然后创建一个classes文件夹并将其放入其中。像这样:

    WebContent/WEB-INF/classes/com/example/web/BeerSelect.class
    

    看看这是否有帮助

  2. # 2 楼答案

    eclipse中不会看到.class文件。在创建项目时,您可能不会更改类文件文件夹,默认设置为build/classes。除非你想把class文件夹放在你想要的地方,否则你不必改变它的路径。您可以在工作区中看到class文件。 与您的代码相关的是,代码中没有任何错误,它工作正常。我只做了一个更改,将html加载为主页。我在你的^{中添加了以下几行

    <welcome-file-list>
        <welcome-file>form.html</welcome-file>
      </welcome-file-list>
    

    而且效果很好