0

bookReg.jsp

<%@page import="classes.BooksDTO"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional" 
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link type="text/css" href="css/mainStyle.css">
</head>
<body>
<%
//D:\Hayden\учеба\джава\JavaBigData\readers\WebContent\img - folder directory
%>

<form action="bookRegProc.jsp" method="post" enctype="multipart/form-data">
Title <input type="text" name="title"> <br>
Plot <textarea rows="30" cols="40" name="plot"></textarea> <br>
<input type="hidden" name="rating" value="0"> <br>
Author <input type="text" name="author"> <br>
Publisher <input type="text" name="publisher"> <br>
Genre <input type="text" name="genre"> <br>
Publication date <input type="text" name="date"> <br>
Cover <input type="file" name="cover" size="50"> <br>

<input type="submit" value="Register"> <br>
</form>


</body>
</html>

bookRegProc.jsp

<%@page import="classes.Uploader"%>
<%@page import="org.apache.commons.fileupload.FileItem"%>
<%@page import="java.util.Iterator"%>
<%@page import="java.util.List"%>
<%@page import="org.apache.commons.fileupload.servlet.ServletFileUpload"%>
<%@page import="org.apache.commons.fileupload.disk.DiskFileItemFactory"%>
<%@page import="java.io.File"%>
<%@page import="classes.BooksDTO"%>
<%@page import="classes.BooksDAO"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>

    <%
        Uploader upload = new Uploader();
        upload.doPost(request, response);
    %>

</body>
</html>

Uploader.java

package classes;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Paths;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

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;

public class Uploader extends HttpServlet {

    BooksDTO dto = null;
    BooksDAO dao = new BooksDAO();
    String title = null;

    public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String title = request.getParameter("title"); // Retrieves <input type="text" name="description">
        String plot = request.getParameter("plot");
        String rating = request.getParameter("rating");
        String author = request.getParameter("author");
        String publisher = request.getParameter("publisher");
        String genre = request.getParameter("genre");
        String date = request.getParameter("date");
        Part filePart = request.getPart("file"); // Retrieves <input type="file" name="file">
        /*String fileName = title;
        InputStream fileContent = filePart.getInputStream();*/
        // ... (do your job here)
        //DTO process
        BooksDTO dto = new BooksDTO();
        BooksDAO dao = new BooksDAO();

        dto.setTitle(title);
        dto.setAuthor(author);
        dto.setDate(date);
        dto.setGenre(genre);
        dto.setPlot(plot);
        dto.setPublisher(publisher);
        dto.setRating(rating);

        try {
            dao.insert(dto);
//this inserts all the parameters into database
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        //File process
        File file;
        int maxFileSize = 5000 * 1024;
        int maxMemSize = 5000 * 1024;
        String filePath = "D:/Hayden/Eclipse workspace/bigdata/readers/WebContent/img/";
        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(maxMemSize);
        factory.setRepository(new File("C:/temp"));
        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(maxFileSize);
        try {
            FileItem fi = (FileItem) filePart;
            if(!fi.isFormField()) {
                file = new File(filePath + dto.getTitle() + ".jpg");
                fi.write(file);
            }

        }catch(Exception ex) {
            System.out.println(ex);
        }


    }

}

I want to pass text parameters from bookReg.jsp to register it in my database. I checked the methods for inserting into database works totally fine. but in doPost method, Uploader.java, request.getParameter passes null to each String. I searched how to pass text to a servlet for days and I finally followed this instruction : How to upload files to server using JSP/Servlet? (first answer)

but it still passes null only. what is the difference between passing parameter using request.getParameter in jsp and in a java class as I wrote?

and what is causing the same problem even if I followed the instruction of the first answer in the page that I followed? (I am using tomcat 8.5 and eclipse oxygen)

Hayden Kuk
  • 7
  • 1
  • 3

0 Answers0