菜品名字的查询问题
我现在能够添加菜品,我的菜品展示是用了循环将所有添加的菜品进行遍历展示。
但是我在做菜品名称查询时除了问题。我查询一个菜品名称,展示出来的还是所有的菜品,并不是一个,而是所有的。
请问怎么处理,我知道问题出在这里,可是不知道怎么解决。
是在查询到的菜品名称的servlet里面,清除掉session,重新添加菜品信息吗?
还是重新新建一个菜品展示页,在那里面不写循环展示,查询哪个展示哪个?但是这样好像治标不治本。麻烦老师出来指导一下。
SelectServlet.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | package homework2.servlet; import java.io.IOException; import java.util.List; 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 homework2.domain.Food; /** * 根据菜名查询的Servlet */ @WebServlet ( "/SelectServlet" ) public class SelectServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 接收数据: String foodname = request.getParameter( "foodName" ); // 从ServletContext域中获得保存菜品名称信息的集合: List<Food> list = (List<Food>) this .getServletContext().getAttribute( "list" ); for (Food food:list) { // 判断菜品名称是否正确 if (foodname.equals(food.getFoodName())) { // 查询成功: // 将菜品名称的信息保存session中 request.getSession().setAttribute( "id" , food.getId()); request.getSession().setAttribute( "foodName" , food.getFoodName()); request.getSession().setAttribute( "taste" , food.getTaste()); request.getSession().setAttribute( "foodImage" , food.getFoodImage()); request.getSession().setAttribute( "price" , food.getPrice()); request.getSession().setAttribute( "description" , food.getDescription()); request.getSession().setAttribute( "list" , list); request.getSession().setAttribute( "food" , food); response.sendRedirect( "/homework2/showFoodList.jsp" ); return ; } } // 查询失败: request.setAttribute( "msg" , "菜品名称错误" ); request.getRequestDispatcher( "/selectFoodByName.jsp" ).forward(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } |
ShowFoodList.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <%@page import="homework2.domain.Food,java.util.*"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> < html > < head > <%String basePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+"/";%> < base href="<%=basePath%>"> < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" > < title >菜品信息展示</ title > < style type = "text/css" > </ style > </ head > < body > <% List< Food > foodList = (List< Food >)session.getAttribute("foodList"); if(foodList!=null && foodList.size()>0){ for(Food food:foodList){ String path = ""; if(food.getFoodImage()!=null && !"".equals(food.getFoodImage())){ int index = food.getFoodImage().lastIndexOf("\\"); path = food.getFoodImage().substring(index); } %> < center > < h1 >菜品查询</ h1 > < table border = "1px" cellspacing = "0px" cellpadding = "0px" width = "800px" > < thead > < tr > < th >菜品ID</ th > < th >菜名</ th > < th >口味</ th > < th >菜品图片</ th > < th >价格</ th > < th >菜品描述</ th > </ tr > </ thead > < tbody > < tr > < td ><%= food.getId() %></ td > < td ><%= food.getFoodName() %></ td > < td ><%= food.getTaste() %></ td > < td >< img src="upload/<%= path %>"></ td > < td ><%= food.getPrice() %></ td > < td ><%= food.getDescription() %></ td > </ tr > <% } } %> </ tbody > </ table > </ center > </ body > </ html > |
0
收起
正在回答 回答被采纳积分+1
4回答
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