I want to send a serialized object from a Java class to a servlet where the servlet should retrieve and save the object as a file. I’m aware that I have to use HttpURLConnection to make a POST request to a servlet, but I don’t know whether the below code is correct.
private static HttpURLConnection urlCon;
private static ObjectOutputStream out;
public static void main(String[] args) {
Names names = new Names();
names.setName("ABC");
names.setPlace("Bangalore");
URL url;
try {
url = new URL("http://localhost:6080/HttpClientSerializable/HttpPostServlet");
try {
out = (ObjectOutputStream) urlCon.getOutputStream();
out.writeObject(names);
urlCon = (HttpURLConnection) url.openConnection();
urlCon.setRequestMethod("POST");
urlCon.setDoOutput(true);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
}
And in the servlet, I have the following code:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ObjectInputStream in = new ObjectInputStream(request.getInputStream());
try {
names = (Names) in.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
in.close();
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("C:/Documents and Settings/RAGASTH/Desktop/Names"));
out.writeObject(names);
out.close();
}
What should I do to make it work? Also, I want the servlet to send back the object it receives as response.
Any help would be appreciated. Thanks!
You would need to
Namesclass implementsjava.io.Serializablemarker interface.Create an ObjectOutputStream from the servlet’s outputstream as follows:
On the receiver side, once you read the object from the servlet’s inputstream and persist in the file, write it back to the response’s output stream as follows:
On the sender’s side:
On the receiver’s side: