0

嘿伙计们,我正在开发一个 Apache Tomcat v7.0 servlet,用户在其中输入一些值,被发送到一个页面进行预览,然后点击提交。问题是,一旦他们点击提交,我会得到一个 404 说文件不存在。

项目设置——

WebContent 文件夹包含welcome.js 文件,该文件发送到roster.js 文件以进行预览-在您点击提交的roster.js 文件中,它会将您发送到此链接-src/bandServ/BandListServ.java此链接与WebContent 文件夹一起包含在Java Resources 文件夹中. Java Resources 文件夹包含我的包,这就是我希望从 roster.js 文件上的表单发送数据的地方。

roster.js 文件的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
   <%@ include file="/includes/header.html" 

   %>

</head>
<body>
    <h1>Battle Of Bands</h1>

    <p>Here is our band roster:</p>


    <table cellspacing="5" cellpadding="5" border="1">
        <tr>
            <td align="right">Band1:</td>
            <td><%= request.getParameter("Band1name")  %></td>
        </tr>
        <tr>
            <td align="right">Band2:</td>
            <td><%= request.getParameter("Band2name") %></td>
        </tr>
        <tr>
            <td align="right">Band3:</td>
            <td><%= request.getParameter("Band3name") %></td>
        </tr>
        <tr>
            <td align="right">Band4:</td>
            <td><%= request.getParameter("Band4name") %></td>
        </tr>
        <tr>


    </table>

    <p>Ready to Rock</p>

    <form action="src/bandServ/BandListServ.java" method="post">
        <input type="submit" value="submit">
    </form>

</body>
</html>
<%@ include file="/includes/footer.jsp" %>
4

3 回答 3

2

不能直接从表单调用 Java 类。应该创建一个类作为扩展HttpServlet类的 Servlet。然后必须修改部署描述符(/Project/WEB-INF/web.xml) 以包含 servlet 类详细信息和映射到它的 url。

<servlet>
  <servlet-name>BandListServ</servlet-name>
  <servlet-class>bandServ.BandListServ</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>BandListServ</servlet-name>
  <url-pattern>/list-bands</url-pattern>
</servlet-mapping>

修改 JSP 中的 from 以调用 web.xml 中定义的 URL 模式。

<form action="/list-bands" method="post">
    <input type="submit" value="submit">
</form>
于 2012-12-14T10:10:44.560 回答
1

您应该提供将 URL 请求转换为方法调用的 servlet 映射。 http://docs.oracle.com/cd/E11035_01/wls100/webapp/configureservlet.html

一种更简单的方法是使用 Java Server Pages,它会自动为您翻译代码并进行 servlet 映射。

[编辑]

添加指向 servlet 教程的链接:

http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html

于 2012-12-14T09:32:20.957 回答
1

这条线

<form action="src/bandServ/BandListServ.java" method="post">

我相信是磨损的。

action= " " 应该包含一个 uri,它映射到 web.xml 中的逻辑 servlet 名称,该名称映射到 servlet 的完整限定类名称。相反,您不能在操作中指定您的 servlet 名称。

你的 web.xml 应该包含这样的东西

<servlet>
  <servlet-name>BandServlet</servlet-name>
  <servlet-class>com.band.BandServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>BandServlet</servlet-name>
  <url-pattern>/getBands</url-pattern>
</servlet-mapping>

并在表单标签中执行此操作

<form action="getBands" method="post">
于 2012-12-14T10:10:47.827 回答