Servlet JSP web.xml

103,230

Solution 1

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 a jsp-file is specified and the load-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.

Solution 2

JSPs are servlets. JSP is a templating technology that parses the .jsp file and generates a servlet .java file. Once that's done, the .java file is compiled into a .class file that runs in the servlet/JSP engine context.

All the web.xml file is doing is associating a .jsp file with a servlet name. There's more: you have to map that .jsp to a URL so the servlet/JSP engine can know when to invoke it.

I don't know ASP or .NET well enough to say whether this is the same as "code behind".

Solution 3

JSPs are kind of servlet. JSP pages are compiled into servlet. This servlet run in the servlet container provided by any java web server.

In web.xml, <servlet> tag used to name the name servlet class and jsp file. Then you can map those servlet and jsp file according to your own URLs.

<servlet>
   <servlet-name>hello</servlet-name>
   <jsp-file>/jsp/hello.jsp</jsp-file>
</servlet>
<servlet-mapping>
  <servlet-name>hello</servlet-name>
  <url-pattern>/helloworld</url-pattern>
</servlet-mapping>

If your hello.jsp file located under JSP folder. When you try to open the URL with /helloworld. It will open the page hello.jsp.

Share:
103,230
ehsun7b
Author by

ehsun7b

I love computer programming, music and animals.

Updated on July 09, 2022

Comments

  • ehsun7b
    ehsun7b almost 2 years

    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?