HttpServletResponse应用

web服务器接收到http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表响应的一个HttpServletResponse。

  • 如果要获取客户请求发过来的参数,找HttpServletRequest
  • 如果要给客户端响应一些信息,找HttpServletResponse

一,下载文件(以图片为例)

1.创建一个maven项目(我这里将其命名为response)

在这里插入图片描述
2.在main中创建两个文件夹java和resourses在这里插入图片描述
在这里插入图片描述
3.给两个文件添加属性
在这里插入图片描述

在这里插入图片描述
3.在resoures中放个图片(一会用于下载)
复制图片,点击resoures粘贴
在这里插入图片描述

4.将web.xml中文件改为下面内容在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="4.0"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
          http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         metadata-complete="true">
  
</web-app>

5.在java文件夹中建个包(命名根据自己情况进行)在这里插入图片描述
6.再在包中建个文件,并将下面代码写入其中在这里插入图片描述

public class FileSrtvlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //获取下载文件的路径
        String realPath = "C:\\Users\\86147\\IdeaProjects\\helloServlet\\response\\target\\classes\\皮卡丘.jpg";
        System.out.println("下载文件的路径为:"+realPath);
        //下载的文件名
        String filename = realPath.substring(realPath.lastIndexOf("\\")+1);
        //设置想办法让浏览器能够支持(Content-Disposition)下载我们需要的东西,中文文件名URLEncoder.encode编码,否则可能会乱码
        resp.setHeader("Content-Disposition","attachment;filename="+ URLEncoder.encode(filename,"UTF-8"));
        //获取下载文件的输入流
        FileInputStream in = new FileInputStream(realPath);
        //创建缓冲区
        int len=0;
        byte[] buffer =  new byte[1024];
        //获取OutputStream流
        ServletOutputStream out = resp.getOutputStream();
        //将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区的数据传输给客户端
        while ((len=in.read(buffer))>0){
            out.write(buffer,0,len);
        }

        in.close();
        out.close();
    }

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

注意:图片路径获取方式在这里插入图片描述
在target文件中找到该图片,若没有target文件点击右上角运行tomcat就会出现
在这里插入图片描述

7.将下面代码加入到xml文件中在这里插入图片描述

	<servlet>
        <servlet-name>filedown</servlet-name>
        <servlet-class>com.yuan.servlet.FileSrtvlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>filedown</servlet-name>
        <url-pattern>/down</url-pattern>
    </servlet-mapping>

8.调试tomcat在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
找到对应的添加上在这里插入图片描述
在这里插入图片描述

注意:若找不到对应的,可以退出点击这个图标后再次打开就有了

在这里插入图片描述
9.运行tomcat在这里插入图片描述

弹出界面在这里插入图片描述
访问/down在这里插入图片描述

成功弹出下载界面

二,验证码功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值