java web文件下载通用controller

话不多说,直接上代码,需要的jar包自己找大笑


package com.heshao.spr.controller;


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;


/**

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java可以使用一些框架来实现Web RPC,比如Spring框架的Spring Boot,以及基于Netty的gRPC框架等。下面简单介绍一下这两种框架的使用。 1. Spring Boot Spring Boot是一个基于Spring框架的开发框架,它提供了很多便捷的功能,使得开发者可以快速构建Web应用程序。在Spring Boot中,我们可以使用Spring Web MVC来实现Web RPC,具体步骤如下: - 引入Spring Boot Web依赖 在pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` - 创建Web ControllerJava代码中创建一个Web Controller,例如: ```java @RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "Hello, world!"; } } ``` - 启动应用程序 在Java代码中启动Spring Boot应用程序,例如: ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` - 测试Web RPC 使用浏览器或者curl等工具访问http://localhost:8080/hello,应该可以看到返回的字符串Hello, world!。 2. gRPC gRPC是一个高性能、开源、通用的RPC框架,它支持多种编程语言和平台。在Java中,我们可以使用gRPC提供的Java API来实现Web RPC,具体步骤如下: - 定义RPC服务 在protobuf文件中定义RPC服务,例如: ```protobuf syntax = "proto3"; package com.example.grpc; service HelloService { rpc sayHello (HelloRequest) returns (HelloResponse) {} } message HelloRequest { string name = 1; } message HelloResponse { string message = 1; } ``` - 生成RPC代码 使用protobuf编译器生成Java代码,例如: ```bash protoc --java_out=. hello.proto ``` - 实现RPC服务 在Java代码中实现RPC服务,例如: ```java public class HelloServiceImpl extends HelloServiceGrpc.HelloServiceImplBase { @Override public void sayHello(HelloRequest request, StreamObserver<HelloResponse> responseObserver) { String message = "Hello, " + request.getName() + "!"; HelloResponse response = HelloResponse.newBuilder().setMessage(message).build(); responseObserver.onNext(response); responseObserver.onCompleted(); } } ``` - 启动RPC服务 在Java代码中启动gRPC服务,例如: ```java public class Server { public static void main(String[] args) throws IOException, InterruptedException { Server server = ServerBuilder.forPort(8080).addService(new HelloServiceImpl()).build(); server.start(); server.awaitTermination(); } } ``` - 测试Web RPC 使用gRPC提供的Java API调用RPC服务,例如: ```java public class Client { public static void main(String[] args) { ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 8080).usePlaintext().build(); HelloServiceGrpc.HelloServiceBlockingStub stub = HelloServiceGrpc.newBlockingStub(channel); HelloRequest request = HelloRequest.newBuilder().setName("world").build(); HelloResponse response = stub.sayHello(request); System.out.println(response.getMessage()); channel.shutdown(); } } ``` 运行Client程序,应该可以看到输出Hello, world!。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值