是的,这是我的情况,我在页面上有一个表单(index.jsp),它将数据提交到JSP页面(output.jsp),然后JSP页面将对数据执行操作并输出结果。我想将其结果插入到MySQL数据库中。
我已经尝试在JSP中直接使用MySQL做了一些事情但是我已经被建议不要这样做,因为它会打开安全漏洞,我相信。
所以我创建了一个SubmitServlet.java(默认情况下,Netbeans将其放入源包/默认包中,与Web页面中JSP文件的位置相对)。我知道我必须在这里进行大量的连接,尽管我不完全确定如何将数据从JSP提交到数据库到servlet。我需要做什么?
我已经在RoseIndia上阅读了几个教程,但是他们只是让我更加困惑于实际需要什么,所以任何帮助都会大大增加!
PS:还值得指出我对Java Web应用程序来说是全新的,所以你对待我就像一个完全白痴一样,越好!答案 0 :(得分:2)
Rose India不是一个学习的好地方。
不,您需要一个或两个中间servlet。
将问题分解为块:模式,CRUD操作,中间层模型,服务,将HTTP请求编组到对象和后端,HTML和CSS以及JavaScript。不要试图一次完成整个事情。从单个垂直开始并使其工作,然后移动到下一个。
分解是计算机科学和解决问题的标志。
答案 1 :(得分:-1)
从output.jsp调用所需的方法,该方法将数据插入数据库
<%
<jsp:useBean id="obj" class="yourPackage.className" />
String Success="";
Success=sobj.myRequiredMethod("this is my result");
%>
yourPackage.className类中的你应该有myRequiredMethod()
package yourPackage;
import java.sql.*;
import java.util.*;
public class className
{
String mySqlPassword="root";
String mySqlUsername="root";
String mySqlDatabase="jdbc:mysql://localhost:3306/yourDatabse";
ResultSet res;
public String myRequiredMethod(String result)
{
String success="";
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(mySqlDatabase,mySqlUsername,mySqlPassword);
String q="insert into myTable (resultColumn) values('" + result + "')";
System.out.println(q);
PreparedStatement stmt = con.prepareStatement(q);
int pos = stmt.executeUpdate();
System.out.println(pos);
if(pos==1)
{
success="Successfull";
}
}
catch(Exception e)
{
}
return success;
}
}