0
我有1個Servlet和一個doPost方法,它將上傳一個圖像。但是我需要先創建一個Pattern對象,這樣我才能得到這個模式的ID,並使用它來使它成爲圖像的名稱。 (不有趣的問題,但現在你知道我的動機)Java - Servlet轉發Get方法Post方法
這是我的servlet叫CreatePatternServlet
它使用的doGet:
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, java.io.IOException {
/*--------------------creating the pattern-------------------------*/
//TODO make pattern
String name = req.getParameter("name");
String scope = req.getParameter("scope");
String purpose = req.getParameter("purpose");
String problem = req.getParameter("problem");
String solution = req.getParameter("solution");
System.out.println("step 1: ["+name+","+ scope+","+purpose+","+problem+","+solution+"]");
//This method returns the id of the pattern, which will be used for the name of the image
int patternId = Controller.createPattern(name, scope, purpose, problem, solution);
/*------------------end of creating pattern-----------------------*/
,這將是UploadImageServlet
的doPost方法:
doPost(HttpServletRequest req, HttpServletRespose resp) throws ServletException, IOException{
isMultipart = ServletFileUpload.isMultipartContent(req);
java.io.PrintWriter out = resp.getWriter();
if(!isMultipart){
return;
}
DiskFileItemFactory factory = new DiskFileItemFactory();
// maximum size that will be stored in memory
factory.setSizeThreshold(maxMemSize);
// Location to save data that is larger than maxMemSize.
factory.setRepository(new File(repository));
// Create a new file upload handler
ServletFileUpload upload = new ServletFileUpload(factory);
// maximum file size to be uploaded.
upload.setSizeMax(maxFileSize);
try{
// Parse the request to get file items.
List fileItems = upload.parseRequest(req);
//calling the function which loads the image in the default directory
Controller.uploadImage(fileItems, patternId);
}catch(Exception e){
System.out.println("oeps");
}
/*--------------------ending creation of image, image is created--------------------*/
}
獨立他們工作得很好,但我想結合他們。 uploadImage不能使用doGet運行,所以我需要一些方法將Get請求轉發到Post請求。這可能嗎?或者我應該找到解決方法?
只需將公共代碼移動到可重用的類/方法,然後再由這兩種方法調用?這不是一個servlet問題。這只是基本的Java。 – BalusC
你如何做上傳?它是一些HTML表單還是程序? AFAIK查詢參數(?name = Value)也可以在POST URL中使用......? – Jan
這是一個HTML表格 – Ivaro18