0

Please how can I send a post message from servlet to jsp file ? The servlet and jsp are in different servers. In Java - sending HTTP parameters via POST method easily They explain how send a Post message but, how can I receive this message in JSP file ?

I tried this code in servlet:

URL gwtServlet = null;
            gwtServlet = new URL("http://localhost:8080/connection/result.jsp");
            HttpURLConnection servletConnection = (HttpURLConnection) gwtServlet.openConnection();
            servletConnection.setRequestMethod("POST");
            servletConnection.setDoOutput(true);
            ObjectOutputStream objOut = new ObjectOutputStream(servletConnection.getOutputStream());
            objOut.writeObject("Test");
            objOut.flush();
            objOut.close();
            InputStream res = servletConnection.getInputStream();
            servletConnection.setInstanceFollowRedirects(true);

and in JSP file:

    <%
ObjectInputStream objIn = new ObjectInputStream(request.getInputStream()); //exception in this line
String rep = (String) objIn.readObject();
%>
Result:
<textarea rows="4" cols="50">
<%=rep %>
</textarea>

I got this exception:

    message java.io.EOFException

description Le serveur a rencontré une erreur interne qui l''a empêché de satisfaire la requête.

exception

org.apache.jasper.JasperException: java.io.EOFException
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:460)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
cause mère

java.io.EOFException
    java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2325)
    java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2794)
    java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:801)
    java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
    org.apache.jsp.result_jsp._jspService(result_jsp.java:75)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
Community
  • 1
  • 1
Mehdi
  • 1,960
  • 6
  • 32
  • 45
  • You can pass message in some attribute attached with request object or you have to generate one servlet in the app which has jsp and call that servlet from first servlet with passing message as query string variable. – Rajnikant Patel Dec 23 '15 at 09:49
  • @reporter there is not an explication how retreive the post message in JSP – Mehdi Dec 23 '15 at 10:14
  • 1
    Just the same way as when it's sent by a HTML form (and you normally use a servlet for that). – BalusC Dec 23 '15 at 10:22
  • It appears you have no idea how HTTP POST works. You're attempting to pass serialized Java objects around instead of normal URL encoded form parameters. This makes no sense. The duplicate answers how to properly pass POST request parameters using `URLConnection` so that you can continue using `request.getParameter()` the usual way like as in normal HTML forms. – BalusC Dec 23 '15 at 10:42
  • @Mehdi A jsp file is a modernized way of a java servlet. So you can use plain Java code for retriving the values. Because the request object is alerady initialized, use the method `getParameter()` for it. – Reporter Dec 23 '15 at 10:48
  • @reporter using getParameter() even if the message is HTTP Post ? – Mehdi Dec 23 '15 at 10:57
  • As said, it's no different from when using a plain HTML form. – BalusC Dec 23 '15 at 11:11
  • @BalusC an example of jsp file when i receive the post. I failed to do. – Mehdi Dec 23 '15 at 11:21
  • Apparently you didn't follow the example in the first duplicate link how to properly send a HTTP POST request using `URLConnection`. If you keep messing with serialization, of couse that would never work in other side. You need to send it as a normal request parameter in order to obtain it as a normal request parameter. – BalusC Dec 23 '15 at 11:34
  • @Mehdi `getParameter()`is designed for parameters sumited with POST, `getAttribute()`is designed for parameters submited with GET. – Reporter Dec 23 '15 at 11:58

0 Answers0