我试图在一些servlet和jsp之间添加一个过滤器,以便在显示jsp之前登录的用户。问题是,我试图检索浏览器的网址,这是转发到登录页面,但我找不到如何。我尝试在过滤器中获取URI,并将其作为请求的属性发送给Connexion servlet,但是,它不起作用。
package com.forum.filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class RestrictionFilter implements Filter {
public static final String CONNEXION = "/WEB-INF/connexion.jsp";
public static final String ATT_USER = "utilisateur";
public static final String CHEMIN = "chemin";
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String chemin = request.getRequestURI().substring(
request.getContextPath().length());
HttpSession session = request.getSession();
if (session.getAttribute(ATT_USER) == null) {
request.setAttribute(CHEMIN, chemin);
request.getRequestDispatcher(CONNEXION).forward(request, response);
} else {
chain.doFilter(request, response);
}
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
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);
}
}
}
<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>
从筛选器中可以看出,在将referrer URL分派到登录页面之前,您已经使用request.setattribute(CHEMIN,CHEMIN);
存储了该URL。在本例中,在登录jsp上(我假设是/WEB-INF/connexion.jsp),您可以将其作为表单隐藏字段插入:
<form ...>
<input type="hidden" name="referrer" value="<%= request.getAttribute("chemin") %>"/>
...
</form>
当表单提交时,您可以通过“referrer”请求参数检索referrer URL
本文向大家介绍javascript 获取浏览器版本,包括了javascript 获取浏览器版本的使用技巧和注意事项,需要的朋友参考一下 工作中需要通过JS去获取当前使用的浏览器的名字以及版本号,网上大堆资料都有一个关键词是 navigator.appName,但是这个方法获取的浏览器的名字只有两种要么是IE要么就是Netscap,倒是可以用来判断是否使用了IE,但是我想获取具体的浏览器产品名字比如
问题内容: 我需要一个命令行工具(或Javascript / PHP,但我认为命令行是一种方式)来进行渲染并获取URL的渲染内容,但是重要的是我不仅要渲染CSS / Html / images,还要渲染Javascript。 例如,诸如“ renderengine http://www.google.es outputfile.html”之类的命令和网络内容(已解析的html和javascript
我想获得由Selenium启动的浏览器的PID。有什么办法能搞定吗?
我已经开始学习Selenium WebDriver。我注意到的问题,如给定的网址不采取后火狐浏览器推出。请帮忙解决问题 WebDriver版本:2.53 Firefox:48.0 我看到下面的错误 组织。openqa。硒。火狐。NotConnectedException:45000毫秒后无法连接到端口7055上的主机127.0.0.1。Firefox控制台输出:,“syncGUID”:“0Sec7
问题内容: 我正在Windows 7上运行Selenium Standalone Server 2.25,并将Internet Explorer 9作为浏览器,对于需要打开浏览器的每个测试,都会遇到此错误: 我究竟做错了什么?完全相同的信息出现在Selenium Server控制台上。 问题答案: 为Internet Explorer中的所有区域启用“保护模式”设置后,错误消失(工具> Inter