JSP(JavaServer Pages)是一种用于创建动态Web内容的Java技术。搜索功能是Web应用中常见的功能之一,允许用户通过输入关键词来查找特定的信息。下面是一个简单的JSP搜索功能代码示例,包括前端页面和后端处理逻辑。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Search Page</title>
</head>
<body>
<h1>Search</h1>
<form action="searchResult.jsp" method="get">
<input type="text" name="query" placeholder="Enter search term...">
<input type="submit" value="Search">
</form>
</body>
</html><%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.sql.*" %>
<html>
<head>
<title>Search Results</title>
</head>
<body>
<h1>Search Results</h1>
<%
String query = request.getParameter("query");
if (query != null && !query.isEmpty()) {
// Database connection parameters
String url = "jdbc:mysql://localhost:3306/mydatabase";
String username = "root";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, username, password)) {
String sql = "SELECT * FROM articles WHERE title LIKE ? OR content LIKE ?";
try (PreparedStatement pstmt = conn.prepareStatement(sql)) {
pstmt.setString(1, "%" + query + "%");
pstmt.setString(2, "%" + query + "%");
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
out.println("<p><strong>" + rs.getString("title") + "</strong><br>" + rs.getString("content") + "</p>");
}
}
}
} catch (SQLException e) {
out.println("<p>Error: " + e.getMessage() + "</p>");
}
} else {
out.println("<p>Please enter a search term.</p>");
}
%>
</body>
</html>PreparedStatement可以有效防止SQL注入攻击。PreparedStatement而不是Statement来防止SQL注入。通过这种方式,可以实现一个基本的JSP搜索功能。如果需要更复杂的功能,可以考虑使用全文搜索引擎或第三方库来增强搜索能力。