FilterChain chain) throws IOException
常见协议: HTTP协议,scoket: TPC/UDP ,HTTPS协议SSL+安适认证证书,FTP
HTTP协议:超文本传输协议,用来客户端与处事器之间进行数据传输格局的协议,撑持无连接也撑持无状态
无连接
代表的是一次连接只能措置惩罚惩罚一次请求.
无状态
不会记录事务,代表不生存状态,HTTP协议自成不同错误客户端和处事器的状态进行生存,也就是说请求和响应不做长期化措置惩罚惩罚
同步:梗阻,HTTP成立连接口只能措置惩罚惩罚一次请求,按挨次执行,当当前请求没有结束,其他不能
再次发送请求
异步:不会期待处事器做出相应。发送完请求后就结束
2.时间戳:版本更新,解决浏览器缓存
缓存:200 from memory cache 不访谒处事器,直接读取缓存 ,从内存傍边读取
200 from disk cache 不访谒处事器,直接读取缓存,,从磁盘傍边读取
304 访谒处事器,发明数据没有更新,处事器返回次状态码,然后再从缓存中读取数据
3.防盗链
Java代码手段防备犯警请求,思路如下:
1.获取到当前请求的域名,如
2.获取到请求资源的上一个地点
3.判断上一个地点是否为空,如果为空代表的是直接访谒的资源,犯警
还有一种情况就是B项目访谒时上一个地点 不是资源地址地点,犯警
新建一个过滤器,实现逻辑,如果犯警例显示图像,拦截return ,否则放行
public class ImageFilter implements Filter{ @Override public void destroy() { System.out.println("过滤器销毁"); } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("dofilter"); //获取到当前请求的连接地点和上一个发送请求的地点 HttpServletRequest httprequest=(HttpServletRequest)request; HttpServletResponse httpresponse=(HttpServletResponse)response; //获取上一个发送请求的连接 String referer = httprequest.getHeader("Referer"); String serverName = httprequest.getServerName(); System.out.println(referer+"\t"+serverName); if(referer==null||!referer.contains(serverName)) { request.getRequestDispatcher("/img/ffqq.png").forward(request, response); return; } //放行 chain.doFilter(request, response); } @Override public void init(FilterConfig arg0) throws ServletException { System.out.println("过滤器启动"); } } web.xml配置过滤地点: <filter> <filter-name>imgFilter</filter-name> <filter-class>com.wdksoft.ImageFilter</filter-class> </filter> <filter-mapping> <filter-name>imgFilter</filter-name> <url-pattern>/img/*</url-pattern> </filter-mapping>
效果如下:
正常访谒
犯警访谒
4.重定向机制
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30578.html