web请求与响应

web请求与响应

  • Servlet的最主要作用就是出路客户端请求,并做出响应,web服务器在调用service方法时,会分别创建HttpServletRequest对象以及HttpServletResponse对象

  • HttpServletResponse对象

    • Http响应包括状态行,响应消息头,还有消息体

    • HttpServletResponse 定义了对这3个方面的发送操作的方法

      • 发送状态码相关方法

      • setStatus(int status) 设置状态码200

      • sendError(int sc) 设置错误码400

      • sendError(int sc,String message) 除了设置错误码,还可以设置信息

      • 发送响应消息体相关方法

      ​ 设置各种头字段

      • addHeader()

      • setHeader()

      • addIntHeader()

      • setIntHeader()

        设置字符集

      • setContentType()

      • setLocale()

      • setCharacterEncoding()

      • 发送响应消息体相关方法

      • getOutputStream() 字节数组,二进制流

      • getWrite() 字符

    • HttpServletResponse解决中文乱码

      //方法一
      //设置HttpServletResponse使用utf-8
      response.setCharacterEncoding("Utf-8");
      //通知浏览器使用utf-8编码
      response.setHeader("Content-Type" , "text/html,; charset=utf-8);
      
      
      //方法二
      //包含第一种方式的两种功能
      response.setContenType("text/html;charaset=utf-8");
      
      
    • 使用 Refresh 实现定时刷新页面

      //实现2秒后跳转到百度
      response.setHader("Refresh","2;URL=www.badu.com")
          
      //每隔3秒刷新当前页面
       response.setHeader("Refresh","3");
          
      
    • 实现请求重定向

      //请求重定向
      response.sendRedirect("/1.html")
      
  • HttpServletRequest对象

    • 使用Refer防止盗链
    
    	//获取请求头
    	String referer=request.getHeader("referer");
        //获取请求的路径
    	String sitePart="http://"+request.getServerName();
        //如果发出请求的路径是本机服务器的路径,则通过并下载
    	if(referer!=null && referer.startsWith(sitePart)){
    		out.println("正在处理您的下载请求");
    	}
        //如果发出的请求是其他人的,则跳转到本机的下载页面
    	else{
    		request.getRequestDispatcher("下载页面").forward(request, response);
    	}
    
    
    • HttpServletRequest解决中文乱码的问题

      //这种解码方式只适用于post方式,对get无效
      //设置request对象的解码方式
      request.setCharacterEncoding("Utf-8");
      
      //设置request对象的解码方式
      request.setCharacterEncoding("Utf-8");
      
      //对想获取的对象进行指定格式转换
      name = new String(name.getBytes("iso8859-1","utf-8"));
      
      
      
  • 通过request对象传递数据

    setAttribute()

    getAttribute()

    removeAttribute()

    getAttributeNames()

  • RequestDispatcher接口

    • 请求转发forword
    RequestDispatcher dispatcher = requeat.getRequestDistpatcher("/RequestServlet")
    dispatcher.forword(request,response);
    
    • 请求包含
    RequestDispatcher dispatcher = requeat.getRequestDistpatcher("/RequestServlet")
     dispatcher.include(request,response);
    

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值