HttpServletRequest基本概念总结


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

获得客户机信息:

       getRequestURL():返回客户机发出请求时的完整URL

       getRequestURI():返回请求行中的资源名部分------用于做权限限定,页面访问统计

       getQueryString():返回请求行中的参数部分

       getRemoteAddr():返回发出请求的客户机的IP地址

       getRemoteHost():返回发出请求的客户机的完整主机名

       getRemotePort():返回客户机所使用的网络端口号

       getLocalAddr():返回WEB服务器的IP地址

       getLocalName():返回WEB服务器的主机名

       getMethod():得到客户机的请求方式

获取头相关方法:      

getHeader():获取请求头和请求数据

getHeaders()

getHeaderNames():获取所有头名

获取提交的数据(一般都要先检查,再使用):

       getParameter(“username”)

       getParaterNames():获取提交的所有数据名,返回Enumeration

       getParameterValues():获取名称带过来的所有信息

       getParameterMap():

获取数据的两种方式:超链接、表单

URL后面如果跟了中文数据,要先编码再提交

提交数据的乱码问题:

get方式:String  username=request.getParameter(“username”);

              String name1=new String(username.getBytes(“iso-8859-1”),”UTF-8”);

Post方式:request.setCharacterEncoding(“UTF-8”);

注:超链接提交方式都是get方式

Request对象实现请求转发:请求转发指一个web资源收到客户端请求后,通知服务器去调用另外一个web资源进行处理;

请求转发的应用场景:MVC(mode—javabean  view—jsp   cotroller--servlet)设计模式

Request对象提供了一个getRequestDispatcher()方法,该方法返回一个RequestDispatcher对象,调用这个对象的forward方法可以实现请求转发。

Request对象同样也是一个域对象,开发人员通过request对象在实现转发时,把数据通过request对象带给其他web资源处理:

       setAttribute( ):

       getAttribute( );

       removeAttribute( );

getAttributeNames( );

String data=”aaaaa”;

Request.setAttribute(“data”,data);

Request.getRequestDispatcher(“/message.jsp”).forward(request,response);

注:跳转之后记得return

forward方法用于将请求转发到RequestDispatcher对象封装的资源。

如果在调用forward方法之前,在Servlet程序中写入的部分内容已经被真正的传送到了客户端,forward方法将抛出IllegalStateException异常;

如果在调用forward方法之前向Servlet引擎的缓冲区(response)中写入了内容,只要写入到缓冲区中的内容还没有被真正输出到客户端,forward方法就可以被正常执行,原来写入到输出缓冲区中的内容将被清空,但是,已写入到HttpServletResponse对象中的响应头字段信息保持有效。

include实现页面包含!

获取URL资源使用“/”,获取硬盘上的资源使用“\”;

防盗链:

       String referrer=request.getHeader(“referer”);

If(referrer==null|| !referer.startsWith(“http://localhost”)){

       Response.sendRedirct(“/day06/index.jsp”);

       Return;

       }

       String data=”凤姐日记

Response.getWriter().write(data);


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值