Hide JSP extension from web pages

Im developing a web application (J2EE, Struts2, JSP, Tomcat) I want to hide the .jsp extension from web pages.

here is part of my web.xml:

     <filter>
         <filter-name>STSDispatcher</filter-name>
         <filter-class>
           org.apache.struts2.dispatcher.FilterDispatcher
         </filter-class>
     </filter>

     <filter-mapping>
         <filter-name>STSDispatcher</filter-name>
         <url-pattern>/*</url-pattern>
     </filter-mapping>

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

I figured out and found this solution:

    <servlet>  
         <servlet-name>myFoo</servlet-name>  
         <jsp-file>myJSPfile.jsp</jsp-file>  
    </servlet>  
    <servlet-mapping>  
         <servlet-name>myFoo</servlet-name>  
         <url-pattern>/main</url-pattern>  
    </servlet-mapping> 

I tried this as shown below but did not work:

for example, I have " alert.jsp ", and this is my web.xml:

<servlet>
    <servlet-name>alert</servlet-name>
    <jsp-file>/alert.jsp</jsp-file>
 </servlet> 

 <servlet-mapping>
     <servlet-name>alert</servlet-name>
     <url-pattern>/alert</url-pattern>
 </servlet-mapping>

but I got this error: "There are no actions displayed for the namespace name and action alert. - [unknown location]"

What should I do?

Thanks in advance.

+5
source share
4 answers

, , struts2 , , , /alert , .
struts, :

<action name="alert">
    <result>/alert.jsp</result>
</action>

, /alert, ( ).

+2

JSP WEB-INF, JSP URL.

, :

<servlet-mapping>
  <servlet-name>ForwardToJspServlet</servlet-name>
  <url-pattern>*.page</url-pattern>
</servlet-mapping>

<servlet-mapping>
  <servlet-name>ForwardToJspServlet</servlet-name>
  <url-pattern>/pages/*</url-pattern>
</servlet-mapping>

URL- JSP .

, URL /yourApp/documents/documentAdd.page, JSP /WEB-INF/JSP/documents/documentAdd.jsp.

+4

This method should work. Another alternative is to edit the htaccess file, adding this

RewriteEngine On
RewriteRule ^([0-9a-zA-Z]+)$  $1.jsp

After that xyz.jsp will be xyz. I really found this method a few days ago How to hide the .jsp extension in my web server urls

0
source

All Articles