Servlets :: GET HTTP Request Contain A Request Body?
Feb 25, 2014
I have the following questions:
1. Does a GET HTTP request contain a request body? If yes what is contained in it? Are the request headers also part of the request body?
2. Is it possible to send a byte array as part of the GET request in its body?
3. Is there a size limitation on the data that can be sent via a GET request?
I would like to know the details about how a server handles a multipart request. I know that a webserver comprises of a HTTP adapter(which is responsible for receiving http requests and sending http responses) and a container(which is responsible for handling dynamic requests).
So, when a client sends a request, the HTTP adapter receives it. Then transfers the request to the container if the http adapter cannot handle it(jsps, servlets for example).
Suppose, a client sends a multipart request which has an avi file of size upto 100mb. For example, lets assume that the client takes 5 minutes to upload the file.
Lets also assume that my application is only interested in flv files. Is there any way to stop/terminate the multipart request before the file is transferred to the server? So that the client's time will not be wasted?
I think that the HTTP adapter will transfer the request to the container only after receiving the entire request, i.e. the servlet will be called only after the file is transferred to the server from client. Is it right?
If its right then there is no easy way to terminate the multipart request unless the entire file is transferred to the server. Is this right?
I am trying to write a webservice class which actually handles multipart requests. T client will try to upload zip or tar.gz files which may be upto 1GB in size.
I dont want to validate the extension i client side.
I want to validate the file extension in server side and discard the request before the file is uploaded.
I am trying to generate this request with my Java program, but I just can't seem to figure it out: curl -v -H "Authorization:Basic MY_AUTH_CODE" -H "Accept:application/xml" -H "app_id:MY_APP_ID" -H "app_key:MY_APP_KEY" -X GET "THIRD_PARTY_URL"
I tried to generate a query string, but I keep getting 403 errors. I also tried to input my parameters using URLConnection.getRequestProperty("name", "value"), but that didn't work either.
I have been trying to implement custom request method in HTTP header while posting my data to the server URL. My application specific URL accepts -X parameter and -d for the data and it is mandatory for that url. Basically I am trying to dump JSON data into my influx DB using CURL command which is working fine from the shell. But the issue is, if I am implementing the same in java with proper approach, it is not supported or working. My CURL command is :
curl -X POST -d '<my_json_data>' '<my_url>'
How can I implement the same in java using HttpUrlConnection or other available approach?
When we forward the request to a jsp , I noticed that the url bar address does not change .
I made a form form.html , and set action to a servlet then in servlet class I set an attribute and forward the request to jsp ,which prints the value of that attribute.But the url in address does not actually points to that jsp to which i forwarded the request.
I have to forward my request to another webApplication using post request parameters. In this case Webaplication-1 need send request using post request params to Webapplication-2 & once Webaaplication-2 receives request it has to process & display output.
For this have tried below 2 options which Servlet API provides.
1. RequestDispatcher : this will used to forward request to another resource within the application.
2. sendRedirect() : this method support doGet() of Servlet.
3. Using HttpClient, which is provided by Apache able to do but it will not displaying Output,It sending back response to Webapplication-1 .
Is there any option which will handover request from one webapplication to another webapplication.
We have a big application which is implemented in basic servlet. WE have Get and Post request in servlet. I want to provide them security if any malicious attack will happen on the form submit method. I want to make it secure. In detail, suppose if any user want to submit form/ any ajax request from my application and if he/she changes the method of submission from POST to GET then how I will recognize this?
I know that HTTPServletRequest object have GetMethod() but how I will detect that it is not changed by Tamper data/Fidler/Watir. One more way, I googled is by using GetQueryString() method but lot of the places I have query paramater in my POST request.
I have to send a request with post parameters from one web application to another web application,both are running different servers.
In my application i don't have any JSP,html only controller part which will handle request extract request parameters & based on request params i'll do a web service call.
My current requirement is based on request parameters i'll send request to another web application with received parameters.
I tried with sendRedirect() ,but it support only get() method.
I am building an application that has two types of users. While some of the fields (ie: username, email address, password) are the same for both user types, other fields are different for each user type.
Therefore, I would like to split up the process of registering (ie: writing the user info to database) into two parts:
1) registering the common fields among both user types (servlet 1) 2) registering the specific fields based on the user type that is registering (servlet 2a and servlet 2b).
Therefore, once servlet 1 is processed, I wish to forward the request to servlet 2a or 2b depending on what type of user is registering.
I wish to do this since I will have other parts of my application that will make use of servlets 2a and 2b as well. Is this possible to do (redirect request parameters from jsp to servlet and then to another servlet)?
After confirmation to the login details I added new cookie having logging information and then dispatched this request to controller servlet where this cookie is checked if it is present then user is forwarded to a particular page. Otherwise is redirected to the sign in page. Now the problem is when we add cookies then it is added into "response" object and when we get cookies we get them from "request" object. So for the first time redirection to controller servlet "response" object would not have this cookie as it is not available in "request" object. But will be available for later requests.
My question is what is the way to get this cookie in the first request. Or is there any way to send refresh like response to the browser so that this cookie is added??
We are starting to deploy virtual desktops in our factory.I have a file upload form that works on conventional desktops but fails on the virtual machines. Notice the lifecycle parameter is not being passed to servlet on these virtual machines but does get passed when ran from standard desktop machine.
I have used jsp's to passing request to the servlet or controllers. but we can also pass request from javascript using ajax and sending data using json.
what is the good approach and why? or does it depends on the situations? is yes, what kind of situations?
my Servlet as I would like my Servlet to run first and to create a session var then forward the value to the JSP (the GUI ) and have the JSP able to send a var back to the Servlet for reprocessing and update the session var to again be sent to the JSP and so on . - The Servlet contains logic to handle incorrect input types and directly out puts a HTML error page..
Below I will add the code I have so far and a link to the question in my Text Book.
My code:
JSP Page:
bank.JSP :
<% //Starts outputting the HTML Form %> <html> <head>
I would like getting a specific parameter name from the set of request parameters. In particular the name of the 4th parameter in the request parameter set.
/** * Servlet implementation class InvoicingDeptServlet */ @WebServlet("/InvoicingDeptServlet") public class InvoicingDeptServlet extends HttpServlet { private static final long serialVersionUID = 1L; //Make arraylist global object ArrayList<InvoiceData> invoiceList = new ArrayList<InvoiceData>();
Now that I have set up my dev environment on a new machine with new eclipse, it does not work.
It displays Ï instead of π.
I've already tried adding URIEncoding="UTF-8" to server.xml which did not work since it only affect get not post. I figured out how to get the parameter with correct encoding on the new system:
How the server know the device type from which request came from. I have requirement to implement the logic based on the type of the device. Eg: Mobile, TAB, PC or Laptop. Is there any existing API in Jquery to know the details about the client?
I know when including remember me token in request header, it will contain expiry date. does this mean the token generated must be able to be reversed back to it's original string?
In one jsp page, I submit a form with a message body with following html code (which is store in "MsgBody" in my request)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
[code]....
But when I submit my form, I received in my servlet a parameter "MsgBody" without several tag like <html>/<body> ... do you know this behavior, by default tag are delete ?
I have a controller that on the basis of commands (formaction and subaction) dispatch requests to different jsp pages. But somehow when I am debugging my application, I can find duplicate request coming to the controller, so one jsp page does load twice. I am not sure from where the duplicate request is generating.