Was ist die Datei web.xml und was kann ich damit anfangen?

76

Die web.xml Deployment Descriptor-Elemente in der BEA WebLogic Server 8.1-Dokumentation von Oracle fassen jedes Element in einer web.xml-Datei zusammen. Ich bin aber auch neugierig auf folgende Punkte:

  1. Gibt es Konfigurationsparameter, die wie die Pest vermieden werden sollten?
  2. Gibt es Parameter in Bezug auf Leistung oder Speichernutzung?
  3. Sicherheitsrisiko aufgrund häufiger Fehlkonfigurationen?

Was sollte ich über web.xml außer den Elementnamen und ihrer Verwendung noch wissen?

Ravi Gupta
quelle

Antworten:

103

Was ist die Datei web.xml und was kann ich alles damit machen?

Die /WEB-INF/web.xmlDatei ist der Web Application Deployment Descriptor Ihrer Anwendung. Diese Datei ist ein XML-Dokument, das alles über Ihre Anwendung definiert, was ein Server wissen muss (mit Ausnahme des Kontextpfads, der vom Application Deployer und Administrator bei der Bereitstellung der Anwendung zugewiesen wird): Servlets und andere Komponenten wie Filter oder Listener, Initialisierung Parameter, von Containern verwaltete Sicherheitsbeschränkungen, Ressourcen, Begrüßungsseiten usw.

Beachten Sie, dass die von Ihnen erwähnte Referenz ziemlich alt ist (Java EE 1.4), es wurden nur wenige Änderungen in Java EE 5 und noch mehr in Java EE 6 vorgenommen (wodurch das web.xml"optional" wird und Webfragmente eingeführt werden ).

Gibt es Konfigurationsparameter, die wie die Pest vermieden werden sollten?

Nein.

Gibt es Parameter in Bezug auf Leistung oder Speichernutzung?

Nein, solche Dinge werden nicht auf Anwendungsebene, sondern auf Containerebene konfiguriert.

Sicherheitsrisiko aufgrund häufiger Fehlkonfigurationen?

Wenn Sie von Containern verwaltete Sicherheitsbeschränkungen verwenden und diese nicht ordnungsgemäß konfigurieren möchten, werden Ressourcen offensichtlich nicht ordnungsgemäß geschützt. Abgesehen davon besteht das größte Sicherheitsrisiko aus dem Code, den Sie IMO bereitstellen.

Pascal Thivent
quelle
28

Was sollte ich über web.xml außer dem Elementnamen und seiner Verwendung wissen?

Der EINZIGE wichtigste JSP-Konfigurationsparameter von ALL TIME befindet sich in Ihrer web.xml. Meine Damen und Herren, ich gebe Ihnen ... die Option TRIM-DIRECTIVE-WHITESPACES !

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <trim-directive-whitespaces>true</trim-directive-whitespaces>
    </jsp-property-group>
</jsp-config>

Dadurch werden alle Hunderte oder Tausende von Leerzeichen entfernt, die Sie in Ihrem generierten HTML-Code erhalten, wenn Sie Tag-Bibliotheken verwenden (Schleifen sind besonders hässlich und verschwenderisch).

Die andere große ist die Standardwebseite (die Seite, an die Sie automatisch gesendet werden, wenn Sie keine Webseite in die URL eingeben):

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>    
Ziviler Ungehorsam
quelle
8
  1. Nein, es gibt nichts, was vermieden werden sollte
  2. Die leistungsbezogenen Parameter befinden sich nicht in web.xmlden Servlet-Container-Konfigurationsdateien ( server.xmlauf Tomcat).
  3. Nein. Das Standardservlet (in einer web.xml an einem gemeinsamen Speicherort in Ihrem Servlet-Container zugeordnet) sollte jedoch vorzugsweise Dateilisten deaktivieren (damit Benutzer den Inhalt Ihrer Webordner nicht sehen):

    Auflistungen wahr

Bozho
quelle
6

Ich versuche genau herauszufinden, wie das auch funktioniert. Diese Seite könnte für Sie hilfreich sein. Es enthält alle möglichen Tags für web.xml sowie Beispiele und Beschreibungen für jedes Tag.

http://wiki.metawerx.net/wiki/Web.xml

sechzig Fuß
quelle
1
Seien Sie jedoch etwas vorsichtig, da ich eine Stelle gefunden habe, an der ein Bindestrich durch einen Unterstrich ersetzt wurde. (Das Debuggen hat lange gedauert).
Sixtyfootersdude
1
Warum nicht den Kommentar zu Ihrer Antwort hinzufügen?
Bozho
3

Wenn Sie Struts verwenden, deaktivieren wir den direkten Zugriff auf die JSP-Dateien mithilfe dieses Tags in web.xml

 <security-constraint>
<web-resource-collection>
  <web-resource-name>no_access</web-resource-name>
  <url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint/>

JoseK
quelle
0

Bereitstellungsdeskriptordatei "web.xml": Durch die ordnungsgemäße Verwendung der Bereitstellungsdeskriptordatei "web.xml" können Sie viele Aspekte des Verhaltens von Webanwendungen steuern, vom Vorladen von Servlets über die Einschränkung des Ressourcenzugriffs bis hin zur Steuerung von Sitzungszeitlimits.

web.xml : wird verwendet, um viele Facetten einer Webanwendung zu steuern. Mit web.xml können Sie benutzerdefinierte URLs zum Aufrufen von Servlets zuweisen, Initialisierungsparameter für die gesamte Anwendung sowie für bestimmte Servlets angeben, Sitzungszeitlimits steuern, Filter deklarieren, Sicherheitsrollen deklarieren und den Zugriff auf Webressourcen basierend auf deklarierten Sicherheitsrollen einschränken. und so weiter.

EIN CHEF
quelle
-1

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 ">

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

Mohan
quelle
-1
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <description></description>
    <display-name>pdfServlet</display-name>
    <servlet-name>pdfServlet</servlet-name>
    <servlet-class>com.sapta.smartcam.servlet.pdfServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>pdfServlet</servlet-name>
    <url-pattern>/pdfServlet</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>
Kalaiselvan Velmurugan
quelle