在页面上显示后台回传的PDF文件

直接在页面上预览PDF,而不是下载,要下载的话,加上attachment;即可

    File file = new File(filePath, pdf);
        InputStream proxyIn = null;
        // 重置response对象中的缓冲区,该方法可以不写,但是你要保证response缓冲区没有其他数据,否则导出可能会出现问题,建议加上
        try {
            proxyIn = new FileInputStream(file);
            response.reset();
            String filename = "协议书.pdf";
            filename = encodeFilename(filename, request);
            // 设置输出文件为
            response.setHeader("Content-disposition", "filename=" + filename);
            response.setCharacterEncoding("utf-8");
            // 由于导出格式是excel的文件,设置导出文件的响应头部信息
            response.setContentType("application/pdf");
            // 用response对象获取输出流
            OutputStream os = response.getOutputStream();
            byte[] bos = new byte[proxyIn.available()];
            proxyIn.read(bos);
            os.write(bos);
            os.flush();
            // 关闭os
            if (os != null) {
                os.close();
            }
            if (null != proxyIn) {
                proxyIn.close();
            }

response.setHeader(“Content-disposition”, “attachment; filename=” + new String(wordName.getBytes(“gbk”), “iso8859-1”) + “.pdf”);
这个是设置pdf下载的,如果不需要下载。直接在网页中浏览就去掉attachment;
就可以在网页中浏览的
response.setHeader(“Content-disposition”, “filename=” + new String(wordName.getBytes(“gbk”), “iso8859-1”) + “.pdf”);
就是说你要在servlet或jsp中设置文件的头部信息

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android Studio页面的跳转与回传是指在Android应用程序中,从一个页面跳转到另一个页面,并在跳转后将数据传递回原始页面的过程。 在Android Studio中,可以使用Intent对象来实现页面之间的跳转。Intent对象包含要跳转到的页面的信息,例如页面的类名和要传递的数据。可以使用startActivity()方法来启动Intent对象,从而跳转到另一个页面。 在跳转后,可以使用setResult()方法将数据传递回原始页面。这个方法需要两个参数:一个是结果代码,用于指示操作是否成功完成;另一个是Intent对象,用于传递数据。然后,可以使用finish()方法关闭当前页面并返回原始页面。 总之,Android Studio页面的跳转与回传是非常重要的,可以帮助我们实现复杂的应用程序逻辑和用户交互。 ### 回答2: 在 Android 应用开发中,页面跳转和数据回传是非常常见的需求。Android Studio 是一款非常强大的开发工具,我们可以使用它来实现页面的跳转和数据的回传。 一、页面的跳转 1. 使用 Intent 实现页面跳转 在 Android 中,我们可以通过 Intent 来实现页面的跳转。Intent 是一个可以在应用程序组件之间传递数据的对象,它可以用来启动一个新的 Activity,或者启动一个 Service,还可以发送一个 Broadcast。 在跳转页面之前,我们需要在 AndroidManifest.xml 文件中添加目标页面的声明,例如: ``` <activity android:name=".SecondActivity"></activity> ``` 然后,我们可以在源页面中创建一个 Intent 对象,并使用 startActivity() 方法来启动目标页面,例如: ``` Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); ``` 这样就可以跳转到目标页面了。 2. 使用 startActivityForResult() 实现页面跳转并获取结果 有时候我们跳转到目标页面后需要获取一些结果,例如用户输入的一些信息。这时候我们可以使用 startActivityForResult() 方法来启动目标页面,并在目标页面中设置返回结果。在源页面中,我们可以重写 onActivityResult() 方法来获取返回结果。示例如下: 在源页面中跳转到目标页面: ``` Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, 1); ``` 在目标页面中设置返回结果: ``` Intent intent = new Intent(); intent.putExtra("data", "Hello, World!"); setResult(RESULT_OK, intent); finish(); ``` 在源页面中获取返回结果: ``` @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK && data != null) { String result = data.getStringExtra("data"); Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show(); } } ``` 二、数据的回传 有时候我们需要在目标页面中设置一些数据,并在返回源页面时将这些数据传回。这时候,我们可以使用 Intent 的 putExtra() 方法来设置数据,并在目标页面中调用 setResult() 方法来设置返回结果。 示例代码: 在目标页面中设置返回结果: ``` Intent intent = new Intent(); intent.putExtra("data", "Hello, World!"); setResult(RESULT_OK, intent); finish(); ``` 在源页面中获取返回结果: ``` @Override protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK && data != null) { String result = data.getStringExtra("data"); Toast.makeText(MainActivity.this, result, Toast.LENGTH_SHORT).show(); } } ``` 在本例中,我们将一个字符串作为数据传回到源页面,并在源页面中弹出一个 Toast 显示这个字符串。在实际开发中,我们可以使用类似的方式来传递其他类型的数据,并在源页面中进行处理。 ### 回答3: 在Android开发中,页面跳转和数据回传是非常常见的操作,尤其是在大型应用中,不同的页面之间需要进行相互的数据传递和页面跳转,为用户提供更好的体验。下面我将分享一下在Android Studio中实现页面跳转和回传的方法。 首先,在Android中页面跳转通常采用Intent进行实现,在Activity中可以使用startActivity()方法打开新的Activity。例如: ``` Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); ``` 这段代码将会启动SecondActivity的页面。 另外,我们还可以在Intent中传递数据,例如: ``` Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("name", "张三"); intent.putExtra("age", 20); startActivity(intent); ``` 在SecondActivity中接收数据,可以使用以下代码: ``` Intent intent = getIntent(); String name = intent.getStringExtra("name"); int age = intent.getIntExtra("age", 0); ``` 如果需要在页面之间进行回传数据,则需要使用startActivityForResult()方法启动新的Activity,并在新的Activity中使用setResult()方法设置要返回的数据。例如: ``` Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, 1); ``` 在SecondActivity中,可以使用以下代码设置要返回的数据并关闭页面: ``` Intent intent = new Intent(); intent.putExtra("result", "成功"); setResult(RESULT_OK, intent); finish(); ``` 回传数据的结果可以在MainActivity的onActivityResult()方法中进行接收,例如: ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { String result = data.getStringExtra("result"); Toast.makeText(this, result, Toast.LENGTH_SHORT).show(); } } ``` 以上就是在Android Studio中实现页面跳转和回传数据的方法。希望对大家有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值