Odomontois
Odomontois

Reputation: 16308

JSP servlet mapping

With introduction of Servlet 3.0 we could map servlets to URL patterns using annotations and ommiting mapping within web.xml.

I wonder if there some intstructions or special tags allowing mapping jsp to URL in page code without declaring servlets in web.xml

Upvotes: 3

Views: 1469

Answers (1)

BalusC
BalusC

Reputation: 1108632

There's no facility like that.

Best what you could do is to hide the JSP in /WEB-INF (so that it can never be requested directly by URL) and just create a servlet which forwards to that JSP and finally map it on the desired URL pattern. It's fairly easy:

@WebServlet("/foo")
public class FooServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.getRequestDispatcher("/WEB-INF/foo.jsp").forward(request, response);
    }

}

This way the JSP in /WEB-INF/foo.jsp is available by http://localhost:8080/context/foo. You could abstract it further to a single servlet for a bunch of JSPs using the front controller pattern.

Upvotes: 5

Related Questions