问题标签 [servlet-dispatching]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
16 回答
421542 浏览

spring - 找不到带有 URI [/WEB-INF/pages/apiForm.jsp] 的 HTTP 请求的映射

我的处理程序转发到 internalresourceview 'apiForm' 但随后我收到错误 404 RequestURI=/WEB-INF/pages/apiForm.jsp。我确定 apiForm.jsp 位于 /WEB-INF/pages/

13:45:02,034调试 [org.springframework.web.servlet.view.JstlView] - 转发到 InternalResourceView 'apiForm' 中的资源 [/WEB-INF/pages/apiForm.jsp]
13:45:02,035调试 [org.springframework .web.servlet.DispatcherServlet] - 名为“testapp2”的 DispatcherServlet 确定 [/WEB-INF/pages/apiForm.jsp]
13:45:02,038调试 [org.springframework.web.servlet.DispatcherServlet] 的 Last-Modified 值 -在 getLastModified
13:45:02,038 DEBUG [org.springframework.web.servlet.DispatcherServlet]中找不到处理程序- DispatcherServlet 名称为 'testapp2' 处理请求 [/WEB-INF/pages/apiForm.jsp]
13:45:02,038警告 [org.springframework.web.servlet.PageNotFound] - 在 DispatcherServlet 中找不到带有 URI [/WEB-INF/pages/apiForm.jsp] 的 HTTP 请求的映射,名称为 'testapp2'
13:45:02,045调试 [org.springframework .web.servlet.DispatcherServlet] - 成功完成请求
13:45:02,048 DEBUG [org.springframework.web.servlet.DispatcherServlet] - 成功完成请求

这就是我的 dispatcher.xml 的样子..

0 投票
2 回答
425 浏览

jax-rs - 在 JAX-RS 中如何控制调度?

我正在用 RESTeasy 编写一个 RESTful Web 服务。这是 JAX-RS 的实现。您可以使用单个 @Path 注释来注释类或方法。正则表达式用于获取路径参数。例如

匹配所有以 "/foo" 开头、以 "/bar" 结尾以及介于两者之间的所有模式。介于两者之间的任何内容都分配给名为 varname 的参数。

一些框架(如 Django)有一个正则表达式和方法的列表,这些正则表达式和方法将按顺序尝试。例如 /john/q/smith、/john/{.*}/smith、/john/{.*}/{.*}。"/john/henry/smith" 匹配第二个和第三个,但第二个将被调度,因为它是找到的第一个匹配项。

这在 JAX-RS 中是否可行,或者类和方法没有固有的顺序?对于 /john/{.*}/{.*},您是否必须编写一个表示 /john/anything/anythingbutsmith 的正则表达式?每次更改其他文件时,您都必须更改它。

0 投票
3 回答
2594 浏览

java - 如何将不同的Servlet链接在一起?

首先,我没有使用 Spring MVC。:) :) 只是想先把它拿出来。现在我拥有的是调用不同 Servlet 的不同 JSP 页面。所有的部分单独工作都很好,但我需要把它们联系在一起。如果所有的jsp页面都发出GET请求,那会很容易,因为我只需通过type网址传递a,在我的servlet方面,我只需枚举所有参数,确定是哪个参数,type然后委托给正确的servlet . 但并不是所有的jsp页面都发出GET请求,有些是POST通过表单发出请求的。来看例子

但在B.jsp我会有这样的东西

我很难确定GenericServlet.java这需要去servletB

0 投票
8 回答
223161 浏览

java - Spring 中的 Dispatcher Servlet 是什么?

在这张图片中(我从这里得到的),HTTP请求向Dispatcher Servlet 发送了一些东西。

在此处输入图像描述

我的问题是Dispatcher Servlet做什么?

是否类似于从网页中获取信息并将其扔给控制器?

0 投票
2 回答
5214 浏览

jsp - 当在 JSF 中的映射中使用 FORWARD 时,Servlet 过滤器进入无限循环

我在 web.xml 中定义了一个过滤器,如下所示:-

在过滤器中我有以下代码: -

问题是,如果我使用 Topic.jsp 调用应用程序,它会像这样循环:-

我发现问题是映射中的 FORWARD 。如果删除此条目,它可以工作

请帮我解决这个无限循环交替.jsp 和 .jsf的难题:)

0 投票
2 回答
763 浏览

annotations - Servlet:在使用注释而不是 web.xml 时按名称将请求转发给 Servlet?

我有一个入口 servlet(称为 DispatcherServlet),它根据配置参数将 /* 处的所有传入 GET 和 POST 请求重定向到其他 servlet。为了将请求分派给其他 servlet,我使用它们的名称而不是路径,因为我的 DispatcherServlet 在侦听 /*.

“旧”方法是在 web.xml 描述符中为 servlet 命名:

之后,可以通过名称来寻址 servlet,例如,当使用RequestDispatcher. 我的 DispatcherServlet 中的代码如下所示:

RequestDispatcher dispatcher = getServletContext().getNamedDispatcher("MyServlet"); dispatcher.forward(请求,响应);

这完美地工作。但是,我想使用没有 web.xml 的“新”Servlet 3 注释,因此我这样做:

但是现在,getServletContext().getNamedDispatcher("MyServlet")在我的 DispatcherServlet 中返回null而不是适当的调度程序 for MyServlet,尽管我希望它@WebServlet(name="MyServlet")的行为相同<servlet-name>MyServlet</servlet-name>

我已经在 Tomcat 7 上对此进行了测试。这是因为在调用 DispatcherServlet 时尚未加载 MyServlet,因此不知道 MyServlet 的名称吗?@WebServlet(name="...")如果是这样,注释有什么意义;)

请不要回答“你为什么不使用过滤器?”之类的问题。等等。这更多是关于注释与web.xml的背景

提前致谢!

(ps.如果你找到更合适的,请更改标题;))

0 投票
1 回答
183 浏览

spring - spring mvc 注释许多 servlet 调度程序

嗨,我刚开始学习 Spring mvc,我使用 spring mvc @annotation,我有 3 个 servlet 调度程序(appservlet、admin、student):

web.xml

在对方法进行测试后,我希望重定向到另一个 servlet 调度程序,无论是 .admin 还是 .student。请问我该怎么做?

@控制器

问题ModelAndView返回(.jsp),但我想要另一个 servlet-dispatcher 的重定向!

0 投票
0 回答
53 浏览

java - 两个不同的dispatcherServlet的两个不同的authenticationManagers

在我的 web.xml 中,我有两个不同的调度程序 servlet,其中一个具有来自根上下文的所有 bean,第二个调度程序 servlet 具有另一个 authenticationManager。如前所述:

在 Web MVC 框架中,每个 DispatcherServlet 都有自己的 WebApplicationContext,它继承了根 WebApplicationContext 中已经定义的所有 bean。根 WebApplicationContext 应该包含应该在其他上下文和 Servlet 实例之间共享的所有基础结构 bean。这些继承的 bean 可以在特定于 servlet 的范围内被覆盖,并且您可以在给定的 Servlet 实例本地定义新的特定于范围的 bean。

所以我的新 authenticationManager 必须覆盖根上下文中的相同 bean。这个 authenticationManager 有另一个 daoAuthenticationProvider,它有另一个 userDetailsS​​ervice。但是,当我想从第二个 dispathcer servlet 的路径登录系统时,spring 使用 root 上下文中的 authenticationManager。

它是 web.xml:

它是 AdminConfig.class:

它是 WebSecurityConfigurerAdapter 实现,位于 ua.admin 包中,并具有新的 authenticationManager:

此类是根上下文中的 WebSecurityConfigurer 实现,它是另外两个类的基类:

有两个子类,它们位于根上下文中:

}

因此,adminDispatcher servlet 使用 ua.admin.AdminConfig,它依次扫描 ua.admin 包,并找到带有第二个 authenticationManager 实现的 WebSecurityConfigurerAdapter 实现。

/bulbular/ - 它是这个dispathcer servlet 的路径,也是WebSecurityConfigurerAdapter 实现中http 配置的路径。但是当我想从 /bulbular/login 页面登录时,spring 使用来自 SecurityConfig.class 的实现 - 来自根上下文的类。请帮忙!!!!

0 投票
1 回答
709 浏览

redirect - struts2 动作重定向到带有参数的 servlet

我想知道是否有办法将struts 2动作结果重定向到请求参数完整的servlet?

我想知道我是否可以类似https://struts.apache.org/docs/dispatcher-result.html

0 投票
1 回答
536 浏览

spring - 一个新的 Spring ServletDispatcher/ HandlerMapping 基于域名的重定向请求

我正在使用Spring + Gradle + PostgreSQL,我想写一个新的Spring ServletDispatcher或HandlerMapping(我不知道哪个是最好的选择)。

要求是:根据子域名将HTTP请求重定向到不同的控制器。

例如:

HTTP 请求到:
aaa.domain.com 将被重定向到 =>websites/aaa/
bbb.domain.com =>websites/bbb/

我怎么写?

我的 Gradle 依赖项:

非常感谢!

第一次更新

我对 Spring 进行了更深入的研究。现在我认为新的 HandlerMapping 可能是更好的选择。所以我想重写DefaultAnnotationHandlerMapping

它是spring-webmvc包的一个类,在DispatcherServlet.properties中定义如下:

我无法直接更改DispatcherServlet.properties。因此,如果我想用我的班级替换班级,我该怎么做?

我使用了很多 spring-boot-starter 而不是 XML 来定义我的项目。

我试图在application.properties中定义org.springframework.web.servlet.HandlerMapping但失败了。