If you are Java developer, then you must have the good knowledge of servlet. As this is the utmost topic of Java EE. Coupling with this, all the frameworks of web applications such as spring and Strut are built on top of it. There are chances that interviewer asked questions from Servlet. So, equip yourself with these questions.
Web Server is the connection between the HTTP and HTML. Web server takes the response from the client browser and gives output in the form of HTML. It is understandable of HTTP and works on HTTP protocol.
Apache Web server is a good example of the web server. There are several containers that are used to accomplish servlets. JSPs is also referred to as servlet container, for e.g. Tomcat.
While there is some list of supplementary features that are provided by the Application Servers. This list includes
Enterprise JavaBeans support
JMS Messaging support
So, Applications server are basically the modified version of web servers which includes some additional features and functionalities that make the developers more comfort with business applications.
If any HTTP brings the same result every time then it means it is idempotent. We implement application when need the same result at every request. Some of the HTTP methods are PUT, DELETE, HEAD, GET, OPTIONS. While that HTTP which brings the different result at every request is said to be non- idempotent. The POST method is the example of non- idempotent. As opposed to the above, POST method is implanted when there is need of something that changes at every request. Let's take an example to simplify it.
We use the method GET at the time of accessing in an HTML page because it will ever pay the same result. Post method is used when there is need to save customer's information to the database. idempotent methods are referred to as a safe method because it does not give the repetitive request from the user.
Servlet technology was introduced to overcome the limitations of CGI technology. These drawbacks are:
Applications that are executed by Servlet container are: -
These containers are beneficially in communication as it provides the best and easy method to communicate between servlet and web client or browser and JSPs. In the absence of a container, there is a need of server rocket which listens to the request from the browser and then analyzes it. When it is done, it generates the response to the request. All this process is very time-consuming. But with the container the whole process is fast. The container itself perform all these difficult tasks, users only have to concentrate on the business logic for the applications.
servlet handles many tasks like carrying of servlets into memory, starting the servlets, summoning servlets tasks, gives services like JNDI and much more.
As discussed earlier, the container provides a different thread to the servlet for every request. With this, times and memory both are saved.
JSP is originally looked different from the ordinary java classes. JSP is first selected by the container and then changed it to the Servlet. After that, it is handled by the container same as the other servlets
Scarlet provides a lot of applications that help the clients to work on it easily and make them comfortable. Some of these applications are
MIME Type is referred to the 'Content-Type' response header. It provides knowledge to the clients about the type of data that is sending to them. It is very efficient for the client as they are able to render the data for the users. Some examples of the MIME Types are text/XML, text/HTML, application/XML and many more.
Now it is very easy to arrange the correct MIME type. For this, just use a Servlet Context, get Mime Type () technique and fix it to the response type. This method is highly useful at the time of downloading any file from the server using a servlet.
Web applications provide the client browser both the unvarying and changing content. PHP is understood by Apache web browser and thus clients are able to create web applications using PHP. In a servlet container, the web application is supported by the Servlets and JSPs. And these web applications are provided by the Java.
Users are able to get, set and delete the attributes from a session, application, request in the web system. It is done by Http Session, Servlet context and Servlet request. This method is very valuable in inter-servlet communication.
Session scope, application scope, and request scope are the qualities/attributes of the servlet.
Request Dispatcher is used to invoking a specific application. As it is used for a specific application, we can't use this method for every application. In the case of sending a request to the resource in a different application, it is better to use Servlet Response send Redirect () and provides the full URL of another servlet. When it is done, it forwards the clients a response which has a response code to send the invoke to another URL. Cookies are also available to send the data to the different servlet.
A session is a colloquial link between the server and the client. Session handles a lot of requests and supplies the answer within the client and server. As both the HTTP and web server are unsettled, so for the maintenance of a session it is necessary to have some bizarre request that has to be passed between the server and the client.
The various method that is used to manage session in servlets are
Servlet API is very easy to use as it involves only one step that is encoding the URL. So, it is very beneficially in respect of coding. Another benefit of using Servlet API over Http session is that it works only when the cookies are disabled.
Http Servlet Response encodes URL () can also be used for redirecting the request to the different resources and encode Redirect URL () method is used in the case of client wants to give some session knowledge.
To design implement of servlet request and response, these wrapper classes are being used. The users are able to increase these classes to revoke the particular techniques that need to be implemented. There are two wrapper classes that are provided by Servlet HTTP API. These classes are
URL Encoding means the changing of data into CGI. It is done to circumvent any type of issue while it is going over the network. URL coding is schemed by removing the white spaces and put any escape symbols. Thus, the special characters are removed. To encode any string java.net.URLEncoder.encode (String str, String Unicode) is used and to decode the URL java.net.URLDecoder.decode (String str, String Unicode) is used. Let's take an example to simplify it. To encode 'Ravi's data' it is changed into 'Ravi/24d+data'.
Safety and security are always the priority for any company. Thus, the single Thread Model interface introduces for this reason. The main purpose of this concept is to check whether two or more threads are executing at the same time. Like many threads may be penetrated by many requests, so to execute them in a manner, it is used. But in servlet 2.3, this concept is disapproved as it can stop the multithreading method.
There are main four phases required in Servet Life Cycle. These are:
It consists of three methods:
Servlet filters are pluggable java components that are used to process requests before the requests are sent to the servlets and before a container sends the response back to the client.
Some tasks performed with filters are:
In general, on the very first request of the client, the server container loads a servlet. But in case, the servlet is too heavy that it takes much time to load, at that time we might want it to load during the application startup. To do this, the user can use WebServlet notation or loadOnStartup variable to stimuli container. Or, we can use a load-on-startup element with a servlet configuration in web.xml file to load the servlet on startup.
<servlet> <servlet-name>coo </servlet-name> <servlet-class>com.coo.servlets.Coo </servlet-class> <load-on-startup>6 </load-on-startup> </servlet>
If you want that the container loads the servlet on client request, then the load-on-startup value should be negative otherwise if it’s positive then the loading will start on application startup.
If there are many servlets with different load-on-startup values, then that servlet will be loaded first which have the lowest value.
Never Miss an Articles from us.