Jsp 获取浏览器的url

Jsp 获取浏览器的url,jsp,jakarta-ee,servlets,servlet-filters,Jsp,Jakarta Ee,Servlets,Servlet Filters,我试图在一些servlet和jsp之间为登录的用户添加一个过滤器,然后再显示jsp。问题是,我正在尝试检索转发到登录页面的浏览器URL,但找不到如何检索。我尝试在过滤器中获取URI,并将其作为请求的属性发送到连接servlet,但它不起作用 mydoFilter() 我的连接servlet package com.forum.servlets; import java.io.IOException; import javax.servlet.ServletException; import

我试图在一些servlet和jsp之间为登录的用户添加一个过滤器,然后再显示jsp。问题是,我正在尝试检索转发到登录页面的浏览器URL,但找不到如何检索。我尝试在过滤器中获取URI,并将其作为请求的属性发送到连接servlet,但它不起作用

mydoFilter()

我的连接servlet

package com.forum.servlets;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.forum.beans.Utilisateur;
import com.forum.form.ConnexionForm;

public class Connexion extends HttpServlet {
    public static final String ATT_USER = "utilisateur";
    public static final String ATT_FORM = "form";
    public static final String VUE = "/WEB-INF/connexion.jsp";

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        this.getServletContext().getRequestDispatcher(VUE)
                .forward(request, response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        ConnexionForm form = new ConnexionForm();
        String chemin = (String) request.getAttribute("chemin");

        Utilisateur utilisateur = form.connecterUtilisateur(request);

        HttpSession session = request.getSession();

        if (form.getErreurs().isEmpty()) {
            session.setAttribute(ATT_USER, utilisateur);
            if (chemin == null || chemin.startsWith("/connexion"))
                response.sendRedirect("/projetForum/forum");
            else
                response.sendRedirect("/projetForum" + chemin);
        } else {
            request.setAttribute(ATT_USER, null);
            request.setAttribute(ATT_FORM, form);
            this.getServletContext().getRequestDispatcher(VUE)
                    .forward(request, response);
        }
    }
}
web.xml的一些标记

 <servlet>
 <servlet-name>Connexion</servlet-name>
 <servlet-class>com.forum.servlets.Connexion</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>Connexion</servlet-name>
 <url-pattern>/connexion</url-pattern>
</servlet-mapping>
<filter>
     <filter-name>RestrictionFilter</filter-name>
     <filter-class>com.forum.filters.RestrictionFilter</filter-class>
</filter>
<filter-mapping>
     <filter-name>RestrictionFilter</filter-name>
     <servlet-name>Nouveau</servlet-name>
     <servlet-name>Profil</servlet-name>
     <servlet-name>Editer</servlet-name>
     <servlet-name>Repondre</servlet-name>
</filter-mapping>

连接
com.forum.servlets.Connexion
连接
/连接
限流过滤器
com.forum.filters.RestrictionFilter
限流过滤器
新潮
Profil
编辑
报告

我从您的过滤器中看到,您已经使用
request.setAttribute(CHEMIN,CHEMIN)存储了推荐人URL,然后将其发送到登录页面。在本例中,在登录jsp时(我假设这是/WEB-INF/connexion.jsp),您可以将其作为表单隐藏字段插入:

<form ...>
  <input type="hidden" name="referrer" value="<%= request.getAttribute("chemin") %>"/>
   ...
</form>

...

提交表单时,您可以通过“referer”请求参数检索referer URL

我无法理解您的问题:我正在尝试检索他被转发到登录页面的浏览器的URL,但我刚刚才找到任何地方哦,对不起,我已经更新了我的帖子。我希望这更容易理解。我已经测试了设置referre URL的方式,我的答案没有有效更新,以使用
。我认为,如果您使用请求调度器,则EL不会正确评估
<form ...>
  <input type="hidden" name="referrer" value="<%= request.getAttribute("chemin") %>"/>
   ...
</form>