url pattern for html file in web.xml
Solution 1
If you don't mind to change your HTML page to JSP you can set url pattern for it like this:
<servlet>
<servlet-name>Error</servlet-name>
<jsp-file>/pages/error.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>Error</servlet-name>
<url-pattern>/error</url-pattern>
</servlet-mapping>
Solution 2
URL pattern are for servlet and filters. For servlet
<servlet-mapping>
<servlet-name>Servlet-name</servlet-name>
<url-pattern>/< Pattern ></url-pattern>
</servlet-mapping>
For Filter
<filter-mapping>
<filter-name>Filter-Name</filter-name>
<url-pattern>/< Pattern ></url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Those are not for Html file. Infact there are no pattern configuration for JSPs too.
Solution 3
If you want to protect *.html files from direct access (by placing *.html files under WEB-INF) you can use a Servlet which would be only responsible for forwarding all such requests to intended html files.
<servlet>
<servlet-name>HTMLServlet</servlet-name>
<servlet-class>my.package.HTMLServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HTMLServlet</servlet-name>
<url-pattern>/somepath/*.html</url-pattern>
</servlet-mapping>
Code in servlet class may look like this
...
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String requestedPath = //... code for getting requested HTML path
request.getRequestDispatcher(requestedPath).forward(request, response);
}
...
![Selva](https://i.stack.imgur.com/RTccx.jpg?s=256&g=1)
Selva
Cloud Azure/AWS/GoogleCloud/ Java Java/J2EE/Struts/WebService/ Document Extraction Docx4J/Apache Tikka/PDF Box/ OCR Tesseract/Bing Vision/Google Vision/ Javascript jQuery/Javascript/AngularJS/UnderscoreJS/ Presentaion HTML5, CSS3, XML Database MariaDB AX/MariaDB TX/MySQL/PostgreSQL/MongoDB
Updated on June 04, 2022Comments
-
Selva about 2 years
we know how to set url pattern for servlet but I am unable to set url pattern for html in web.xml, can u help me to find solution, I googled but, can't able to get it, please find below for my problem.
<servlet> <servlet-name>Login</servlet-name> <servlet-class>auth.Login</servlet-class> </servlet> <servlet-mapping> <servlet-name>Login</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
in above code I am setting url pattern for
**Login**
servlet class in web.xml, like wise can I able to set url pattern for html file in web.xml pls help to find solution thank you in advance -
Jafar Ali about 9 yearsno you can't, inface HTML file doesent require any URL patter configuration. In tomcat HTML files can be accessed directly with their corresponding URLs.
-
Selva about 9 yearsI thought that we can set url pattern for html file, then how in the welcome file list alone they are setting index.html as startup page
-
Jafar Ali about 9 yearsWelcome file is a special case. It is configurable so that one can set welcome page other than default i.e index.html. This way we can also set a servlet as a welcome page.
-
Paul LeBeau about 8 yearsYou don't need to change the page to a JSP. An HTML file will work just fine:
<jsp-file>/pages/error.html</jsp-file>