菜品添加功能实现了,修改删除和查询有问题
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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 | 1 .老师我接收数据的方法写在一个java类里,这样有什么问题吗? 2 .菜品修改功能点击修改之后,页面跳转到一个白页,是是因为共用这个接收数据的方法有问题吗?还是FoodDaolpml这个类里面的bd集合不是同一个,所以修改的时候里面没有所以出现白页?或者是其他什么原因? 3 .点击删除和根据菜品名称查询,页面重定向都不成功,跳转到一个白页 package com.imooc.food.utiles; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.imooc.food.Food; public class UploadFileData { /** * 文件的数据接收类 * @throws IOException */ public static Food UploadFile(HttpServletRequest request) throws IOException{ String url= null ; //定义一个Map集合用于保存接收到的数据 Map<String ,String>map = new HashMap<String ,String>(); //创建一个磁盘文件项工厂对象 DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); //创建一个核心解析类 ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); //解析request请求,返回的是List集合,集合中存放的是FileItem对象 List<FileItem> list; try { list = servletFileUpload.parseRequest(request); //遍历集合,获得每个FileItem,判断是表单项还是文件上传项 for (FileItem fileItem : list) { if (fileItem.isFormField()) { String name=fileItem.getFieldName(); String value =fileItem.getString( "UTF-8" ); System.out.println(name + " " +value); map.put(name,value); } else { //文件上传项 //文件上传功能 //获得上传文件的名称 String FileName =fileItem.getName(); //通过工具类获得唯一文件名 String uuidFileName = UploadUtils.getUUIDFileName(FileName); //获得文件上传数据 InputStream is = fileItem.getInputStream(); //获得文件上传的路径 String path =request.getServletContext().getRealPath( "/upload" ); //将输入流对接到输出流 url =path + "\\" + uuidFileName; OutputStream os = new FileOutputStream(url); int len = 0 ; byte [] b = new byte [ 1024 ]; while ((len = is.read(b))!= - 1 ){ os.write(b, 0 , len); } is.close(); os.close(); } } } catch (FileUploadException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(map); Food food= new Food(); food.setId(map.get( "id" )); food.setName(map.get( "foodName" )); food.setPrice(map.get( "price" )); food.setDescribe(map.get( "describe" )); food.setTaste(map.get( "taste" )); food.setFoodAdress(url); return food; } } package com.imooc.food.servlet; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; 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 org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import com.imooc.food.Food; import com.imooc.food.FoodDaolmpl; import com.imooc.food.utiles.UploadFileData; import com.imooc.food.utiles.UploadUtils; /** * 菜品添加的Servlet */ @WebServlet ( "/FoodAddServlet" ) public class FoodAddServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 数据的接收 Food food = UploadFileData.UploadFile(request); FoodDaolmpl.addFood(food); // 添加成功,跳转到查询页面 response.sendRedirect(request.getContextPath() + "/showFoodList.jsp" ); } /** * @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.food.servlet; import java.io.IOException; 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.food.Food; import com.imooc.food.FoodDaolmpl; import com.imooc.food.utiles.UploadFileData; /** * Servlet implementation class FoodUpdateServlet */ @WebServlet ( "/FoodUpdateServlet" ) public class FoodUpdateServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Food food=UploadFileData.UploadFile(request); FoodDaolmpl.updateFood(food); //修改成功,跳转到查询页面 response.sendRedirect(request.getContextPath()+ "/showFoodList.jsp" ); } /** * @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.food.servlet;
import java.io.IOException;
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.food.Food;
import com.imooc.food.FoodDaolmpl;
/**
* Servlet implementation class SelectServlet
*/
@WebServlet("/SelectServlet")
public class SelectServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name =request.getParameter("foodName");
Food food =FoodDaolmpl.getFoodByName(name);
request.setAttribute("food", food);
//查询成功,返回到查询界面
response.sendRedirect(request.getContextPath()+"/showFoodList.jsp");
}
/**
* @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.food.servlet;
import java.io.IOException;
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.food.Food;
import com.imooc.food.FoodDaolmpl;
/**
* Servlet implementation class FoodDeleteServlet
*/
@WebServlet("/FoodDeleteServlet")
public class FoodDeleteServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id =request.getParameter("id");
for (Food food : FoodDaolmpl.getAllFood()) {
if(food.getName().equals("id")){
FoodDaolmpl.deleteFoodById(id);
request.getRequestDispatcher("/showFoodList.jsp").forward(request, response);
}else{
request.getRequestDispatcher("/showFoodList.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);
}
}
正在回答 回答被采纳积分+1
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 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="com.imooc.food.*"%> <% String path = request.getContextPath(); //path是project的名字 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> < html > < head > < base href="<%=basePath%>"> < meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" > < title >菜品信息展示</ title > < style type = "text/css" > </ style > </ head > < body > < 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 > <% for(Food food:FoodDaolmpl.getAllFood()){ %> < tr > < td ><%=food.getId() %></ td > < td ><%=food.getName() %></ td > < td ><%=food.getTaste() %></ td > < td >< img src="<%=basePath%>upload/<%=food.getFoodAdress().substring(food.getFoodAdress().lastIndexOf("\\")+1) %>" /></ td > < td ><%=food.getPrice() %></ td > < td ><%=food.getDescribe() %></ td > </ tr > <% } %> </ tbody > </ table > </ center > </ body > </ html > |
1、你这么写是没有问题的。
2、同学重定向之后是指showFoodList.jsp页面为空白页吗?建议同学使用转发试试,如果问题没有解决,建议你将showFoodList.jsp页面的代码也粘贴上来,只有产看了你具体的逻辑才能找出原因,祝学习愉快~
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