response应用

Response 介绍及应用。 ▷ 问题2:在重定向的代码中,`/request-demo`是固定编码的,如果后期通过Tomcat插件配置了项目的访问路径,那么所有需要重定向的地方都需要重新修改,该如何优化?▷ 问题1:请求转发的时候路径上没有加`/request-demo`而重定向加了,那么到底什么时候需要加,什么时候不需要加呢?○ 资源A现在无法处理该请求,就会给浏览器响应一个302的状态码+location的一个访问资源B的路径。重新启动访问测试,功能依然能够实现,此时就可以动态获取项目访问的虚拟路径,从而降低代码的耦合度。 阅读详情

下载文件

package com.mrli;

import jakarta.servlet.ServletException;
import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.w3c.dom.ls.LSOutput;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;

public class responseServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	//获取需要下载的文件绝对路径
        String realpath="D:\\idea\\javaweb-maven-01\\response\\src\\main\\resources\\img.png";
        System.out.println(realpath);
        //需要下载的文件名
        String filename=realpath.substring(realpath.lastIndexOf("\\")+1);
        //设置response头信息
        resp.setHeader("Content-Dispostion","attachment;filename="+ URLEncoder.encode(filename,"UTF-8"));
        //获取文件输入流
        FileInputStream fis = new FileInputStream(realpath);
        //创建缓冲区
        int len=0;
        byte[] buffer=new byte[1024];
        //获取响应输出流
        ServletOutputStream outputStream = resp.getOutputStream();
        while((len=fis.read(buffer))!=-1){
        	//输出文件
            outputStream.write(buffer,0,len);
        }
        
		//关闭资源
        fis.close();
        outputStream.close();
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

实现验证码功能

package com.mrli;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;

