编写一个简单的网上书店Web程序,要求实现以下功能: 1.用户注册和登录。 2.显示所有图书信息,可以通过每一本图书信息后的“添加到购物车”链接将图书添加到购物车。 3.能够根据图书名称对图书进行模糊查询,并将查询到的图书信息显示在页面上。 4.查看购物车,并能对购物车中的图书进行删除、清空和结算。 5.当用户访问系统中的页面时,能够通过过滤器对用户的身份信息进行检查,如果检查不通过则直接跳转到登录页面。 要求:系统所有的工作都要求由Servlet完成;MySQL数据库的用户表、图书表等自行设计;连接数据库的相关参数需要保存在web.xml文件内作为参数。请给出具体实现的代码
时间: 2024-03-30 10:35:30 浏览: 170
网上书店。可以实现网上图书的各种业务。采用SQL和C#进行开发....rar
由于这是一个比较大的项目,所以我在这里只提供一个简单的实现思路和关键代码片段,供参考:
1. 用户注册和登录
需要创建一个用户表,可以使用MySQL或其他数据库进行存储。在注册时,可以通过检查用户名和邮箱是否已经存在来确保用户信息的唯一性。在登录时,需要验证用户名和密码是否匹配,如果匹配则将用户信息保存在Session中。
2. 显示所有图书信息
同样需要创建一个图书表,可以使用MySQL或其他数据库进行存储。在网页上显示所有图书信息时,可以通过查询图书表并将结果显示在页面上。在每一本图书信息后添加“添加到购物车”的链接,点击链接后将该图书的ID保存在Session中的购物车列表中。
3. 图书查询
在网页上提供一个查询框,用户可以输入图书名称进行模糊查询。在查询结果页面上,将查询到的图书信息显示出来,并添加“添加到购物车”的链接进行购物车操作。
4. 购物车操作
在网页上提供一个“查看购物车”的链接,点击链接后将跳转到购物车页面,显示购物车中的所有图书信息。在购物车页面中,提供“删除”、“清空”和“结算”等操作,将购物车中的图书从Session中的购物车列表中删除,并计算购物车中所有图书的总价。
5. 过滤器检查
需要在web.xml中配置一个过滤器,对所有请求进行拦截。在过滤器中检查用户的身份信息,如果用户未登录则重定向到登录页面。
以下是关键代码片段:
用户注册
```java
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
// 检查用户名和邮箱是否已经存在
if (userDao.getUserByUsername(username) != null) {
// 返回用户名已经存在的错误信息
} else if (userDao.getUserByEmail(email) != null) {
// 返回邮箱已经存在的错误信息
} else {
// 将用户信息插入到数据库中
User user = new User(username, password, email);
userDao.addUser(user);
// 保存用户信息到Session中
request.getSession().setAttribute("user", user);
// 跳转到主页
response.sendRedirect("index.jsp");
}
```
用户登录
```java
String username = request.getParameter("username");
String password = request.getParameter("password");
User user = userDao.getUserByUsername(username);
if (user != null && user.getPassword().equals(password)) {
// 将用户信息保存到Session中
request.getSession().setAttribute("user", user);
// 跳转到主页
response.sendRedirect("index.jsp");
} else {
// 返回登录失败的错误信息
}
```
图书查询
```java
String keyword = request.getParameter("keyword");
List<Book> books = bookDao.searchBooks(keyword);
request.setAttribute("books", books);
request.getRequestDispatcher("search.jsp").forward(request, response);
```
购物车操作
```java
// 添加到购物车
List<Book> cart = (List<Book>) request.getSession().getAttribute("cart");
if (cart == null) {
cart = new ArrayList<Book>();
request.getSession().setAttribute("cart", cart);
}
int bookId = Integer.parseInt(request.getParameter("bookId"));
Book book = bookDao.getBookById(bookId);
cart.add(book);
// 删除
int index = Integer.parseInt(request.getParameter("index"));
cart.remove(index);
// 清空
cart.clear();
// 结算
float total = 0;
for (Book book : cart) {
total += book.getPrice();
}
request.setAttribute("total", total);
request.getRequestDispatcher("checkout.jsp").forward(request, response);
```
过滤器检查
```java
User user = (User) request.getSession().getAttribute("user");
if (user == null) {
response.sendRedirect("login.jsp");
} else {
chain.doFilter(request, response);
}
```
阅读全文