简体   繁体   English

从jsp页面获取值到java servlet

[英]Getting values from jsp page to java servlet

Hi actually I am facing issue in getting values from jsp page to java servlet.嗨,实际上我在从 jsp 页面获取值到 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.我无法检索数据,因为数据没有从 html 传递到 servlet。

Here is my html code:这是我的 html 代码:

<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:这是我的 servlet 代码:

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?.您确定在 form/web.xml 中映射的操作 url 正确吗? Also, I'm not seeing any option tags for the select tag, are they passed dynamically?另外,我没有看到 select 标签的任何选项标签,它们是动态传递的吗?

It seems you missed the options tag.看来您错过了选项标签。 Each Select tag should contain minimum one option tag.每个 Select 标签应至少包含一个 option 标签。 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.将它添加到表单会使 servlet 处理表单,就好像它有文件一样,并且从我所见,您没有任何文件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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