Server-side  Web Programming Lecture 6:  Java Servlets and the  web.xml  Configuration File
Configuration Files Each webapp has a  web.xml  file In  WEB-INF  subdirectory Defines: Mapping from servlet names to servlet files  Global constants Default error pages Security roles…
The  web.xml  file Complex (and finicky) XML If buggy, application  will not load Errors displayed in Tomcat window when started NetBeans provides interface to manipulate its values
The  web.xml  file Internally, still XML Can view and edit at XML tab Basic form of XML: <tag>text</tag> or <tag/> Tags must be properly balanced and nested Must have a root tag  <webapp>
Welcome Page Properties Page shown at webapp startup Default: index.jsp Can change to a new welcome file
New Welcome Page Will go to that page when webapp started Note change in web.xml
Servlet Mapping Web.xml links  referrer page  to be linked with  actual servlet class Mapping from a  name  to a  java class Allows servlet code to be changed without having to rewrite other pages Important since name of class = name of file in Java Mapping from a  url pattern  to a  servlet name Allows servlets to be “hidden” from user Referring file that invokes servlet url pattern used  in FORM ACTION web.xml url pattern    name name    servlet class Java servlet class with actual code
Servlet Mapping No such file – this is just a url pattern that will refer to an actual servlet via web.xml Added to the url patterns that map to this servlet
Servlet Mapping Note that the url pattern appears in the browser Code in web.xml that does the servlet mapping
Initial Parameters Global constants  stored in web.xml Better than “hardwiring” values directly into the code Easier for  nonprogrammer  to modify Form like parameter: name/value Example: “price per unit” in widget site Note that such information is usually in a database However, the name of the database is often an initial parameter! web.xml pricePerUnit=9.95 Java servlet class that needs widget cost
Initial Parameters Configuration level Specific to  single  servlet Context level General to  all  server pages/servlets overall application context … context-level parameters SomeServlet ‘s configuration configuration-level parameters SomeServlet  object AnotherServlet ‘s configuration configuration-level parameters AnothereServlet  object
Configuration Parameters Can create in servlet tab
Configuration Parameters Form of xml tag
Configuration Parameters Accessing from servlet: Get the  servlet configuration ServletConfig config = getServletConfig(); Get the value corresponding to the name of the parameter String  value  = config.getInitParameter(“ name &quot;);
Context Parameters Can create in general tab
Context Parameters Form of xml tag
Configuration Parameters Accessing from servlet: Get the  servlet configuration ServletConfig config = getServletConfig(); Get the  webapp context  from the configuration ServletContext context = config.getServletContext(); Get the value corresponding to the name of the parameter String  value  = context.getInitParameter(“ name &quot;);   Accessing from a JSP: String  value  = application.getInitParameter(“ name &quot;); Built-in object in JSP  (like “request”)
Configuration Parameters

Lecture6

  • 1.
    Server-side WebProgramming Lecture 6: Java Servlets and the web.xml Configuration File
  • 2.
    Configuration Files Eachwebapp has a web.xml file In WEB-INF subdirectory Defines: Mapping from servlet names to servlet files Global constants Default error pages Security roles…
  • 3.
    The web.xml file Complex (and finicky) XML If buggy, application will not load Errors displayed in Tomcat window when started NetBeans provides interface to manipulate its values
  • 4.
    The web.xml file Internally, still XML Can view and edit at XML tab Basic form of XML: <tag>text</tag> or <tag/> Tags must be properly balanced and nested Must have a root tag <webapp>
  • 5.
    Welcome Page PropertiesPage shown at webapp startup Default: index.jsp Can change to a new welcome file
  • 6.
    New Welcome PageWill go to that page when webapp started Note change in web.xml
  • 7.
    Servlet Mapping Web.xmllinks referrer page to be linked with actual servlet class Mapping from a name to a java class Allows servlet code to be changed without having to rewrite other pages Important since name of class = name of file in Java Mapping from a url pattern to a servlet name Allows servlets to be “hidden” from user Referring file that invokes servlet url pattern used in FORM ACTION web.xml url pattern  name name  servlet class Java servlet class with actual code
  • 8.
    Servlet Mapping Nosuch file – this is just a url pattern that will refer to an actual servlet via web.xml Added to the url patterns that map to this servlet
  • 9.
    Servlet Mapping Notethat the url pattern appears in the browser Code in web.xml that does the servlet mapping
  • 10.
    Initial Parameters Globalconstants stored in web.xml Better than “hardwiring” values directly into the code Easier for nonprogrammer to modify Form like parameter: name/value Example: “price per unit” in widget site Note that such information is usually in a database However, the name of the database is often an initial parameter! web.xml pricePerUnit=9.95 Java servlet class that needs widget cost
  • 11.
    Initial Parameters Configurationlevel Specific to single servlet Context level General to all server pages/servlets overall application context … context-level parameters SomeServlet ‘s configuration configuration-level parameters SomeServlet object AnotherServlet ‘s configuration configuration-level parameters AnothereServlet object
  • 12.
    Configuration Parameters Cancreate in servlet tab
  • 13.
  • 14.
    Configuration Parameters Accessingfrom servlet: Get the servlet configuration ServletConfig config = getServletConfig(); Get the value corresponding to the name of the parameter String value = config.getInitParameter(“ name &quot;);
  • 15.
    Context Parameters Cancreate in general tab
  • 16.
  • 17.
    Configuration Parameters Accessingfrom servlet: Get the servlet configuration ServletConfig config = getServletConfig(); Get the webapp context from the configuration ServletContext context = config.getServletContext(); Get the value corresponding to the name of the parameter String value = context.getInitParameter(“ name &quot;); Accessing from a JSP: String value = application.getInitParameter(“ name &quot;); Built-in object in JSP (like “request”)
  • 18.