本文目录一览:
- java中如何实现URL类?
- 用java怎么写URL接口
- Java如何利用url下载MP3保存到本地?
- java怎样获取url参数
- [java URL 添加参数的几种简单方式](#java URL 添加参数的几种简单方式)
java中如何实现URL类?
import java.io.*;
import java.net.*;
public class URLTest {
public static void main(String[] args) {
try {
URL url = new URL(""); // 创建资源类型
String protocol = url.getProtocol(); // 获取资源类型
String host = url.getHost(); // 获取域名
int port = url.getPort(); // 获取端口
String file = url.getFile(); // 获取路径
System.out.println("url地址的资源类型为:" + protocol + "域名为:" + host + "端口为:" + port + "路径为:" + file);
InputStream is = url.openStream(); // 获取页面信息流
BufferedReader bfr = new BufferedReader(new InputStreamReader(is)); // 封装成字符流
String len;
while ((len = bfr.readLine()) != null) {
System.out.println(len);
}
bfr.close();
is.close();
} catch (MalformedURLException e) {
System.out.println("创建URL对象发生异常");
} catch (IOException e) {
System.out.println("发生IO操作异常");
}
}
}
用java怎么写URL接口
在java中,调用http请求接口,主要通过流的方式进行调用,示例接口如下:
/**
* 程序中访问http数据接口
*/
public String searchLoginService(String urlStr) {
/** 网络的url地址 */
URL url = null;
/** http连接 */
HttpURLConnection httpConn = null;
/** 输入流 */
BufferedReader in = null;
StringBuffer sb = new StringBuffer();
try {
url = new URL(urlStr);
in = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
String str = null;
while ((str = in.readLine()) != null) {
sb.append(str);
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException ex) {
logger.error(ex.getMessage(), ex);
}
}
String result = sb.toString();
System.out.println(result);
return result;
}
Java如何利用url下载MP3保存到本地?
Java如何利用url下载MP3保存的方法:
/**
* TODO 下载文件到本地
* @author nadim
* @date Sep 11, 2015 11:45:31 AM
* @param fileUrl 远程地址
* @param fileLocal 本地路径
* @throws Exception
*/
public void downloadFile(String fileUrl, String fileLocal) throws Exception {
URL url = new URL(fileUrl);
HttpURLConnection urlCon = (HttpURLConnection) url.openConnection();
urlCon.setConnectTimeout(6000);
urlCon.setReadTimeout(6000);
int code = urlCon.getResponseCode();
if (code != HttpURLConnection.HTTP_OK) {
throw new Exception("文件读取失败");
}
// 读文件流
DataInputStream in = new DataInputStream(urlCon.getInputStream());
DataOutputStream out = new DataOutputStream(new FileOutputStream(fileLocal));
byte[] buffer = new byte[2048];
int count = 0;
while ((count = in.read(buffer)) > 0) {
out.write(buffer, 0, count);
}
out.close();
in.close();
}
Java是一门面向对象编程语言,不仅吸收了C语言的各种优点,还摒弃了C里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。 Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
java怎样获取url参数
解析url,本想用正则表达式处理,但正则表达式速度较慢。用split处理一下就可以了。
package RequestPackage;
import java.util.HashMap;
import java.util.Map;
public class CRequest {
/**
* 解析出url请求的路径,包括页面
* @param strURL url地址
* @return url路径
*/
public static String UrlPage(String strURL) {
String strPage = null;
String[] arrSplit = null;
strURL = strURL.trim().toLowerCase();
arrSplit = strURL.split("[?]");
if (strURL.length() > 0) {
if (arrSplit.length > 1) {
if (arrSplit[0] != null) {
strPage = arrSplit[0];
}
}
}
return strPage;
}
/**
* 去掉url中的路径,留下请求参数部分
* @param strURL url地址
* @return url请求参数部分
*/
private static String TruncateUrlPage(String strURL) {
String strAllParam = null;
String[] arrSplit = null;
strURL = strURL.trim().toLowerCase();
arrSplit = strURL.split("[?]");
if (strURL.length() > 1) {
if (arrSplit.length > 1) {
if (arrSplit[1] != null) {
strAllParam = arrSplit[1];
}
}
}
return strAllParam;
}
/**
* 解析出url参数中的键值对
* 如 "index.jsp?Action=delid=123",解析出Action:del,id:123存入map中
* @param URL url地址
* @return url请求参数部分
*/
public static Map<String, String> URLRequest(String URL) {
Map<String, String> mapRequest = new HashMap<String, String>();
String[] arrSplit = null;
String strUrlParam = TruncateUrlPage(URL);
if (strUrlParam == null) {
return mapRequest;
}
// 每个键值为一组
arrSplit = strUrlParam.split("&");
for (String strSplit : arrSplit) {
String[] arrSplitEqual = null;
arrSplitEqual = strSplit.split("=");
// 解析出键值
if (arrSplitEqual.length > 1) {
// 正确解析
mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);
} else {
if (arrSplitEqual[0] != "") {
// 只有参数没有值,不加入
mapRequest.put(arrSplitEqual[0], "");
}
}
}
return mapRequest;
}
}
测试类
package RequestPackage;
import java.util.Map;
public class TestCRequest {
/**
* 用于测试CRequest类
* @param args
*/
public static void main(String[] args) {
// 请求url
String str = "index.jsp?Action=delid=123sort=";
// url页面路径
System.out.println(CRequest.UrlPage(str));
// url参数键值对
String strRequestKeyAndValues = "";
Map<String, String> mapRequest = CRequest.URLRequest(str);
for (String strRequestKey : mapRequest.keySet()) {
String strRequestValue = mapRequest.get(strRequestKey);
strRequestKeyAndValues += "key:" + strRequestKey + ",Value:" + strRequestValue + ";";
}
System.out.println(strRequestKeyAndValues);
// 获取无效键时,输出null
System.out.println(mapRequest.get("page"));
}
}
java URL 添加参数的几种简单方式
主要有三种方式,先给大家第一种managed-bean,必须 scope设置为request
<managed-bean>
<managed-bean-name>nameBean</managed-bean-name>
<managed-bean-class>demo.NameBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>userName</property-name>
<value>#{param.name}</value>
</managed-property>
</managed-bean>
第二种方式:缺点是无法往后台传数据,当然你用javascript做一下动作也可以
<h:inputHidden id="userName" value="#{nameBean.userName}" />
第三种方式,是直接在bean中获得,我认为这种应该是最实用、保险的方式。
public static String getRequestParameter(String name) {
return (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(name);
}