【问题标题】:Servlet handles requests it is not supposed to handleServlet 处理不应处理的请求
【发布时间】:2018-10-17 05:50:15
【问题描述】:

我有一个非常简单的 servlet,它应该处理对我的应用程序根目录的请求。 它部署在 IBM Websphere 上。

基本上,每次用户请求我的应用时,我都想返回index.jsp

代码如下:

@WebServlet(urlPatterns = {"", "/"})
public class MainPageController extends HttpServlet {

    public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.getServletContext().getRequestDispatcher("/index.jsp").forward(req, resp);
    }
}

它可以正常工作(我正在获取 JSP),但是当返回 JSP 页面时 - JSP 请求 JS、CSS 文件和这些请求(例如 http://localhost:8888/myapp/js/main.js)被该 servlet 捕获。

为什么我的 servlet 应该只处理 / 也处理其他请求(如 /js/main.js)?

web.xml 没有什么特别之处。没有 servlet 映射,没有其他 servlet,没有欢迎文件列表声明。

【问题讨论】:

  • 你必须将你的 urlPattern 限制为urlPatterns = { "/myapp"} 或类似的东西,因为现在你只提供了“/” mns,每个请求都会被处理。
  • @Akshayjain myapp 是上下文根。你确定我需要将它添加到我的网址格式吗?
  • @Akshayjain 我知道我可以添加类似/home 的内容,然后它将为http://localhost:8888/myapp/home 触发,但这不是我的情况。我只需要请求我的应用程序的根目录。
  • 什么发布/维护级别?
  • 对于您的根页面,您不需要此 doget url 模式方法,它将自动搜索 index.jsp 页面或在 web.xml 中您可以添加此代码 <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> [stackoverflow.com/questions/14648167/…

标签: java jsp servlets websphere


【解决方案1】:

仅使用以下 urlPattern:

@WebServlet(urlPatterns = {""} )

它只会处理对您的应用上下文根目录的请求,而不是 css 或任何其他子文件夹。不要在其中添加任何带有/ 的模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-26
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多