图书分类这一块
package com.imooc.servlet;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.imooc.dao.LibDaolmpl;
import com.imooc.service.LibServicelmpl;
/**
* Servlet implementation class CatgoryServlet
*/
@WebServlet("/CatgoryServlet")
public class CatgoryServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public CatgoryServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String id = request.getParameter("id");
String catgoryName = request.getParameter("catgoryName");
String description = request.getParameter("description");
boolean flag = false;
LibServicelmpl lsl = new LibServicelmpl();
lsl.getLibDaolmpl().addBookCatgory(Long.parseLong(id), catgoryName, description);
List<Map<String,Object>> catgory = lsl.getLibDaolmpl().getAllBookCatgory();
for(Map m : catgory) {
for(Object obj : m.keySet()) {
System.out.println(obj + ":" + m.get(obj));
if(m.get(obj).equals(Long.parseLong(id))) {
flag = true;
break;
}
}
}
System.out.println("flag:" + flag);
if(flag == true) {
request.setAttribute("msg1", "已存在该图书分类!");
request.getRequestDispatcher("/catgory.jsp").forward(request, response);
}else {
request.getRequestDispatcher("/server.jsp").forward(request, response);
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}package com.imooc.dao;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class LibDaolmpl {
private static final List<User> userDb = new ArrayList<User>(); //用户表
private static final List<Map<String,Object>> categorys = new ArrayList<Map<String,Object>>(); //图书分类
private static final List<Book> books = new ArrayList<Book>(); //图书表
public static List<User> getUserdb() {
return userDb;
}
public static List<Book> getBooks() {
return books;
}
// 用户注册
public void regist(User user) {
// 判断用户是否存在,存在则存入到集合中
if(isUserExist(user.getUsername()) == 1) {
userDb.add(user);
}
}
// 用户登录
public int login(String username,String password) {
return 0;
}
// 判断指定的用户名在存储用户信息的集合中是否存在
public int isUserExist(String username) {
// 遍历集合,若存在该用户,则返回-1,否则返回1
for(User u : userDb) {
if(u.getUsername().equals(username)) {
return -1;
}
}
return 1;
}
// 添加图书分类
public void addBookCatgory(Long id,String catgoryName,String description) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("id", id);
map.put("catgoryName", catgoryName);
map.put("description", description);
for(Map m : categorys) {
// 判断id是否存在
if(m.get("id").equals(id)) {
// 判断分类名称是否一样
if(m.get("catgoryName").equals(catgoryName)) {
return ;
}
return ;
}
}
categorys.add(map);
}
// 获取所有图书分类
public List<Map<String,Object>> getAllBookCatgory(){
return categorys;
}
// 添加图书
public void addBook(Book book) {
}
// 根据条件查询书籍信息
public List<Book> getBooksByCondition(String bookID,String bookName,String catgoryName){
return null;
}
}package com.imooc.service;
/**
* LibDaolmpl类的对象,用于对该类中的方法进行调用
* @author Administrator
*
*/
import com.imooc.dao.LibDaolmpl;
public class LibServicelmpl {
public LibDaolmpl getLibDaolmpl() {
// 创建LibDaolmpl对象
LibDaolmpl ldl = new LibDaolmpl();
return ldl;
}
}<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String basePath=request.getScheme()+"://"+request.getServerName()
+":"+request.getServerPort()+request.getContextPath()+"/";
%>
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>图书分类添加</title>
</head>
<%
String msg1 = "";
if(request.getAttribute("msg1") != null){
msg1 = (String)request.getAttribute("msg1");
}
%>
<body>
<center>
<h1>图书分类添加</h1>
<h3><font><%=msg1 %></font></h3>
<form action="<%=basePath%>/CatgoryServlet" method="post">
<table width="400px" cellspacing="0px" cellpadding="0px" border="1px">
<tr>
<td>分类ID</td>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td>名 字</td>
<td><input type="text" name="catgoryName"></td>
</tr>
<tr>
<td>描 述</td>
<td><input type="text" name="description"></td>
</tr>
<tr>
<td colspan="2" style="text-align:center">
<input type="submit" value="添加">
<input type="reset" value="重置">
</td>
</tr>
</table>
</form>
</center>
</body>
</html><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% String basePath=request.getScheme()+"://"+request.getServerName() +":"+request.getServerPort()+request.getContextPath()+"/"; %> <!DOCTYPE html> <html> <head> <base href="<%=basePath%>"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>图书后台管理系统</title> </head> <frameset rows="20%,*"> <frame src="./top.jsp"></frame> <frameset cols="10%,*"> <frame src="./left.jsp"></frame> <frame name="main"></frame> </frameset> </frameset> </html>
老师,我在CatgoryServlet中想实现如果id是否存在,我第一次输入添加之后直接显示id存在了

然后还有一个点是:如果不存在页面就跳成这个样子

老师看看代码有什么逻辑错误吗
正在回答
同学你好,根据同学的回复,server.jsp页面是如上所展示的内容,那这个server.jsp就是一个多窗口页面,所以出现了嵌套。
同学可以换一个页面-->分类展示categoryList.jsp页面或者bookList.jsp图书展示页面,使用重定向再来试一下,是否还会出现嵌套的情况。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
同学你好,1、在CatgoryServlet中 if(m.get(obj).equals(Long.parseLong(id))) {}的判断有误,m.get(obj)是String类型的内容,id也是String类型的内容,直接使用equals方法的直接比较就可以,不需要将id转变为long类型数据。
2、不需要添加该图书分类是否存在的判断,因为在添加时直接判断类id、name等内容是否出现同名的内容,例如:

3、如果需要展示添加是否成功,可以修改这个addBookCatgory方法的返回值,例如;

对应在Servlet中将这个返回值展示到页面中,比如:

4、如果不存在页面,页面跳转出现如上问题,只看贴出代码并没有问题,同学在过滤器中的配置是怎样的,建议将过滤器配置中的内容贴出,同学是否在<url-pattern>中的配置出现了失误。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程


恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星