The servlet context is an object that contains a servlet's view of the Web application within which the servlet is running. Using the context, a servlet can log events, obtain URL references to resources, and set and store attributes that other servlets in the context can use. (answer supplied by Sun's tutorial).
The servlet mapping defines an association between a URL pattern and a servlet. The mapping is used to map requests to servlets.
The session is an object used by a servlet to track a user's interaction with a Web application across multiple HTTP requests.
In GET your entire form submission can be encapsulated in one URL, like a hyperlink. query length is limited to 260 characters, not secure, faster, quick and easy.
In POST Your name/value pairs inside the body of the HTTP request, which makes for a cleaner URL and imposes no size limitations on the form's output. It is used to send a chunk of data to the server to be processed, more versatile, most secure.
Cookies, URL rewriting, and HTTPS protocol information are used to maintain session information
Using System.exit(1); in try block will not allow finally code to execute.
You can use a client-side Refresh or Server Push
Yes , of course you can use the constructor instead of init(). There's nothing to stop you. But you shouldn't. The original reason for init() was that ancient versions of Java couldn't dynamically invoke constructors with arguments, so there was no way to give the constructur a ServletConfig. That no longer applies, but servlet containers still will only call your no-arg constructor. So you won't have access to a ServletConfig or ServletContext.
You'll want to use HttpURLConnection.setRequestProperty and set all the appropriate headers to HTTP authorization.