Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将jsp连接到数据库_Jsp - Fatal编程技术网

将jsp连接到数据库

将jsp连接到数据库,jsp,Jsp,我设计了一个jsp页面,从中我将字段值传递到另一个jsp页面。。在此页面中,我希望将值存储在数据库中,并根据此页面中的成功或失败显示适当的消息。除了数据没有被插入到数据库中,并且没有显示错误消息之外,其他一切似乎都正常工作 students.jsp <form id="form" method="post" action="students_final.jsp"> Student name:<input type="text" value="" name="name"&g

我设计了一个jsp页面,从中我将字段值传递到另一个jsp页面。。在此页面中,我希望将值存储在数据库中,并根据此页面中的成功或失败显示适当的消息。除了数据没有被插入到数据库中,并且没有显示错误消息之外,其他一切似乎都正常工作


students.jsp

<form id="form" method="post" action="students_final.jsp">
  Student name:<input type="text" value="" name="name">
  Reg no:<input type="text" value="" name="regno">
  <input type="submit" value="Register" />
</form>

学生姓名:
注册号:

学生会期末考试.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page language="java"%>
<%@page import="java.lang.*" import="java.sql.*"%>

<% 
  try {
    Class.forName("com.mysql.jdbc.Driver");  
    String url="jdbc:mysql://localhost:3306/userdbase";
    Connection connection = DriverManager.getConnection(url, "root", "passwd");  

    String name=request.getParameter("name");
    String regno=request.getParameter("regno");

    "INSERT INTO `schooldatabase`.`test` (`name`) VALUES ('" + name + "');";
    Statement st= connection.createStatement();
    int count=st.executeUpdate(strquery);

    /*ResultSet rs= st.executeQuery(strquery);*/
  }
  catch(Exception e)
  {
    System.out.println("Could not connect");
  }
%>


我知道这是一个非常愚蠢的错误。请帮我找到它

尝试提交事务。自动提交可能是错误的

您应该使用PreparedStatement。这是一个等待发生的SQL注入攻击

你没有关闭任何资源,因此如果你让它工作,这个应用程序不会运行很长时间

String url = "jdbc:mysql://localhost:3306/schooldatabase";
如果我没有弄错的话,您在MySQL中运行了这个查询,据我所知,“schooldatabase”是数据库名称,“test”是其中的表。也

String query = "INSERT INTO test ('name') VALUES ("+name+")";
int count = st.executeUpdate(query);
这将起作用。

“插入
学校数据库
测试
name
)值(“+name+”);”


将其分配给变量

您的第一个错误是将scriptlet代码添加到JSP。学习JSTL。但我想我们可以在jsp页面中使用Scriptlet……可以,但不应该。这是1998年的技术。没有人再以这种方式编写JSP了。我知道我应该使用bean和servlet。。但我只是想知道我的错在哪里??我试着用上面的脚本。没有插入任何内容。但是我可以通过打开mysql命令行插入值..是的,我明白了。你有没有试着去做?