JSP(Java Server Pages)是一种基于Java技术的服务器端编程技术,用于创建动态网页。下面是一个简单的JSP网上书店系统的代码示例,包括几个关键部分:书籍列表展示、书籍搜索和购物车功能。
/webapps/bookstore/
/WEB-INF/
web.xml
/css/
style.css
/js/
script.js
index.jsp
books.jsp
search.jsp
cart.jsp
配置Servlet和JSP映射。
<web-app>
<servlet>
<servlet-name>BookServlet</servlet-name>
<servlet-class>com.example.BookServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BookServlet</servlet-name>
<url-pattern>/books</url-pattern>
</servlet-mapping>
</web-app>
首页,展示书店欢迎信息和搜索框。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Bookstore</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Welcome to Our Bookstore</h1>
<form action="search.jsp" method="get">
<input type="text" name="query" placeholder="Search for books...">
<button type="submit">Search</button>
</form>
<a href="books.jsp">View All Books</a>
</body>
</html>
展示所有书籍列表。
<%@ page import="java.util.List" %>
<%@ page import="com.example.Book" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Books</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Books List</h1>
<ul>
<%
List<Book> books = (List<Book>) request.getAttribute("books");
if (books != null) {
for (Book book : books) { %>
<li><%= book.getTitle() %> - <%= book.getAuthor() %> - $<%= book.getPrice() %></li>
<% }
} %>
</ul>
</body>
</html>
处理书籍搜索请求。
<%@ page import="java.util.List" %>
<%@ page import="com.example.Book" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Search Results</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Search Results</h1>
<ul>
<%
String query = request.getParameter("query");
List<Book> books = BookServlet.searchBooks(query);
if (books != null) {
for (Book book : books) { %>
<li><%= book.getTitle() %> - <%= book.getAuthor() %> - $<%= book.getPrice() %></li>
<% }
} else { %>
<li>No books found.</li>
<% } %>
</ul>
</body>
</html>
展示购物车内容。
<%@ page import="java.util.List" %>
<%@ page import="com.example.Book" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Cart</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<h1>Your Cart</h1>
<ul>
<%
List<Book> cartItems = (List<Book>) session.getAttribute("cart");
if (cartItems != null) {
for (Book book : cartItems) { %>
<li><%= book.getTitle() %> - <%= book.getAuthor() %> - $<%= book.getPrice() %></li>
<% }
} else { %>
<li>Your cart is empty.</li>
<% } %>
</ul>
</body>
</html>
处理书籍相关的业务逻辑。
package com.example;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class BookServlet extends HttpServlet {
private List<Book> books = new ArrayList<>();
@Override
public void init() throws ServletException {
// Initialize some books for demonstration purposes
books.add(new Book("Java Programming", "John Doe", 29.99));
books.add(new Book("Python Programming", "Jane Smith", 24.99));
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("books", books);
request.getRequestDispatcher("/books.jsp").forward(request, response);
}
public static List<Book> searchBooks(String query) {
// Implement a simple search logic
List<Book> results = new ArrayList<>();
for (Book book : books) {
if (book.getTitle().toLowerCase().contains(query.toLowerCase()) ||
book.getAuthor().toLowerCase().contains(query.toLowerCase())) {
results.add(book);
}
}
return results;
}
}
书籍实体类。
package com.example;
public class Book {
private String title;
private String author;
private double price;
public Book(String title, String author, double price) {
this.title = title;
this.author = author;
this.price = price;
}
public String getTitle() {
return title;
}
public String getAuthor() {
return author;
}
public double getPrice() {
return price;
}
}
通过以上代码示例和相关说明,您可以构建一个基本的JSP网上书店系统,并了解其优势、应用场景及常见问题解决方法。
领取专属 10元无门槛券
手把手带您无忧上云