在Netbeans 7.3中配置Java HTTP Servlet

时间:2013-05-20 00:27:11

标签: java jquery web-config netbeans-7.3

我最近升级到Netbeans 7.3,而且我的项目配置和界面并不多。例如,一旦我以前看到使用java类的源包,现在我只能在“文件”面板中看到它们。我有一个名为batchUtility的包,其中包含一个名为batchQueryServlet的HTTP servlet。

我必须通过jQuery.ajax()函数将一个JSON发布到batchQueryServlet,我无法映射servlet。

由于Netbeans 7.3没有发送配置文件,我自己创建了一个单击web-inf文件夹> new> web.xml文件并编写如下:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
     version="3.0">
<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-list>
  <servlet>
    <servlet-name>batchQueryServlet</servlet-name>
    <servlet-class>/batchUtility.batchQueryServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>batchQueryServlet</servlet-name>
    <url-pattern>/batchQueryServlet</url-pattern>
  </servlet-mapping>
</web-app>

但是,在发出请求时,我收到404错误:

  $.ajax({
                            url: "/batchQueryServlet",
                            contentType: 'application/json',
                            data: json,
                            Accept: "text/html",
                            success: function(data, textStatus, jqXHR) {
                                alert(data);
                            },
                            type: "POST"
                        });

现在,我很确定它找不到类,因为如果我调用servlet名称,我会得到一个classNotFound异常。我怎么能解决这个问题? (一个快速而肮脏的解决方案是使用JSP,但我宁愿不这样做。)

PS:我使用Tomcat的7.0.34版本。

编辑问题是我应该使用正确的src / java路径来存储我的.java类而不是普通文件夹(这是我看不到包的原因)。现在我修好了。无论如何,谢谢您的时间!

1 个答案:

答案 0 :(得分:1)

你有一个领先的斜杠

<servlet-class>/batchUtility.batchQueryServlet</servlet-class>

删除它,事情应该有效。

将您的Ajax url:更改为"batchQueryServlet""/web-app-name/batchQueryServlet"

修改

部署后,您的Web应用程序的文件夹结构应如下所示:(/表示目录)

tomcat-home/
 |- webapps/
   |- BatchWebApp/ //<-- Context-Root (Web-app's name)
     |- *.html, *.jsp etc.
     |- WEB-INF/
        |- web.xml
        |- lib/
          |- *.jar files
        |- classes/ //<-- ALL your servlets go here
          |- batchUtility/ //<-- with the required package/folder structure
            |- batchQueryServlet.class

如果您使用的是IDE(如Eclipse),它也会为您做同样的事情。