【问题标题】:How do I add a servlet to replace scriptlets in a JSP? [duplicate]如何添加 servlet 来替换 JSP 中的 scriptlet? [复制]
【发布时间】:2013-08-11 16:43:09
【问题描述】:

我继承了一个大型遗留 Web 应用程序,该应用程序主要由与 HTML 框架链接在一起的 JSP 文件构成。我一直在阅读有效地使用遗留代码工作,我发现了一个很好的小片段,可以在一个简单的重构步骤中中断。

该页面是一个基本的列表页面。它使用某些请求参数查询数据库,并显示匹配行的列表以及适用操作的按钮。值得庆幸的是,这个特定页面上的大部分业务逻辑已经在 POJO 中,我已经弄清楚如何使用 JSTL 替换表示逻辑。

从我在这里阅读的其他问题/答案来看,最好的策略似乎是将剩余的 scriptlet 提取到一个 servlet 中,该 servlet 根据请求参数进行必要的预处理。

我如何让 servlet 拦截请求,然后暂时呈现对应用程序其余部分的副作用最小的 JSP?

我要替换的文件是/welcome/TopFrameList.jsp

【问题讨论】:

  • 只需将<% %> 放入doGet() 最终转发到JSP,然后更改URL 以调用servlet 而不是JSP。另见stackoverflow.com/questions/3177733/…stackoverflow.com/tags/servlets/info
  • @BalusC,我确实阅读了您之前的回答。这很有帮助。我想我的问题更多是关于如何在创建 servlet 后调用它。因此,就我而言,没有比为 servlet 创建一个 url 并在相关的地方查找和更改链接和框架源属性更简洁的方法了吗?

标签: java jsp servlets


【解决方案1】:

如果我完全理解了这个场景,

步骤:

  1. 您可以将控件发送到 Servlet 而不是 jsp 直接地。即您将不得不稍微更改 url 以指向 servlet 不给 jsp。

  2. 让 Servlet 预处理请求参数(以及一些 业务逻辑(如果需要)

  3. Servlet 然后转发请求 到最终呈现视图的jsp。

这应该可行,因为对现有应用程序的唯一更改是对 URL 稍作更改。

注意:希望您有测试这部分应用程序的测试!

【讨论】:

  • 这可能是我需要做的,但请参阅我上面的评论。恐怕有很多位置都引用了这个 URL。现在除了需要永远运行的手动测试计划外,没有其他测试。我完全意识到创建它们的重要性。这是我想要完成的事情之一。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-20
  • 2013-01-14
  • 2019-10-04
  • 2014-02-21
  • 1970-01-01
  • 2011-11-09
相关资源
最近更新 更多