Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to redirect url to jsp in web.xml

(Should be an easy one-)

How can I redirect all urls of the pattern yada*.js into a my specific jsp.
will this addition to my web.xml work:

<servlet-mapping>
        <servlet-name>MySpecific.jsp</servlet-name>
        <url-pattern>yada*.js</url-pattern>
</servlet-mapping>

or perhaps I must use javax.servlet.filter for that purpose?

like image 322
Spiderman Avatar asked Aug 05 '10 12:08

Spiderman


2 Answers

I'd drop those files in a folder called /yada and then use an url-pattern of /yada/*.

If you don't want to do that, then hand-determining it in a filter is indeed the only resort.


Update: as per your update, you actually have a second question which wasn't directly obvious from your initial question: "How to declare a JSP file as a servlet?". The answer is: use <jsp-file> instead of <servlet-class>.

<servlet>
    <servlet-name>foo.jsp</servlet-name>
    <jsp-file>/foo.jsp</jsp-file>
</servlet>
<servlet-mapping>
    <servlet-name>foo.jsp</servlet-name>
    <url-pattern>/foo/*</url-pattern>
</servlet-mapping>

Nevertheless, as stated in the comments, this is not the best practice. This smells to raw Java code in a JSP file which you should avoid to all extent.

like image 144
BalusC Avatar answered Nov 06 '22 05:11

BalusC


Depending on the server the things that you can put in url-pattern are very limited.

Two are valid:

  • an absolute path (no wildcards)
  • *.ext

So that specification is not matching. I'd use a filter indeed.

PS: don't forget to specify <%page sourceEncoding=... contentType=... %> in the generating JSP :). And content-type should include charset=xxxxx

like image 33
helios Avatar answered Nov 06 '22 03:11

helios