首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将servlet请求重定向到另一个servlet

将servlet请求重定向到另一个servlet
EN

Stack Overflow用户
提问于 2018-04-26 09:14:57
回答 3查看 800关注 0票数 1

在我们的应用程序中,我们通过邮件触发所有通知。

所有模板都有非sso链接>/Userlogin?param1=param2value¶m2=param2value">Link来访问应用程序。

我需要修改所有模板中的这个链接

/Userloginsso?param1=param2value¶m2=param2value">Link访问应用程序

由于有许多模板,需要大量的手工工作,我们是否可以将Userlogin的请求重定向到Userloginsso。我们可以在web.xml中进行的任何配置吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-04-26 09:32:40

考虑到您在web.xml中有一个用户登录的映射,如下所示:

代码语言:javascript
运行
复制
<web-app>
    <servlet>
         <servlet-name>Userlogin</servlet-name>
         <servlet-path>com.something.Userlogin</servlet-path>
    </servlet>
    <servlet-mapping>
         <servlet-name>Userlogin</servlet-name>
         <url-pattern>/Userlogin</url-pattern>
    </servlet-mapping>
</web-app>

将现有映射修改为:

代码语言:javascript
运行
复制
<web-app>
    <servlet>
         <servlet-name>Userloginsso</servlet-name>
         <servlet-path>com.something.Userloginsso</servlet-path>
    </servlet>
    <servlet-mapping>
         <servlet-name>Userloginsso</servlet-name>
         <url-pattern>/Userlogin</url-pattern>
    </servlet-mapping>
</web-app>

现在,所有对Userlogin的调用都将重定向到Userloginsso servlet。

票数 1
EN

Stack Overflow用户

发布于 2018-04-26 09:31:53

您可以使用以下方法在UserLogin servlet中进行简单的重定向:

代码语言:javascript
运行
复制
public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException {
    String param1 = request.getParameter ("param1");
    String param2 = request.getParameter ("param2");
    // other parameters 

    // Build the new url: if too much parameters, prefer using a StringBuilder over String concatenation for better performances 
    String baseUrl = request.getContextPath () + "/Userloginsso?param1=" + param1 + "&param2=" + param2;

    String encodedUrl = response.encodeRedirectURL (baseUrl);

    response.sendRedirect (encodedUrl);
}
票数 1
EN

Stack Overflow用户

发布于 2018-04-26 09:44:36

如果我正确地理解了你的问题,你可以使用过滤器这里的例子,获取网址,并在你的应用程序中找到其他地方。或者和url重写库,比如我们这一个

如果仍然需要servlet,可以使用ProxyServlet。已经有许多很好的实现。

示例:

具有所有功能的复杂代理servlet

简单代理servlet,功能有限

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50039196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档