这篇文章将为大家详细讲解有关使用HttpServletRequest对象的作用有哪些,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
专注于为中小企业提供成都网站制作、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业调兵山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。使用HttpServletRequest可以防止盗链行为,什么是盗链行为,比如说在一个别的网站上超链接,指向我们的网页中的某个数据,这样从他的网页上就可以直接进入到我的某个页面,无需从我的指定路口进入:
例如在一个简单的1.html文件中加入了我的【myservlet】web应用下的某个Servlet访问的超链接:
如果我的Servlet中代码仅仅为为访问输出数据,例如:
response.setContentType("text/html;charset=utf-8"); String data ="银魂真是一部好动漫"; response.getWriter().write(data);
那么点击这个超链接肯定会访问到这个Servlet:
那么我们如果不想被比人直接通过地址访问或者超链接访问怎么办呢:
记得学习HTTP协议中的“referer”请求头吗,这个请求头是告诉服务器该请求是从哪个URL发来的,那么我们就可以根据这个URL来判断是否是我们允许的请求地址来控制服务器是否将响应发送回去。
代码如下:
String reqUrl = request.getHeader("referer"); if(reqUrl==null || !reqUrl.startsWith("http://localhost:8080/myservlet/index.jsp")){ response.sendRedirect("/myservlet/index.jsp"); return ; } response.setContentType("text/html;charset=utf-8"); String data ="银魂真是一部好动漫"; response.getWriter().write(data);
在if判断中判断是否为空是防止直接将该web资源以输入URL地址直接访问,而另一个判断是防止访问该web资源不是从指定的地方来访问进来。
通过该代码,如果我们继续在1.html页面中点击超链接,则会自动跳转到我们设置好的index.jsp中:
而如果我们直接在浏览器中访问Servlet也是会跳到这个页面的。
只有在index.jsp中点击我们设置好的超链接,才能访问到:
接下来,我们来讨论的使用HttpServletRequest响应对象来获取表单数据,这是非常重要的知识点,表单提交的数据根据提交方式的不同会放置在不同位置,例如采用POST方式则会将这些数据放置在HTTP请求数据实体中,无论采用哪种方式,都是可以用响应对象的getParameter(String)等等方式获取,这点在《Servlet的学习(十)》中已经介绍。
现在,我们在需要新创建一个HTML页面编写我们的表单代码,和一个Servlet作为服务器端接收表单提交的数据,将Servlet命名为ServletRequest,而表单的传送服务器和选择HTTP方式如下: