图书分类这一块
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 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星