java获取服务器文件,怎样用url返回
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java获取服务器文件,怎样用url返回相关的知识,希望对你有一定的参考价值。
参考技术A 第一种; response.setStatus(302);response.setHeader("location", "/dayX/Myhtml.html"); 该方式可以重定向到服务器指定页面
当然还有以下方式:
第二种;请求转发
请求转发是指将请求再转发到另一资源(一般为JSP或Servlet)。此过程依然在同一个请求范围内,转发后浏览器地址栏内容不变
请求转发使用RequestDispatcher接口中的forward()方法来实现,该方法可以把请求转发到另外一个资源,并让该资源对浏览器的请求进行响应request.getRequestDispatcher(path) .forward(request,response);
第三种 重定向
重定向是指页面重新定位到某个新地址,之前的请求失效,进入一个新的请求,且跳转后浏览器地址栏内容将变为新的指定地址
重定向是通过HttpServletResponse对象的sendRedirect()来实现,该方法相当于浏览器重新发送一个请求
response.sendRedirect(path); 参考技术B 写JSP或 servlet,根据URL去读文件
~
~
~
~ 参考技术C 那不就是下载文件吗 参考技术D 把域名地址和文件路径拼接起来,直接返回就可以了
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=del&id=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;
//每个键值为一组 www.2cto.com
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=del&id=123&sort=";
//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"));
参考技术A Servlet里面用request.getParameter("参数名");取到 参考技术B String url = request.getScheme()+"://"; //请求协议 http 或 https
url+=request.getHeader("host"); // 请求服务器
url+=request.getRequestURI(); // 工程名
if(request.getQueryString()!=null) //判断请求参数是否为空
url+="?"+request.getQueryString(); // 参数
以上是关于java获取服务器文件,怎样用url返回的主要内容,如果未能解决你的问题,请参考以下文章
C# 下载url文件 WebClientHttpWebRequest