关于java中URL的使用问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于java中URL的使用问题相关的知识,希望对你有一定的参考价值。

import java.net.URL;
import java.awt.*;
import javax.swing.*;
public class AppletTest extends JApplet
Class metaObject = this.getClass();
URL url = metaObject.getResource("image/1.jpg");
private JLabel jlb1 = new JLabel(new ImageIcon(url));
private JPanel jp1 = new JPanel(new BorderLayout());

public AppletTest()
jp1.add(jlb1,BorderLayout.NORTH);
add(jp1);


1.jpg放在MyEclipse 8.5\第33章 容器、布局管理器和边框\image 文件夹下。
使用new ImageIcon("image/1.jpg")在Frame中可以正常显示,在Applet中使用URL定位的时候就没法用了,是不是classpath配置的问题?求高手赐教。

getResource("image/1.jpg");应该是这里路径问题。以eclipse环境为例
首先,你的project中必须把image文件夹设为源码或资源目录(重要)
这样image本身就成了资源的根目录/
在IDE编译输出/打包时,1.jpg会和你的AppletTest.class放在同个文件夹中
所以,getResource("image/1.jpg");必须改成getResource("/1.jpg");
而要使getResource("image/1.jpg");起作用就可能要放在 image/image/1.jpg(首个image做资源目录)

另外,如果你不用IDE——手工编译class,就必须把1.jpg放在相对AppletTest.class所在目录下image/1.jpg下,这样才能getResource("/image/1.jpg")

总之,getResource()中的路径,由编译后的class文件的所在位置相对于资源文件的位置决定。而不由java源码决定。追问

一般使用ImageIcon("image/1.jpg") 不就是将1.jpg 放在image中么?image是和bin以及src在同一个目录中吧?它和使用URL定位时候有什么区别?

追答

同前述
ImageIcon("image/1.jpg")时因为eclipse执行时(属于ide下特殊的执行情况)从项目根部目录开始搜索,所以能找到。比如new File("1.jpg"),程序在哪个目录执行,就会在那个目录上找1.jpg。eclipse默认在project目录作为当前目录。

而getResource("/image/1.jpg")是从class所在目录开始搜索资源,通常是project/bin/下面。所以不能找到。

和url没有关系。

参考技术A 编译后的AppletTest的class文件在哪儿?

使用Java和spring boot的URL参数

【中文标题】使用Java和spring boot的URL参数【英文标题】:Parameters from URL using Java and spring boot 【发布时间】:2018-10-07 09:14:29 【问题描述】:

我正在使用 Java 和 Spring Boot,我需要通过 URL 获取信息并将其存储在我的 Java 类中。我的网址是这样的

localhost:8080/send?adress=example

我想将 URL 参数的值存储到 Java 中的变量中。

【问题讨论】:

有关于spring boot的教程涵盖了这些东西...... 【参考方案1】:

我建议阅读有关 Spring Boot 和 Web 服务的教程,例如:

https://spring.io/guides/gs/rest-service/

RequestParam 注解用于将方法参数绑定到 Web 请求参数。例如

@RequestMapping(value="/send", method=RequestMethod.GET)
public String method(@RequestParam(value="address") String address) 
...

【讨论】:

非常感谢,这正是我所需要的【参考方案2】:

URL 不需要发送参数,通过请求参数发送即可。

一旦你在请求中添加了一个参数,在 spring-boot by @RequestParam 我们可以获取参数值。例如

@RequestMapping(value="/order/search", method=RequestMethod.GET)
public String method(@RequestParam(value="orderNumber") String orderNumber) 
    get Order by orderNumber...

【讨论】:

以上是关于关于java中URL的使用问题的主要内容,如果未能解决你的问题,请参考以下文章

有人有任何关于如何使用修改后的 Java 脚本值处理返回 Json (url) 的示例吗?

java基础知识 学习 关于URL中传递的参数含有特殊字符

关于使用纯java获取http url请求返回的信息

关于http url中特殊符号的记录

关于http url中特殊符号的记录

java里关于String的编码与解码