摘要:浏览器的中文数据提交给服务器,以编码对中文编码,当我在读取数据的时候,拿到的当然是乱码。接下来使用方式传递中文数据,把表单的方式改成即可当我们访问的时候,又出现乱码了于是我按照上面的方式,把对象设置编码为试试结果还是乱码。
什么是HttpServletRequest
HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,开发人员通过这个对象的方法,可以获得客户这些信息。
简单来说,要得到浏览器信息,就找HttpServletRequest对象
HttpServletRequest常用方法 获得客户机【浏览器】信息getRequestURL方法返回客户端发出请求时的完整URL。
getRequestURI方法返回请求行中的资源名部分。
getQueryString 方法返回请求行中的参数部分。
getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。
getRemoteAddr方法返回发出请求的客户机的IP地址
getRemoteHost方法返回发出请求的客户机的完整主机名
getRemotePort方法返回客户机所使用的网络端口号
getLocalAddr方法返回WEB服务器的IP地址。
getLocalName方法返回WEB服务器的主机名
获得客户机请求头getHeader方法
getHeaders方法
getHeaderNames方法
获得客户机请求参数(客户端提交的数据)getParameter方法
getParameterValues(String name)方法
getParameterNames方法
getParameterMap方法
HttpServletRequest应用 防盗链什么是防盗链呢?比如:我现在有海贼王最新的资源,想要看海贼王的要在我的网页上看。现在别的网站的人看到我有海贼王的资源,想要把我的资源粘贴在他自己的网站上。这样我独家的资源就被一个CTRL+C和CTRL+V抢走了?而反盗链就是不能被他们CRTL+C和CRTL+V
下面我模拟一下场景。现在我首页先有一个超链接,指向着海贼王最新资源
当我点进去,就能看到海贼王最新资源了
其他的人可以通过复制粘贴我的地址,放到它们的网页上
这样我就划不来啦【我的广告你来没看呢!】。想要看我的资源,就必须经过我的首页点进去看。
想要实现这样的效果,就要获取Referer这个消息头,判断Referer是不是从我的首页来的。如果不是从我的首页来的,跳转回我的首页。
//获取到网页是从哪里来的 String referer = request.getHeader("Referer"); //如果不是从我的首页来或者从地址栏直接访问的, if ( referer == null || !referer.contains("localhost:8080/zhongfucheng/index.jsp") ) { //回到首页去 response.sendRedirect("/zhongfucheng/index.jsp"); return; } //能执行下面的语句,说明是从我的首页点击进来的,那没问题,照常显示 response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("路飞做了XXXXxxxxxxxxxxxxxxxx");
首先按正常预想的,别人从首页点击我的资源,访问我海贼王最新的资源
能够成功访问到资源
如果我在浏览器直接输入地址【此时Referer是为null的】,我们来看看
跳回到首页上,不能访问到海贼王资源
再试试,如果别人粘贴了我的资源url,在它的网页上挂了一个网址呢。
在别人网页上点击的时候
又跳回到了我的首页了。
表单提交数据【通过post方式提交数据】文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68442.html
摘要:前言由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 前言 由于写的文章已经是有点多了,为了自己和大家的检索方便,于是我就做了这么一个博客导航。 由于更新比较频繁,因此隔一段时间才会更新目录导航哦~想要获取最新原创的技术文章欢迎关注我的公众号:Java3y Java3y文章目录导航 Java基础 泛型就这么简单 注解就这么简单 Druid数据库连接池...
摘要:在使用上述模板,默认从下加载。介绍是现代化服务器端的模板引擎,不同与其它几种模板的是的语法更加接近,并且具有很高的扩展性。特点支持无网络环境下运行,由于它支持原型,然后在标签里增加额外的属性来达到模板数据的展示方式。 SpringBoot 是为了简化 Spring 应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,...
什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用${}括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的显示! 为什么要使用EL表达式? 为什么要使用EL表达式,我们先来看一下没有EL表达式是怎么样读取对象数据的吧! 在1.jsp中设置了Session属性 向session设置一个属性 在2...
阅读 2559·2023-04-25 20:50
阅读 3902·2023-04-25 18:45
阅读 2189·2021-11-17 17:00
阅读 3299·2021-10-08 10:05
阅读 3046·2019-08-30 15:55
阅读 3473·2019-08-30 15:44
阅读 2337·2019-08-29 13:51
阅读 1087·2019-08-29 12:47