我在与servlet连接时遇到了一个小问题,以便可以将一些数据传递到mysql数据库。 我在这里读过很多主题,但是对其他成员的建议却不走运。

我有一个名为“ insertData.jsp”的jsp页面,该页面上有一个表单,该动作指向名为“ UpdateData”的servlet。 当我单击网页上的提交时,出现404错误,指出请求的资源不可用。 我还更新了我的Web xml文件,以尝试指向正确的方向。

因此,这是我的文件夹设置:UpdateData.java在源程序包文件夹的控制器程序包中。 该项目的名称是“ RukertContainerTracker”。

这是我的jsp页面:

<%@taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Insert Data</title>
    </head>
    <body>
        <h1>Insert Data Into Container Records</h1>

        <H1>The Rukert Terminals Container Tracker </H1>

        <form name="Insert Record" action="/UpdateData" method="Post">

            Container Number: <input type="text" name="containerNumber"> <br /> 
            Full Out: <input type="date" name="fullOut" /> <br/>
            Empty In: <input type="date" name="emptyIn" /> <br/>
            Empty Out <input type="date" name="emptyOut" /> <br/>
            Full In: <input type="date" name="fullIn" /> <br/>
            Comments: <input type="text" name="comments" /> <br/>           
            <input type="submit" value="Submit" />        

        </form>


               <div>
            <a href="javascript:history.back();">
            <span class="categoryLabelText">HOME</span>
        </a>

        </div>


    </body>
</html>

我的servlet:

    package controller;

