首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSP表单数据到MySQL DataBase?

JSP表单数据到MySQL DataBase?
EN

Stack Overflow用户
提问于 2014-05-04 14:32:00
回答 2查看 2.5K关注 0票数 0

请了解如何使用将值插入到MySQL数据库中。以下是我的代码:

如何向数据库输入值?

Index.jsp:

代码语言:javascript
复制
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <form name=”registration” action="SaveUser" method="post">
First Name: <input type="text" name="user_name">
<br />
Password: <input type="password" name="pass_word" />
<input type="submit" value="Submit" />
</form>
    </body>
</html>

这是我的服务- SaveUser.java:

代码语言:javascript
复制
import java.io.IOException; 
import java.sql.Connection;
import java.sql.DriverManager; 
import java.sql.PreparedStatement; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class SaveUser extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("user_name");
        String password = request.getParameter("pass_word");

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

        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "root");

            String sql = "insert into usertable values (?,?)";
            PreparedStatement prep = con.prepareStatement(sql);

            prep.setString(1, username);
            prep.setString(2, password);
            prep.executeUpdate();
            prep.close();
        } catch (Exception E) {
            System.out.println("The error is an error");
        }
    }
}

我创造了我的桌子,我增加了图书馆。它仍然给了我一个错误:

HTTP状态404 -未找到 类型状态报告 messageNot发现 descriptionThe请求的资源不可用。 GlassFish服务器开放源码版4.0

我在和netbeans合作。这是一个服务器问题,我真的不明白错误,我会感激对这个问题的每一个响应。

EN

回答 2

Stack Overflow用户

发布于 2014-05-04 14:46:24

试试这个:

添加一个doPost方法来检索表单+发送的数据,您需要添加一个servlet UrlPattern,这样您就可以从浏览器访问servlet,并且可以在web.xml文件或注释中这样做,如下面的示例所示。

代码语言:javascript
复制
@WebServlet(description = "SaveUser", urlPatterns = {"/SaveUser"})
public class SaveUser extends HttpServlet {

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("Hello From deGet|SaveUser");
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String username = request.getParameter("user_name");
        String password = request.getParameter("pass_word");

        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/userdb", "root", "root");

            String sql = "insert into usertable values (?,?)";
            PreparedStatement prep = con.prepareStatement(sql);

            prep.setString(1, username);
            prep.setString(2, password);
            prep.executeUpdate();
            prep.close();

            System.out.println("Debug: data inserted!");
        } catch (Exception E) {
            System.out.println("The error is an error");
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2014-05-06 05:47:49

将Servlet更改为

代码语言:javascript
复制
public class ExampleServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    RequestDispatcher rd = request.getRequestDispatcher("NewFile.jsp");
    rd.forward(request, response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
     String username = request.getParameter("user_name");
        String password = request.getParameter("pass_word");

        try {
            Class.forName("com.mysql.jdbc.Driver");
            Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/newdb", "root", "root");

            String sql = "insert into employee(ename,password) values (?,?)";
            PreparedStatement prep = con.prepareStatement(sql);

            prep.setString(1, username);
            prep.setString(2, password);
            prep.executeUpdate();
            prep.close();

            System.out.println("Debug: data inserted!");
        } catch (Exception E) {
            System.out.println("The error is an error "  +E.getMessage()+ " "+E.getStackTrace());
        }
}

}

将此添加到您的web.xml

代码语言:javascript
复制
<servlet>
 <servlet-name>Submission</servlet-name>
 <servlet-class>com.example.test.ExampleServlet</servlet-class>
</servlet>
<servlet-mapping>
 <servlet-name>Submission</servlet-name>
 <url-pattern>/SaveUser</url-pattern>
</servlet-mapping>

运行Servlet,因为它应该决定应该加载哪个JSP页面。

此外,我建议您使用DAO进行数据库访问。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23457428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档