我如何将HTML连接到java以在数据库中添加值

时间:2013-05-25 07:49:08

标签: java database jsp

我想输入从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>

**

2 个答案:

答案 0 :(得分:4)

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

<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进行开发。那么你不必担心集成它们,eclipse会在你创建一个新的Java EE项目后为你准备xml文件。如果没有那么你必须手动完成,我曾经尝试过,但我不能成功。 这里有一个链接:我希望能在你身边,{希望:http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/

这是件坏事,但我会为你编辑代码。顺便说一句,我删除了javascript。吻(保持简单傻).. :) 你的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");

       } 
}

不要问我关于牙箍的问题..自己解决。

答案 1 :(得分: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代码放在&lt; %%&gt;中身体标签内的块。 记住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. 类名以Caps开头。所以类名必须是Test1而不是test1。
  2. 功能,变量必须与 Camel case 一样,如myTest。