JSP(JavaServer Pages)是一种用于创建动态Web内容的技术,它允许开发者将Java代码嵌入到HTML页面中,从而实现服务器端的动态内容生成。下面是一个简单的JSP电影评论系统的源码示例,包括基本的评论展示和提交功能。
CREATE TABLE comments (
id INT AUTO_INCREMENT PRIMARY KEY,
movie_name VARCHAR(255),
user_name VARCHAR(255),
comment TEXT,
comment_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);<%@ page import="java.sql.*" %>
<html>
<head>
<title>电影评论</title>
</head>
<body>
<h1>电影评论</h1>
<form action="submit_comment.jsp" method="post">
电影名称:<input type="text" name="movie_name"><br>
用户名:<input type="text" name="user_name"><br>
评论:<textarea name="comment"></textarea><br>
<input type="submit" value="提交评论">
</form>
<h2>所有评论</h2>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM comments ORDER BY comment_date DESC");
while (rs.next()) {
%>
<p><strong><%= rs.getString("user_name") %></strong> 在 <%= rs.getString("comment_date") %> 评论了 <%= rs.getString("movie_name") %>:</p>
<p><%= rs.getString("comment") %></p>
<%
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
}
%>
</body>
</html><%@ page import="java.sql.*" %>
<%
String movieName = request.getParameter("movie_name");
String userName = request.getParameter("user_name");
String comment = request.getParameter("comment");
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password");
String sql = "INSERT INTO comments (movie_name, user_name, comment) VALUES (?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, movieName);
pstmt.setString(2, userName);
pstmt.setString(3, comment);
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (pstmt != null) pstmt.close();
if (conn != null) conn.close();
}
response.sendRedirect("comment.jsp");
%>PreparedStatement代替Statement来防止SQL注入。通过上述代码和解决方案,你可以构建一个基本的JSP电影评论系统,并处理一些常见问题。希望这些信息对你有所帮助!