<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="com.toolbean.Mytools" %> <!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=UTF-8"> <title>Insert title here</title> </head> <body> <%@ include file="conn.jsp" %> <% String cno = Mytools.toChinese(request.getParameter("cno")); String cname = Mytools.toChinese(request.getParameter("cname")); String cprice = Mytools.toChinese(request.getParameter("cprice")); String cdate = Mytools.toChinese(request.getParameter("cdate")); String cmany = Mytools.toChinese(request.getParameter("cmany")); String sql = "insert into student values('"+cno+"','"+cname+"','"+cprice+"','"+cdate+"','"+cmany+"')"; int rtn = stmt.executeUpdate(sql); %> <% stmt.close(); conn.close(); response.sendRedirect("index.jsp"); %> </body> </html>
时间: 2023-07-19 22:21:40 浏览: 156
这段代码中可能存在多个错误,具体需要根据错误提示和运行环境进行调试。以下是我发现的可能存在的问题和解决方案:
1. 在JSP页面中,应该将Java代码放在<% %>标签中,但是你的代码中包含了多个<% %>标签,这可能导致语法错误。建议将所有的Java代码放在一个<% %>标签中。
2. 在Java代码中,使用了未定义的变量stmt和conn,这可能导致编译错误。建议在代码中定义这些变量,并初始化为正确的值。例如,可以使用以下代码创建连接和语句对象:
```
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
stmt = conn.createStatement();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
```
3. 在Java代码中,使用了未定义的函数Mytools.toChinese(),这可能导致编译错误。建议检查Mytools类中是否包含该函数,并确认是否正确导入了该类。
4. 在Java代码中,使用了字符串拼接的方式构造SQL语句,这可能导致SQL注入攻击。建议使用PreparedStatement对象来构造SQL语句,例如:
```
String sql = "insert into student values(?, ?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, cno);
pstmt.setString(2, cname);
pstmt.setString(3, cprice);
pstmt.setString(4, cdate);
pstmt.setString(5, cmany);
int rtn = pstmt.executeUpdate();
```
以上是我发现的可能存在的问题和解决方案,希望能对你有所帮助。
阅读全文