0

我想在从 jsp 文件输入的数据库中输入数据,但不知道如何连接它们。有人可以建议我连接这两个文件并添加以 jsp 形式输入的数据吗?

这是我的jsp和java文件...

test1.java

package P1;  

import java.sql.*;  


class test1 {  
        public static void main(String[] args) throws SQLException, ClassNotFoundException  {  


            Connection con = null;  

            try {  
                Class.forName("oracle.jdbc.odbc.JdbcOdbcDriver");  
            }  
            catch(ClassNotFoundException ex) {  
                System.out.println("Error: unable to load driver class!");  
                System.exit(1);  
            }  

            con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.106.87:1521:ORA11G","fuel_db","foel");  
            Statement statement = con.createStatement();  

           String command = "INSERT INTO student (name, rollno, class, mobileno) VALUES (?, ?, ?, ?);";  
           statement.executeUpdate(command);  

           con.close();  

       }  

} 

test1.html

**

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>FORM</title>

            <script type="text/javascript">


        <%
        String name = request.getParameter("name");
        String roll = document.getElementById("rollno");
        String clas = document.getElementById("class");
        String mobile = document.getElementById("mobileno");

        test1 myTest = new test1();
        myTest.submitData();
        %>



            function getvalues()
            {

                    var name = document.getElementById("name");
                    var roll = document.getElementById("rollno");
                    var clas = document.getElementById("class");
                    var mobile = document.getElementById("mobileno");
            }

            function num(e) 
            {
                    var k;
                    document.all ? k = e.keyCode : k = e.which;
                    return (!((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8));
            }

            </script>

    </head>
    <body>
        <form action="test1.java" method="post" >
            <table>
                <tr>
                    <td>First Name: </td>
                    <td><input type="text" name="name" maxlength="10"></td>
                </tr>
                <tr>
                    <td>roll:</td>
                    <td><input type="text" name="rollno" maxlength="5" onkeypress="return num(event)"></td>
                </tr>
                <tr>
                    <td>class:</td>
                    <td><input type="text" name="class" maxlength="10"></td>
                </tr>
                <tr>
                    <td>Mobile:</td>
                    <td><input type="text" name="mobileno" maxlength="10" onkeypress="return num(event)"></td>
                </tr>       
                <tr>
                    <td></td>
                    <td><input type="submit" value="Submit" onclick="getvalues()"></td>
                </tr>
            </table>

        </form>
    </body>
</html>

**

4

2 回答 2

4

我不会去你的代码。但是这里的例子就足够了。在纯粹的世界中向服务器传递/提交数据的标准方式Servlets/JSP是使用HTML表单,即与使用其他服务器端语言(例如php)时相同的方式。而且不管是纯HTML页面还是JSP页面。将数据从表单提交到服务器的推荐/最常用方法是POSTGET。它使用 POST 方法提交数据并分别使用doPost()servlet 中的方法处理提交的数据的标准方法。例如:

<form name="something" method="post" action="<servlet-name>"> //if u want to change the action to something else then u need to modify your xml file.
<input type="text" name="username"/>
<input type="submit" name="submitit" value="submited"/>
</form>

现在在 doPost(...) 下的 servlet 中写入

if(request.getParameter("submitit").equals("submitted")){
String username=request.getParameter("username");
//now u can run a query and insert ito to database;
}

最后,您可以将其重定向到另一个页面

`response.sendRedirect();`

或任何其他方式我可以假设您正在使用 eclipse Java EE ide 进行开发。那么你不必担心集成它们,一旦你创建了一个新的 Java EE 项目,eclipse 会为你准备 xml 文件。如果不是,那么你必须手动完成,我曾经尝试过,但我无法成功。这是一个链接:我希望这会让你感兴趣:http: //www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

这是一件坏事,但我会为你编辑代码。顺便说一句,我正在删除 javascript。KISS(保持简单傻).. :) 你的 jsp 页面将是:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
        <title>FORM</title>

    </head>
    <body>
        <form action="test1" method="post" >
            <table>
                <tr>
                    <td>First Name: </td>
                    <td><input type="text" name="name" maxlength="10"></td>
                </tr>
                <tr>
                    <td>roll:</td>
                    <td><input type="text" name="rollno" maxlength="5"></td>
                </tr>
                <tr>
                    <td>class:</td>
                    <td><input type="text" name="class" maxlength="10"></td>
                </tr>
                <tr>
                    <td>Mobile:</td>
                    <td><input type="text" name="mobileno" maxlength="10"></td>
                </tr>       
                <tr>
                    <td></td>
                    <td><input type="submit" value="Submit"></td>
                </tr>
            </table>

        </form>
    </body>
