Javaweb…网络项目

Servlet:第三篇【request】

2018-05-21  本文已影响24人  __y

1.HttpServletRequest基本概念

HttpServletRequest对象代表了客户端的请求,当客户端通过HTTP协议访问服务器的时候,HTTP请求头中的所有的信息都封装在这个对象中,开发人员可以通过这个对象的方法,获得客户端的信息

2.常用方法

获得浏览器的信息

获得请求头的信息

获得客户端提交的数据

3.应用

防盗链

比如:我现在想访问某些资源,就将链接复制给别人,别人黏贴就直接访问到了资源(没看我的首页广告,少了很多推广,血亏)

   //获得消息头
        String referer = req.getHeader("Referer");
        //如果不是从首页来或者从地址栏直接访问
        if(referer == null || !referer.contains("url")) {

            //返回首页
            resp.sendRedirect("/index.jsp");
        }
        //如果是从首页进来的
        resp.setContentType("text/html;charset=UTF-8");
        resp.getWriter().write("test");
image.png

正常访问


image.png image.png

当我们输入http://localhost:8080/webDemo/HelloServlet 回返回首页

image.png

超链接方式提交数据

常见的get方式提交数据的方式有使用超链接,sendRediret()

 <a href="<%=request.getContextPath()%>/servlet/HelloServlet?username = XXX">测试!</a>
//接受数据
String username = request.getParameter("username");

sendRedirect():

sendRedirect("servlet的地址?username = aaaa & password = xxxxx");

解决中文乱码问题

4.请求转发

 request.getRequestDispatcher("/servlet2").forward(req,resp);

我们知道ServlContext可以在servlet中实现通信,请求转发也可以。那么我们在开发的时候用那个呢?推荐后者,因为前者会耗费大量资源。后者的话会随着请求的结束而回收资源,后者在开发中使用是非常频繁的。

转发和重定向的区别

image.png

使用哪个?

1.转发:URL地址不变,访问Servlet处理业务逻辑,然后forward到JSP显示结果
2.重定向:方式表单重复提交,直接跳转到另一个JSP,地址栏改变。

上一篇 下一篇

猜你喜欢

热点阅读