I see a feature in NetBeans for selecting a JSP
for a Servlet
and the result XML in web.xml
is like this:
<servlet>
<servlet-name>TestServlet</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
What does it mean? And what is it for? Is it like code behind architecture in ASP .NET?
What does it mean? and What is it for?
It is used to map a canonical name for a servlet (not an actual Servlet class that you've written) to a JSP (which happens to be a servlet). On its own it isn't quite useful. You'll often need to map the servlet to a url-pattern as:
<servlet>
<servlet-name>TestServlet</servlet-name>
<jsp-file>/index.jsp</jsp-file>
</servlet>
<!--mapping-->
<servlet-mapping>
<servlet-name>TestServlet</servlet-name>
<url-pattern>/test/*</url-pattern>
</servlet-mapping>
All requests now arriving at /test/*
will now be serviced by the JSP.
Additionally, the servlet specification also states:
The
jsp-file
element contains the full path to a JSP file within the web application beginning with a “/”. If ajsp-file
is specified and theload-onstartup
element is present, then the JSP should be precompiled and loaded.
So, it can be used for pre-compiling servlets, in case your build process hasn't precompiled them. Do keep in mind, that precompiling JSPs this way, isn't exactly a best practice. Ideally, your build script ought to take care of such matters.
Is it like code behind architecture in ASP .NET?
No, if you're looking for code-behind architecture, the closest resemblance to such, is in the Managed Beans support offered by JSF.