简体   繁体   中英

Getting values from jsp page to java servlet

Hi actually I am facing issue in getting values from jsp page to java servlet. In a list of dropdowns only one dropdown value I am able to get all other values are coming as null. Not understanding where I am going wrong. Can anyone please help me.

In upload page all the values are coming fine. But the issue is only with retrieve page. I am unable to retrieve data as data is not passing from html to servlet.

Here is my html code:

<form method="post"   enctype='multipart/form-data'>

        <label>select Board:</label>
        <select id="onelevel" name="onelevel" class="changeElem"></select>
        <br>
         <label>select Syllabus:</label>
        <select id="twolevel" name="twolevel" class="showElem changeElem"></select>
        <br>
         <label>select class:</label>
         <select id="threelevel" name="threelevel" class="showElem changeElem"></select>
         <br>
          <label>select state:</label>
         <select id="sixlevel" name="sixlevel" class="showElem changeElem"></select>
           <br>
            <label>select subjects:</label>
         <select id="fourlevel" name="fourlevel" class="showElem changeElem"></select>
         <br>
          <label>select chapters:</label>
          <select id="fivelevel" name="fivelevel" class="showElem changeElem"></select>
          <br>

           <label>select terms:</label>
          <select id="sevenlevel" name="sevenlevel" class="showElem changeElem"></select>
          <br>







<button  id="retrieve">Submit</button>





</form>

Here is my servlet code:

package fileretrieve;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.nio.charset.Charset;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

import org.apache.tomcat.util.http.fileupload.IOUtils;

import dbConnection.Dbconn;

@MultipartConfig
public class FileRetrieve extends HttpServlet {



    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
          response.setContentType("application/octet-stream");


          PrintWriter out = response.getWriter();        
          String onelevel=request.getParameter("onelevel"); 
          String twolevel=request.getParameter("twolevel"); 
          String threelevel=request.getParameter("threelevel"); 
          String fourlevel=request.getParameter("fourlevel"); 
          String fivelevel=request.getParameter("fivelevel"); 
//          
//      
//          





          Connection conn = null; // connection to the database
          String message = null;
          Statement st = null;// message will be sent back to client



          try {
              // connects to the database
              conn = Dbconn.getConnection();
                st = conn.createStatement();

                 PreparedStatement ps=conn.prepareStatement("select data,filename,extension from files1 where board=? AND syllabus=? AND class=? AND subject=? AND chapters=? ");
                 ps.setString(1,onelevel);
                 System.out.println("2"+twolevel);
                 System.out.println("3"+threelevel);
                 System.out.println("4"+fourlevel);
                 System.out.println("5"+fivelevel);

                 ps.setString(2,twolevel);
                 ps.setString(3,threelevel);
                 ps.setString(4,fourlevel);
                 ps.setString(5,fivelevel);
                 //out.print("<table width=25% border=1>");
                // out.print("<center><h1>Result:</h1></center>");



                 ResultSet rs=ps.executeQuery();                
                 /* Printing column names */
                 ResultSetMetaData rsmd=rs.getMetaData();
                 int count=0;
                 String filenames="\"";
                 String paths="\"";
                 while(rs.next())
                    {
                     count=count+1;
                     String extension;
//                   if(rs.getString(2)=="docx"){
//                       extension=".docx";
//                   }else if(rs.getString(2)=="pdf"){
//                       extension=".pdf";
//                   }

                     extension=rs.getString(2).substring(rs.getString(2).lastIndexOf(".") + 1).toLowerCase();



                     FileOutputStream fos = new FileOutputStream("C:\\Users\\JR00432239\\Desktop\\trial\\WebContent\\filetest"+count+"."+extension);
                     fos.write(rs.getBytes(1));  

                     fos.close();

//                 out.print("<tr>");
//                 out.print("<td>"+rsmd.getColumnName(1)+"</td>");
//                    out.print("<td><a href=\"file:///C:/Users/JR00432239/Desktop/trial/src/temp/test.pdf\" target=\"_self\">"+rs.getString(2)+"</a></td></tr>");
//                    getServletContext().getRequestDispatcher("/home.html").forward(request, response);
                     System.out.println("writing...");
                     System.out.println(rs.getString(2));
                     filenames=filenames+rs.getString(2)+";";
                     paths=paths+"http://localhost:8087/trial/filetest"+count+"."+extension+";";

//                   filenames=filenames+rs.getString(2)+";";
//                   paths=paths+"http://localhost:8087/trial/filetest"+extension+";";
//                    
//                         
                 }
                 filenames=filenames+"\"";
                 paths=paths+"\"";
                 response.getWriter().write("{\"name\":"+filenames+",\"path\":"+paths+"}");


//                 out.print("</table>");
//                 


          }catch (Exception e2)
            {
                e2.printStackTrace();
            }

          finally{

//            request.setAttribute("data", data);
//            RequestDispatcher rd =request.getRequestDispatcher("userview.jsp");
//            

              out.close();
            }


          // forwards to the message page
        //  getServletContext().getRequestDispatcher("/home.html").forward(request, response);
   }

}  

I could see that there is no action mapped for the form. Are you sure the correct action url mapped in form/web.xml?. Also, I'm not seeing any option tags for the select tag, are they passed dynamically?

It seems you missed the options tag. Each Select tag should contain minimum one option tag. For any clarification check this link

Remove:

 enctype='multipart/form-data'

This is why you can only get the first parameter. Adding that to forms makes the servlet process the form as if it had files, and you don't have any files there from what i can see.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM