我是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知之甚少.谢谢
我想抓住
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,我想保持原样
我找不到从查询字符串中只删除一个变量的方法.我确信有一个简单的解决方案,但谷歌没有帮助.谢谢