Java 转发给JSP的servlet

Java 转发给JSP的servlet,java,jsp,servlets,jakarta-ee,forward,Java,Jsp,Servlets,Jakarta Ee,Forward,我正在编写一个JavaEEWebApp,它使用几个JSP文件。到目前为止,我都是这样写地址的: http://www.example.com/login.jsp public class ForwardLoginServlet extends HttpServlet { @Override protected void processRequest(HttpServletRequest request, HttpServletResponse response)

我正在编写一个JavaEEWebApp,它使用几个JSP文件。到目前为止,我都是这样写地址的:

http://www.example.com/login.jsp
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,...)
}
但我更喜欢这样:

http://www.example.com/login
因此,我为每个JSP文件创建了一个Servlet,它们如下所示:

http://www.example.com/login.jsp
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不是很快


谢谢

如果您只需要将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>

登录
/WEB-INF/views/login.jsp
登录
/登录