是否有建立网址的正确方法?

是否有建立网址的正确方法?,第1张

是否有建立网址的正确方法?

我已经写好了,您可以在需要附加功能的地方进行更改。它不使用任何外部资源,如果我看过东西,请告诉我!

它基本上是

URI
该类的包装器,使您可以更轻松地将子目录和参数添加到URI。如果您对某些内容不感兴趣,则可以设置默认值。

编辑:我添加了一个使用相对URI的选项(根据您的问题)。

public class Test {    public static void main(String[] args) throws URISyntaxException, MalformedURLException {        URLBuilder urlb = new URLBuilder("www.example.com");        urlb.setConnectionType("http");        urlb.addSubfolder("somesub");        urlb.addSubfolder("anothersub");        urlb.addParameter("param lol", "unknown");        urlb.addParameter("paramY", "known");        String url = urlb.getURL();        System.out.println(url);        urlb = new URLBuilder();        urlb.addSubfolder("servlet");        urlb.addSubfolder("jsp");        urlb.addSubfolder("somesub");        urlb.addSubfolder("anothersub");        urlb.addParameter("param lol", "unknown");        urlb.addParameter("paramY", "known");        String relUrl = urlb.getRelativeURL();        System.out.println(relUrl);    }}class URLBuilder {    private StringBuilder folders, params;    private String connType, host;    void setConnectionType(String conn) {        connType = conn;    }    URLBuilder(){        folders = new StringBuilder();        params = new StringBuilder();    }    URLBuilder(String host) {        this();        this.host = host;    }    void addSubfolder(String folder) {        folders.append("/");        folders.append(folder);    }    void addParameter(String parameter, String value) {        if(params.toString().length() > 0){params.append("&");}        params.append(parameter);        params.append("=");        params.append(value);    }    String getURL() throws URISyntaxException, MalformedURLException {        URI uri = new URI(connType, host, folders.toString(),     params.toString(), null);        return uri.toURL().toString();    }    String getRelativeURL() throws URISyntaxException, MalformedURLException{        URI uri = new URI(null, null, folders.toString(), params.toString(), null);        return uri.toString();    }}

输出:

绝对

http://www.example.com/somesub/anothersub?param%20lol=unknown¶mY=known

相对的

/ servlet / jsp / somesub / anothersub?param%20lol = unknown&paramY =已知



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5500667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-13

发表评论

登录后才能评论

评论列表(0条)

保存