<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage=""%> <%@ page import="com.dao.BookDAO"%> <%@ page import="com.dao.BookTypeDAO"%> <%@ page import="com.actionForm.BookForm"%> <%@ page import="com.actionForm.BookTypeForm"%> <%@ page import="com.dao.BookCaseDAO"%> <%@ page import="com.actionForm.BookCaseForm"%> <%@ page import="com.dao.PublishingDAO"%> <%@ page import="com.actionForm.PublishingForm"%> <%@ page import="java.util.*"%> <html> <% String str = null; BookTypeDAO bookTypeDAO = new BookTypeDAO(); Collection coll_type = (Collection) bookTypeDAO.query(str); if (coll_type == null || coll_type.isEmpty()) { out.println("<script>alert('请先录入图书类型信息!');history.back(-1);</script>"); } else { Iterator it_type = coll_type.iterator(); int typeID = 0; String typename = ""; BookCaseDAO bookcaseDAO = new BookCaseDAO(); String str1 = null; Collection coll_bookcase = (Collection) bookcaseDAO.query(str1); if (coll_bookcase == null || coll_bookcase.isEmpty()) { out.println("<script>alert('请先录入书架信息!');history.back(-1);</script>"); } else { Iterator it_bookcase = coll_bookcase.iterator(); int bookcaseID = 0; String bookcasename = ""; PublishingDAO pubDAO = new PublishingDAO(); String str2 = null; Collection coll_pub = (Collection) pubDAO.query(str2); if (coll_pub == null || coll_pub.isEmpty()) { out.println("<script>alert('请先录入出版社信息!');history.back(-1);</script>"); } else { Iterator it_pub = coll_pub.iterator(); String isbn = ""; String pubname = ""; %> <script language="jscript"> function check(form){ if(form.barcode.value==""){ alert("请输入条形码!");form.barcode.focus();return false; } if(form.bookName.value==""){ alert("请输入图书名称!");form.bookName.focus();return false; } if(form.price.value==""){ alert("请输入图书定价!");form.price.focus();return false; } } </script>
时间: 2023-06-25 12:05:36 浏览: 56
这段代码是一个 JSP 页面,用于添加图书信息。在页面中,首先通过 BookTypeDAO、BookCaseDAO 和 PublishingDAO 查询图书类型、书架和出版社信息。如果这些信息为空,会通过 JavaScript 弹窗提示用户先录入相关信息。如果这些信息都不为空,则会显示一个表单,让用户输入图书的条形码、名称、价格等信息,并通过 JavaScript 验证用户输入的合法性。在用户点击提交按钮后,会将表单数据传递给 BookDAO,通过 BookDAO 将图书信息插入到数据库中。
相关问题
讲解<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql." errorPage=""%> <%@ page import="com.dao.BookDAO"%> <%@ page import="com.actionForm.BookForm"%> <%@ page import="java.util."%> <html> <% Collection coll = (Collection) req
uest.getAttribute("allBooks"); %> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>图书列表</title> </head> <body> <h2>图书列表</h2> <table border="1" cellspacing="0" cellpadding="0"> <tr> <td>编号</td> <td>书名</td> <td>作者</td> <td>出版社</td> </tr> <% for (Iterator it = coll.iterator(); it.hasNext();) { BookForm book = (BookForm) it.next(); %> <tr> <td><%=book.getId()%></td> <td><%=book.getName()%></td> <td><%=book.getAuthor()%></td> <td><%=book.getPublisher()%></td> </tr> <% } %> </table> </body> </html>
这是一个 JSP 页面,用于显示图书列表。其中,通过 BookDAO 类获取所有图书的信息,存储在一个 Collection 对象中,并将其设置为 request 对象的属性,以便在 JSP 页面中使用。接着,通过迭代器遍历 Collection 对象,将每个图书的编号、书名、作者和出版社显示在表格中。
需要注意的是,为了避免中文乱码问题,使用了 UTF-8 编码方式。同时,引入了 BookForm 和 BookDAO 类,以及 java.util 包。
插入"152@qq.com"出错
如果插入 "152@qq.com" 出错,可能是因为在获取表单中输入框的值时,没有正确处理特殊字符 "@"。在JSP中,可以使用 EL 表达式的方式获取表单中输入框的值,例如:
```jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert Data</title>
</head>
<body>
<h1>Insert Data</h1>
<form action="insert.jsp" method="post">
<label for="phone">Phone:</label>
<input type="text" name="phone" id="phone">
<br/><br/>
<input type="submit" value="Insert">
</form>
<%
if(request.getMethod().equals("POST")){
String phone = request.getParameter("phone");
if(phone != null && !phone.equals("")) {
try {
// 导入JDBC驱动程序并建立数据库连接
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
// 编写SQL语句并创建PreparedStatement对象
String sql = "INSERT INTO your_table (phone) VALUES (?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
// 设置参数值
pstmt.setString(1, "${param.phone}");
// 执行SQL语句并提交事务
pstmt.executeUpdate();
conn.commit();
// 关闭连接
pstmt.close();
conn.close();
out.println("Data inserted successfully!");
} catch (Exception e) {
e.printStackTrace();
out.println("Error: " + e.getMessage());
}
} else {
out.println("Phone number cannot be empty!");
}
}
%>
</body>
</html>
```
请注意,这里使用 `${param.phone}` 获取输入框的值,这样可以避免特殊字符的问题。另外,为了避免SQL注入攻击,建议使用参数化查询。