【问题标题】:Do not hard code jsp links inside servlet不要在 servlet 中对 jsp 链接进行硬编码
【发布时间】:2014-05-11 05:25:14
【问题描述】:

我正在学习 JSP 和 Servlet。考虑ServletdoPost 方法中的以下代码,它将HTTP request 转发到JSP -

RequestDispatcher view = request.getRequestDispatcher("/MyWebApp/MvcView.jsp");  

我想知道如果有人希望这个 servlet 将请求转发到另一个 jsp 而不是上面的那个会发生什么?是否必须每次在他们的应用程序中手动更改此代码?一个人怎样才能摆脱所有这些体力劳动?

【问题讨论】:

  • 从属性文件中读取或使用一些请求参数构造页面名称。
  • @DanglingPiyush - 谢谢。你能给我一些链接吗?

标签: java jsp jakarta-ee servlets


【解决方案1】:

一个简单的解决方案是将 url 设置为 servlet 的参数:

<servlet>
    <servlet-name>YourServlet</servlet-name>
    <servlet-class>com.you.YourServlet</servlet-class>

    <init-param>
        <param-name>url</param-name>
        <param-value>/MyWebApp/MvcView.jsp</param-value>
    </init-param>
</servlet>

在 servlet 中:

public class YourServlet {

  protected String url = null;

  public void init(ServletConfig servletConfig) throws ServletException {
    this.url = servletConfig.getInitParameter("url");
  }

  public void service(ServletRequest request, ServletResponse response)
        throws ServletException, IOException {

    RequestDispatcher view = request.getRequestDispatcher(url);  

  }
}

那么就不需要重新编译servlet代码来修改url了。

【讨论】:

  • 还有其他方法可以做到吗?
猜你喜欢
  • 1970-01-01
  • 2020-12-13
  • 2022-12-17
  • 1970-01-01
  • 2021-12-22
  • 2018-06-16
  • 2012-03-12
  • 1970-01-01
  • 2023-03-24
相关资源
最近更新 更多