要获取请求URL,可以在堆栈溢出中找到以下方法。
第一种方法:
@Autowired
private HttpServletRequest request;
public void getURL(){
String url=request.getRequestURL().toString();
}
第二种方法:
public void getURL(){
String url=ServletUriComponentsBuilder.fromCurrentRequestUri().toUriString();
}
第三种方法:
public void getURL(){
HttpServletRequest request=
((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
String url=request.getRequestURL().toString();
}
我不知道在spring boot应用程序中使用哪一个来获取请求URL。
如果我使用第三种方法,那么我是否需要在配置类中创建RequestContextListener的bean,如下所示?
@Bean
public RequestContextListener requestContextListener(){
return new RequestContextListener();
}
其实很简单。创建一个注释为@RestController
的类,并在其中创建一个处理映射的方法。在该方法中,将HttpServletRequest
列为参数。就是这样,在这个方法中,你将得到它作为参数,并且可以使用它。下面是我的一个工作示例。
@RestController
@RequestMapping("/upload")
public class UploadTestController {
@PostMapping
public ResponseEntity<String> uploadTest(HttpServletRequest request) {
try {
String lengthStr = request.getHeader("content-length");
int length = TextUtils.parseStringToInt(lengthStr, -1);
if(length > 0) {
byte[] buff = new byte[length];
ServletInputStream sis =request.getInputStream();
int counter = 0;
while(counter < length) {
int chunkLength = sis.available();
byte[] chunk = new byte[chunkLength];
sis.read(chunk);
for(int i = counter, j= 0; i < counter + chunkLength; i++, j++) {
buff[i] = chunk[j];
}
counter += chunkLength;
if(counter < length) {
TimeUtils.sleepFor(5, TimeUnit.MILLISECONDS);
}
}
Files.write(Paths.get("C:\\Michael\\tmp\\testPic.jpg"), buff);
}
} catch (Exception e) {
System.out.println(TextUtils.getStacktrace(e));
}
return ResponseEntity.ok("Success");
}
}
我有Kafka Streams java应用程序启动并运行。我试图使用KSQL创建简单的查询,并使用Kafka流来实现复杂的解决方案。我希望将KSQL和Kafka流作为Java应用程序运行。 我打算通过https://github.com/confluentinc/ksql/blob/master/ksqldb-examples/src/main/java/io/confluent/ksql/em
问题内容: 您能否解释一下如何在我的子类中获取实例?可能吗?我已尝试按照以下代码片段的方式进行操作,但它似乎不起作用- 未设置: web.xml: 问题是我需要从中获取上下文参数。如果有其他方法,请给我一个提示,我将不胜感激。 我了解注记可能并非为此目的。实际上,我不需要自己。如果只有我可以从web.xml中获取上下文参数,我将非常高兴。 这是我真正需要的一个例子: 谢谢。 问题答案: 从Jers
我得到低于错误 错误:
我想在intellij Idea中以调试模式启动spring-boot maven应用程序,但当我创建断点时,应用程序不会挂起,而是会继续。我读了很多题目,但还是不明白怎么做。你能帮我决定最好的行动方案吗。 但是当请求LocalHost:5005/MyPage时,我会出现错误101(NET::ERR_CONNECTION_RESET)。似乎有些maven参数没有指定。 下面是我在pom.xml中的
我已经从谷歌阅读了这个标准描述:https://developer.android.com/training/sharing/receive 在此之后,我更新了我的AndroidManifest.xml,以包括一个意图过滤器来接受来自其他应用程序的共享(对于各种哑剧类型)。 我可以将我的应用程序视为其他应用程序中的共享选项,当我在其他应用程序中选择一个文件(例如,照片应用程序中的图像文件)并选择与
我试图在SpringMVC中运行SpringBoot应用程序,在SpringMVCPOM中添加SpringBoot应用程序依赖项,并扫描SpringBoot包,但我面临以下问题