</html>

and the servlet will be:

import java.sql.*;  


class test1 {  
        public static void main(String[] args) throws SQLException, ClassNotFoundException  {  


            Connection con = null;
    PreparedStatement pstmt = null;
            try {  
                Class.forName("oracle.jdbc.odbc.JdbcOdbcDriver");  
            }  
            catch(ClassNotFoundException ex) {  
                System.out.println("Error: unable to load driver class!");  
                System.exit(1);  
            }  

            con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.106.87:1521:ORA11G","fuel_db","foel");  

String name = request.getParameter("name");
        String roll = document.getElementById("rollno");// idk why roll no is string
        String clas_s = document.getElementById("class");
        String mobile = document.getElementById("mobileno");  
try {
           String query= "INSERT INTO student (name, rollno, class, mobileno) VALUES (?, ?, ?, ?);";  
pstmt = con.prepareStatement(query);
pstmt.setString(1,name);
pstmt.setString(2,roll);
pstmt.setString(3,clas_s);
pstmt.setString(4,mobile);
           pstmt.executeUpdate();  

           con.close();  
    }
catch(Exception e) {
e.printStackTrace();}

response.sendRedirect("confirm.jsp");

       } 
}

不要问我关于牙套的问题.. 自己修理。

于 2013-05-25T07:54:56.613 回答
0

首先在您的 Java 类中创建一些方法,例如 submitData(data)。

public class test1 {  

        public void submitData(String name,String rollno,String classData,String mobileno) throws SQLException, ClassNotFoundException  {  


            Connection con = null;  

            try {  
                Class.forName("oracle.jdbc.odbc.JdbcOdbcDriver");  
            }  
            catch(ClassNotFoundException ex) {  
                System.out.println("Error: unable to load driver class!");  
                System.exit(1);  
            }  

            con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.106.87:1521:ORA11G","fuel_db","foel");  
            Statement statement = con.createStatement();  

           String command = "INSERT INTO student (name, rollno, class, mobileno) VALUES (" + name + "," + rollno + "," + classData + "," + mobileno + ");";  
           statement.executeUpdate(command);  

           con.close();  
       }  
} 

在您的 HTMl 页面 index.html 或 index.jsp 中,您需要放置一个表单,然后将其发布到具有我在下面提到的逻辑的 JSP 页面。

<FORM NAME="form1" ACTION="ProcessData.jsp" METHOD="POST">

在您的 JSP 页面中,您可能会在使用 POST 方法提交表单时获取数据。使用 request.getParameter("name") 获取所有这些变量

然后在您的 JSP 中将该 java 代码放在 body 标记内的 <% %> 块中。记住 JSP 是 HTML 中的 Java! 在您的 ProcessData.jsp

<%
String name = request.getParameter("name");
//add null checks and all
//Similarly get all datamobileno etc
//then call your submitData() method
test1 myTest = new test1();
myTest.submitData(....)
%>

还要注意命名约定。

在java中

  1. 类名以大写字母开头。所以类名必须是 Test1 而不是 test1。
  2. 函数、变量必须像 myTest 一样采用Camel格式。
于 2013-05-25T08:11:16.257 回答