public class imageServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setHeader("refresh","3");//告诉浏览器每三秒刷新一次
        BufferedImage bufferedImage = new BufferedImage(100, 30, BufferedImage.TYPE_INT_RGB);//在内存中创建一个图片

        Graphics2D graphics = (Graphics2D) bufferedImage.getGraphics();//获得图片的笔

        graphics.setColor(Color.white);//设置画笔颜色
        graphics.fillRect(0,0,100,30);//填充一个举行,从(x,y)开始填充,填充一个widdth*height的矩形

        graphics.setColor(Color.BLUE);//设置画笔颜色
        graphics.setFont(new Font(null,Font.BOLD,25));//设置画笔的字体
        graphics.drawString(randomNum(8),0,30);//画一个字符串


        resp.setContentType("image/jpg");//设置响应类型为jpg格式的image

        //告诉浏览器不要缓存
        resp.setDateHeader("expires",-1);
        resp.setHeader("Cache-Control","no-cache");
        resp.setHeader("Pragma","no-cache");

        //将图片写入到响应对象
        ImageIO.write(bufferedImage,"jpg",resp.getOutputStream());
    }

    //获取n长度的随机数
    private String randomNum(int n){
        Random random =new Random();
        String str = "";
        for (int i = 0; i < n; i++) {
             str+= random.nextInt(10) + "";
        }
        return str;
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

重定向

index.jsp表单提交之后到项目目录下的/login下处理请求

<html>
<body>
<h2>Hello World!</h2>

<form action="${pageContext.request.contextPath}/login" method="get">
    用户名:<input type="text" name="username">
    密码:<input type="password" name="password">
    <input type="submit">
</form>
</body>
</html>

处理请求的文件

package com.mrli;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;

public class loginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String username=req.getParameter("username");//getParameter获取请求中的一个参数
        String password=req.getParameter("password");

        System.out.println(username+"---->"+password);

		//sendRedirect重定向做的事情就是下面这两句
		//resp.setHeader("Location","/img");
        //resp.setStatus(302);
        resp.sendRedirect("/r/img");//sendRedirect重定向
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

面试题:请你说说重定向和转发的区别?
相同点

  • 都会跳转页面

不同点

  • 转发不会改变url,307
  • 重定向会改变url,302
Web应用安全之Response Header里的敏感信息 目录 Web应用安全之Response Header 前言 1.1  那些敏感的header 1.2 删除敏感的header 1.2.1 删除server字段 1.2.2 删除X-Powered-By字段 1.2.3 删除 X-AspNet-Version字段 1.2.4 删除X-AspNetMvc-Version     前言 在Kali Linux(http:/ 阅读详情

相关推荐

request和response的区别与应用

request和response的区别与应用

花与树 2020

response和其一些应用

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象和代表响应的response对象。responseHttpServletResponse对象中封装了向客户端发送数据、发送响应头、发送响应状态码的方法。字节流可以写任何东西,字符流只能写字符数据response的几个应用1.向客户端输出中文数据&lt;meta&gt;标签也可以模仿一个http响应头ou...

绿芽在山顶 506

WPF插件架构-如何动态加载封装好的第三方DLL的界面

插件架构中如何自动加载第三方DLL中的UI界面

lg24k的博客 1882

【3.4扩展阅读】调用 Flask 的 make_response创建的 response对象在 Web 应用中起着什么作用?

打包数据:将内容、状态码和头部信息组合成一个完整的响应对象。发送结果:将响应对象发送给客户端,完成一次请求和响应的过程。通过,开发者可以更灵活地控制返回给用户的内容和相关信息,实现各种 Web 应用的功能。

Flask Web 467

传感器模块的电路艺术:从引脚定义到系统集成的设计哲学

本文深入探讨传感器模块的电路设计艺术,从引脚定义到系统集成的完整设计哲学。重点解析电源管理、信号处理及I2C通信协议等核心电路原理,分享多模块协同中的电源架构、信号完整性和接地策略,为硬件工程师提供实用的系统级设计思维与实战案例。

o1p2q3r的博客 223

银河麒麟V10开机卡Logo?别慌,手把手教你进单用户模式修复(附详细命令)

本文详细解析银河麒麟V10操作系统启动时卡Logo的故障原因,并提供进入单用户模式的完整解决方案。通过GRUB引导菜单修改启动参数,执行文件系统检查、图形服务修复等关键命令,帮助用户快速恢复系统正常运行,适用于运维人员和普通用户应对紧急启动问题。

weixin_30522183的博客 392

response是什么意思中文_Servlet第三篇「request和response简介、response的常见应用」...

response、request对象Tomcat收到客户端的http请求,会针对每一次请求,分别创建一个代表请求的request对象、和代表响应的response对象既然request对象代表http请求,那么我们获取浏览器提交过来的数据,找request对象即可。response对象代表http响应,那么我们向浏览器输出数据,找response对象即可。什么是HttpServletRespons...

weixin_33438741的博客 582

别再只会用Kriging了!用Python+GeoPandas手把手实现IDW插值(附完整代码与可视化)

本文详细介绍了如何使用Python和GeoPandas实现反距离加权插值(IDW),包括核心算法、参数调优和可视化技巧。通过完整代码示例,帮助读者掌握这一空间数据分析技术,适用于环境监测、气象预报等多个领域,提升数据处理效率和灵活性。

weixin_30872157的博客 225

[ASP.NET] Request和Response的应用

Request和Response的应用。

Stephanie翟倩 634

基于树莓派5的AR头显开发:从硬件选型到Unity整合全解析

增强现实(AR)技术通过将虚拟信息叠加到真实世界,为用户提供沉浸式交互体验。其核心原理依赖于计算机视觉进行环境感知与空间定位,并结合实时3D渲染实现虚实融合。在工程实践中,嵌入式平台因其低成本、低功耗特性,成为探索AR应用边界的重要载体。本项目以树莓派5为核心,通过集成OpenCV进行ArUco标记识别实现精准空间定位,并利用MediaPipe完成手势交互,最终在Unity引擎中完成虚实场景的实时渲染与融合,为开发者提供了一个完整的、可亲手实践的AR系统开发方案。

weixin_32430941的博客 254

无人车路径规划方法汇总

无人车路径规划方法汇总

weixin_44380244的博客 2558

Javaweb — response应用

学习了javaweb中的response ,写篇博客记录一下 文章目录前言一、用于下载二、验证码生成三、重定向 前言 一、用于下载 public class FileServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.要获取

qq_53755216的博客 250

Python中的join函数的用法

从语法、实例、应用三方面详尽地介绍join函数

阿黎逸阳的博客 2万+

response高级应用

response主要功能1。设置头信息:最有用的一个头信息:refresh:刷新// 一秒钟刷新一次response.setheader("refresh","1");//俩秒钟后跳转到其他页面上response.setheader("refresh","2;URL=页面名称");2。response跳转-重定向response.sendRedirect(跳转路径);此语句执行后,页面地址也变

报喜鸟 564

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Response常见应用

1. 客户机服务端口是随机的 package com.hsp; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; i...

weixin_30919429的博客 214

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

servlet中的 response request简单应用

l response、request对象 l Tip:简介 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。 request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。 ...

adxj46627377的博客 159

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

response的应用

xianrenqiu1234的博客 237

Request和Response应用

然后,/para是servlet页面的访问路径,因为form表单要把地址提交到/para,他来请求username和password这个name属性,来获取输入框输入的参数,点击提交的那一刻,后端就拿到了这个参数,并把内容响应到浏览器,或者也可以打印到控制台。设置响应状态和编码:使用ServletResponse的setStatus()方法可以设置响应状态码,使用setCharacterEncoding()方法可以设置响应编码。要注意action的路径,我这里浏览器默认路径是。请求的servlet。

m0_71461928的博客 619

Servlet开发(二)Response对象常见应用

(WEB学习笔记 一)Response对象常见应用 1、向客户端输出中文数据(如何解决向客户端输出中文数据乱码问题,分别以OutputStream和PrintWriter输出 2、完成文件的下载 3、随机生成验证码(验证图片) 4、控制浏览器 定时刷新

Elenal的博客 2092

response对象的组成及应用

web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。request和response对象既然代表请求与响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了,要向客户机输出数据,只需要找response对象就行了。 HttpServletResponse对象服务器的响应。这个对象中封装了向客户端发

lapland的博客 6650

Servlet第三篇【request和response简介、response的常见应用】

http响应由状态行、实体内容、消息头、一个空行组成。HttpServletResponse对象就封装了http响应的信息。

ldxxxxll的博客 1198

Web应用使用response对象

response对象代表服务器对客户端的响应,大部分时候使用更简单的响应对象out就可以了,但out对象用于输出字符流,无法输出非字符流,如果要在JSP页面中生成一幅位图、或者一个PDF文档,就只能使用response作为响应输出。 response可以用于重定...

chishuangxi7475的博客 257

response应用案例

    response应用案例     案例一:定时刷新网页     应用场景:登陆、注销、提示xxx秒后,将会跳转xxx页面。网页数据,定时更新   package cn.itcast.day06.servlet; import java.io.IOException; import java.io.PrintWriter; import ja...

243

Response.WriteFile的应用

1.可以读取文件,将文件在页面显示。                                                                                                                                                                                    

canduecho的专栏 1819
上一篇: ServletContext对象
下一篇: JSP页面${pageContext.request.contextPath}出现乱码问题
小小代码熊
博客等级 码龄7年 5粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值