今天我来分享一下,request.getHeader("Referer")获取上次访问的URL链接,在什么情况下他会出现问题!
我在某些页面中,有某几个按钮,分别用来跳转到action.do?method=m 但是,我是用
warpLoaction("url");这个来链接过去的,结果,我在火狐浏览器中,可以正确的
获取上次访问的页面,在IE6下却获取不到。后来去网上百度了一下,看到了一哥门的评
说, request.getHeader("Referer")要走HTTP协议才有值,也就是说要通过<a href="url" />
标记,才能获取到值。当然通过表单提交的也可以。而通过location或是<a href="javascript:window.location=''" />是得不到值的,当时就马上一行动。果然是那个原因。嘿嘿。
另一个:乱码问题,如果request.getHeader("Referer")链接中带有中文参数,那么在经过跳转的时候,就会出现乱码,这个时候需要用到String keyWords = new String(str.getBytes("ISO-8859-1"),"GBK");来进行编码转换!可是如果不是通过request.getHeader("Referer")链接链过来的也用keyWords = new String(str.getBytes("ISO-8859-1"),"GBK");来进行编码转换的话,就会出现乱码,我在这里分享一下我是怎么解决的,首先,我用str.matches( "[\\u4E00-\\u9FA5]+")来判断这个字符串中是否有中文,如果没有中文,则为乱码或者数字或者英文或者其他符号,那么我们则进行编码转换,如果是中文,则不进行编码转换!
分享到:
相关推荐
今天我来分享一下,request.getHeader(“Referer”)获取上次访问的URL链接,在什么情况下他会出现问题! 我在某些页面中,有某几个按钮,分别用来跳转到action.do?method=m 但是,我是用 warpLoaction(”url”);这...
总的来说,"request.getHeader("referer")"在Java Web开发中是实现防盗链功能的重要工具,通过检查来源URL,服务器可以有效控制资源的访问权限,保障网站权益。但同时,开发者也需要考虑到隐私保护和安全策略的平衡...
`request.getHeader("Referer")` 是在Java Servlet或JSP中获取HTTP请求头中的`Referer`字段的方法,这个字段通常用于追踪用户访问来源。`Referer`字段包含的是用户先前访问页面的URL,这对于分析用户行为、防止跨站...
- `request.getHeader("Referer")`: 获取上一个页面的URL。 - `request.getHeader("Accept-Language")`: 获取客户端可接受的语言。 - `request.getHeader("Accept-Encoding")`: 获取客户端支持的编码方式。 - `...
String referer = request.getHeader("referer"); String acceptLanguage = request.getHeader("accept-language"); String contentType = request.getHeader("content-type"); String acceptEncoding = request....
- **`request.getHeader("Referer")`**: 获取请求头中的“Referer”字段。 通过这些信息,开发人员可以详细了解客户端与服务器之间的通信细节,这对于调试和优化Nginx配置非常有帮助。 综上所述,通过合理配置...
referer.startsWith("http://yourdomain.com")) { response.setStatus(403); // 设置状态码为403,禁止访问 } else { // 正常返回图片 %> <img src="path/to/image.jpg"> } %> ``` 2. Cookie验证:为合法用户...
if(null==reque.getHeader("Referer")){ request.setAttribute("message", "你进行了不合法的操作!!!"); request.getRequestDispatcher("error.jsp").forward(request, response); 里面有更详细的代码...
referer.startsWith("http://yourdomain.com")) { response.sendError(HttpServletResponse.SC_FORBIDDEN, "非法引用"); return; } // 请求转发 RequestDispatcher dispatcher = request.getRequestDispatcher...
referer = referer.substring(referer.indexOf("://") + 3); } // 如 baidu.com/abc.html // ... } } } ``` 总结:Shiro 开启 CSRF 表单防护可以有效地防御 CSRF 攻击,通过验证 Referer 字段来检查请求的...
RequestDispatcher dispatcher = request.getRequestDispatcher(request.getHeader("referer")); dispatcher.forward(request, response); ``` 需要注意的是,这些方法依赖于浏览器发送`HTTP_REFERER`头,但并非...
- `<%=request.getHeader("referer") %>`获取上一页(action)的完整路径。 - EL表达式`${header['Referer']}`同样获取上一页路径,但可能不是当前地址栏的路径。 - 使用`request.getRequestURI()`在Servlet中...
在登录页面可以通过`request.getHeader("Referer")`获取当前请求的来源页面URL。 ```java String lastUrl = request.getHeader("Referer"); ``` 2. **记录来源页面地址**: 可以将`lastUrl`作为隐藏参数传递...
= null && referer.matches("http(s)?://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?")) { response.setStatus(301); response.setHeader("Location", "redirect-url"); response.setHeader("Connection", "close"); } ...
String url=request.getHeader(Referer); 2、获取本网页的URL: String url=request.getScheme()+://+ request.getServerName()+request.getRequestURI(); 您可能感兴趣的文章:jsp获取url路径的方法分析在jsp页面...
`getHeader("referer")` 方法则可以获取到客户端发起请求前的页面URL,即Referer头信息,这在追踪用户来源时很有用。 2. **请求转发和重定向** - **请求转发(RequestDispatcher)**:使用 `request....
String referer = request.getHeader("Referer"); if (referer == null) { return false; // 如果没有Referer,可能是一个直接的链接,拒绝 } try { URL url = new URL(referer); // 检查域名是否匹配,例如...
- 可以通过`request.getHeader("referer")`来获取请求当前页面的前一个页面的URL地址。 7. **防止页面缓存:** - 为了防止浏览器缓存页面,可以使用以下代码: ```java response.setHeader("Expires", "0"); ...
可以通过`request.getHeader("referer")`来获取请求页面的URL,这在跟踪用户来源或进行日志记录时非常有用。 ### 7. 设置页面过期时间 要使页面在浏览器中不过期,可以使用`response.setHeader("Expires","0")`来...
String refer = req.getHeader("Referer"); // 获取 Referer if (refer != null && !"".equals(refer) && !refer.contains(req.getServerName())) { System.out.println("盗链来自:" + req.getRemoteAddr()); ...