JSP Interview Questions and Answers
Intermediate / 1 to 5 years experienced level questions & answers
Ques 1. What is difference between custom JSP tags and beans?
- A custom JSP tag has to be interpreted and run inside a JSP; a Java Bean does not.
- A custom JSP tag has to extend the javax.servlet.jsp.tagext.Tag interface; a Java Bean does not.
- A custom JSP tag might use other Java Beans to do its work, but the reverse is not true.
Ques 2. What is the difference between a Scrollbar and a ScrollPane in JSP?
A Scrollbar is a Component, but not a Container. A ScrollPane is a Container. A ScrollPane handles its own events and performs its own scrolling.
Ques 3. How do I use a scriptlet to initialize a newly instantiated bean?
A jsp:useBean action may optionally have a body. If the body is specified, its contents will be automatically invoked when the specified bean is instantiated. Typically, the body will contain scriptlets or jsp:setProperty tags to initialize the newly instantiated bean, although you are not restricted to using those alone.
The following example shows the “today” property of the Foo bean initialized to the current date when it is instantiated. Note that here, we make use of a JSP expression within the jsp:setProperty action.
<jsp:useBean id=”foo” class=”com.Bar.Foo” >
<jsp:setProperty name=”foo” property=”today”
value=”<%=java.text.DateFormat.getDateInstance().format(new java.util.Date()) %>” / >
<%– scriptlets calling bean setter methods go here –%>
</jsp:useBean >
Ques 4. What's a better approach for enabling thread-safe servlets and JSPs? SingleThreadModel Interface or Synchronization?
Although the SingleThreadModel technique is easy to use, and works well for low volume sites, it does not scale well. If you anticipate your users to increase in the future, you may be better off implementing explicit synchronization for your shared data. The key however, is to effectively minimize the amount of code that is synchronized so that you take maximum advantage of multithreading.
Also, note that SingleThreadModel is pretty resource intensive from the server’s perspective. The most serious issue however is when the number of concurrent requests exhaust the servlet instance pool. In that case, all the unserviced requests are queued until something becomes free – which results in poor performance. Since the usage is non-deterministic, it may not help much even if you did add more memory and increased the size of the instance pool.
Ques 5. How is scripting disabled?
Scripting is disabled by setting the scripting-invalid element of the deployment descriptor to true. It is a subelement of jsp-property-group. Its valid values are true and false. The syntax for disabling scripting is as follows:
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<scripting-invalid>true</scripting-invalid>
</jsp-property-group>
Most helpful rated by users:
- What is a JSP and what is it used for?
- What are the two kinds of comments in JSP and what's the difference between them ?
- What is difference between custom JSP tags and beans?
- Is JSP technology extensible?
- What is JSP page?