转发到JSP的Servlet

时间:2017-09-03 21:30:12

标签: java jsp servlets java-ee forward

我编写了一个使用多个JSP文件的Java EE WebApp。到现在为止,我用来写这样的地址:

http://www.example.com/login.jsp

但我更喜欢他们会像:

http://www.example.com/login

所以我为每个JSP文件创建了一个Servlet,它们看起来像这样:

public class ForwardLoginServlet extends HttpServlet {

    @Override
    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
                     throws ServletException, IOException {

        String url = context.getInitParameter("loginURL"); // this will return the login.jsp filename
        forwardToURL(url, request, response);
    }
    // More stuff here (doget, do post,...)
}

它运行得很完美,但我的问题是:有没有其他方法可以在不为每个JSP创建新的Servlet的情况下执行此操作?编写JSP然后为它编写Servlet并不是很快......

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您只需要将url映射到jsp,则可以在web.xml中指定它

  <servlet>
    <servlet-name>login</servlet-name>
    <jsp-file>/WEB-INF/views/login.jsp</jsp-file>
  </servlet>

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