小编Mik*_*ith的帖子

java URL对象 - 新的java.net.URL()

我是java的新手,只是想尝试运行一些简单的程序.我有这个代码:

import java.net.*;
import java.io.*;

class example1 {

    public static void main(String args[]){

    try{
        URL hp = new URL("http://www.java2s.com");
        System.out.println("it all worked?");
    }catch (MalformedURLException e){
        System.err.println("New URL failed");
        System.err.println("exception thrown: " + e.getMessage());
    }

    System.out.println(hp.getProtocol());

    }
}
Run Code Online (Sandbox Code Playgroud)

java编译器"找不到符号:hp"这会让我相信url对象,hp不是由行创建的:

URL hp = new URL("http://www.java2s.com");
Run Code Online (Sandbox Code Playgroud)

但是,catch语句不应该报告错误吗?

我尝试在没有try-catch块的情况下进行编译,但是我收到一条错误,说"未报告的异常MalformedURLException;必须被捕获或声明被抛出"

如果我删除引用hp的最后一行,程序将编译并运行,但只显示"它全部工作?".

我确信这里有一个简单的解释,但我对java知之甚少.谢谢

java url new-operator

4
推荐指数
2
解决办法
1万
查看次数

mod_rewrite删除一个GET变量

我想抓住

example.com/home?lang=fr&foo=bar

并重定向到

example.com/fr/home?foo=bar

我试过了

    RewriteCond %{QUERY_STRING} lang=([a-z]{2})&?
    RewriteRule ^(.*) /%1/$1 [R=307]
Run Code Online (Sandbox Code Playgroud)

但我得到一个重定向循环.这是因为在将"fr"移动到请求字符串的前面之后,lang = fr不会从查询字符串中删除.这导致:

example.com/fr/fr/fr/fr/fr/fr/fr/fr/fr/....

我可以用

    RewriteRule ^(.*) /%1/$1? [R=307]
Run Code Online (Sandbox Code Playgroud)

但是这也从查询字符串中删除了foo = bar,我想保持原样

我找不到从查询字符串中只删除一个变量的方法.我确信有一个简单的解决方案,但谷歌没有帮助.谢谢

apache mod-rewrite get

2
推荐指数
1
解决办法
4386
查看次数

标签 统计

apache ×1

get ×1

java ×1

mod-rewrite ×1

new-operator ×1

url ×1