import java.io.IOException; 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class UpdateData extends HttpServlet {    
    protected void processRequest(HttpServletRequest request, HttpServletResponse     response) 
            throws ServletException, IOException, SQLException { 

       //Get container data from the JSP page 

        String container=request.getParameter("containerNumber"); 
        String fullOutDate=request.getParameter("fullOut"); 
        String emptyInDate=request.getParameter("emptyIn");
        String emptyOutDate=request.getParameter("emptyOut");
        String fullInDate=request.getParameter("fullIn");
        String comments=request.getParameter("comments");

        //Print the above got values in console 

        System.out.println("The username is" +container); 
        System.out.println("\nand the password is" +fullOutDate);

        String connectionparams="jdbc:mysql://localhost:3306/rukerttracker";
        String db="rukerttracker";

        String uname="root";
        String psword="Colorado1982";

        Connection connection=null;

        ResultSet rs; 
        try { 

          // Loading the available driver for a Database communication 

            Class.forName("com.mysql.jdbc.Driver"); 

//Creating a connection to the required database 

            connection = DriverManager.getConnection 
             (connectionparams, uname, psword); 

       //Add the data into the database 

            String sql = "insert into containerinventory values (?,?,?,?,?,?)";
            try (PreparedStatement prep = connection.prepareStatement(sql)) {
                prep.setString(1, container);
                prep.setString(2, fullOutDate);
                prep.setString(3, emptyInDate);
                prep.setString(4, emptyOutDate);
                prep.setString(5, fullInDate);
                prep.setString(6, comments);

                prep.executeUpdate();
            } 

           }catch(Exception E){

               System.out.println("The error is=="+E.getMessage()); 


           }


finally{
            connection.close();
        }


    }

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

        String userPath = request.getServletPath();

        // if category page is requested
        if (userPath.equals("/insertData")) {
            // TODO: Implement category request


            // use RequestDispatcher to forward request internally
        String url = "/WEB-INF/view" + userPath + ".jsp";

        try {
            request.getRequestDispatcher(url).forward(request, response);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
    }
}

最后是我的web.xml页面:

 <servlet>
        <servlet-name>ControllerServlet</servlet-name>
        <servlet-class>controller.ControllerServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>ControllerServlet</servlet-name>
        <url-pattern>/chooseLanguage</url-pattern>
        <url-pattern>/viewTracker</url-pattern>
        <url-pattern>/editTracker</url-pattern>
        <url-pattern>/addToCart</url-pattern>
        <url-pattern>/viewCompany</url-pattern>
        <url-pattern>/category</url-pattern>
        <url-pattern>/updateCart</url-pattern>
        <url-pattern>/purchase</url-pattern>
        <url-pattern>/viewCart</url-pattern>
        <url-pattern>/checkout</url-pattern>

    </servlet-mapping>
    <servlet>
        <servlet-name>UpdateData</servlet-name>
        <servlet-class>controller.UpdateData</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UpdateData</servlet-name>
        <url-pattern>/insertData</url-pattern>
    </servlet-mapping>

我有两个servlet,我不知道这是否重要,但是我无法使应用程序在控制器servlet中工作,所以我创建了Update Data servlet。

对于为什么我不断收到此404错误的任何帮助,将不胜感激。 感谢您抽出宝贵的时间查看此内容。

===============>>#1 票数:1

我认为您使用的是POST方法,而您的servlet没有post方法。 请检查一下。 受保护的void doPost(HttpServletRequest请求,HttpServletResponse响应)引发ServletException,IOException {...}不可用。

  ask by jgutowski translate from so

未解决问题?本站智能推荐:

1回复

Servlet无法连接到MySQL或doPost()无法正常工作

我正在通过一个教程,试图用MySql构建一个非常简单的Web应用程序。 我的IDE是NetBeans 8.0。 使用我的index.jsp欢迎文件,用户应该能够在文本字段中输入查询,然后结果表将显示在下面。 或者,将显示说明该语句影响了多少行的文本。 当我单击“执行”按钮时,什么也没有发
2回复

JSP-将数据连接并插入到MySQL数据库

正确,这是我的情况,我在页面(index.jsp)上有一个表单,该表单将数据提交到JSP页面(output.jsp),然后该页面将处理数据并输出结果。 我想将其结果插入到MySQL数据库中。 我已经尝试过直接在JSP中使用MySQL做一些事情,但是我建议不要这样做,因为它会打开安全漏洞。
1回复

NetBeans Servlet MySQL

这个已经解决了 问题在于参数名称。 我正在尝试创建一个基本的登录servlet,它将检查员工的登录详细信息。 但是,我的servlet似乎没有与数据库进行交互,因此总是将我返回到“ tryagain.jsp”。 我究竟做错了什么? 我正在使用玻璃鱼和小扁豆。 我在库文件中
3回复

登录servlet,它在验证登录详细信息后返回用户名

我是一个初学者,我想创建一个登录servlet,它将验证用户的数据并返回其全名。 除了显示数据库中的用户全名之外,我已经可以进行所有工作。 我应该在登录servlet还是在jsp中执行此操作? 如果在JSP中执行此操作,该如何显示仅显示一个全名而不是整个表。 这是servle
1回复

在Servlet中显示JSP中的数据表

如果有很多数据行,如何在我的JSP页面上以行,行,名称,属性的形式显示它?
3回复

从servlet和jsp打印到txt文件

我似乎无法让我的Web应用程序写入我的WEB-INF / EmailList.txt我的代码是这样 Servlet: UserIO类别: 我已经按照预期的方式走了,但是它对任何事情都没有作用,我已经尽我所能尝试了所有方法,但我似乎无法弄清楚正在发生什么,我是在Windows
1回复

Servlet + JSP(Netbeans):请求的资源不可用

美好的一天。 我的JSP Web系统有问题,我正在寻求有关传输功能的帮助。 基本上,传输按钮就像一个停用按钮,单击后,它将传输状态(在我的SQLdb中称为dsTransmit)从“待处理”更改为“无效”。 我已经复制了我为删除所做的代码,并进行了一些改动,这很正常。 但是,当我在
1回复

将文件从JSP发送到Servlet

请看下面的代码 JSP Servlet的 如您所见,我无法将文件从JSP发送到Servlet。 我不需要发送文件,但至少需要文件的完整位置(它只发送文件名)。 如何将文件或文件的完整位置从JSP发送到servlet?
5回复

使用POST将参数从JSP发送到Servlet

我正在构建一个简单的Web应用程序,并尝试创建一个登录页面。 该页面由一个JSP组成,该JSP带有一个加载Servlet的形式。 我已经使用GET方法来处理表单: JSP看起来像这样: 并在Servlet中: 该代码有效,但是它在URL字符串中包含用户名和密码,因此
2回复

JSP Servlet请求的资源()不可用[重复]

这个问题已经在这里有了答案: Servlet返回“ HTTP状态404请求的资源(/ Servlet)不可用” 9个答案 当我尝试提交要由servlet处理的表单时,浏览器指示请求的资源不可用,并出现HTTP 404错误。 该URL看起来像: 我的XML文