java路径解析(java工程路径获取)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
本篇文章给大家谈谈java路径解析,以及java工程路径获取对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
java 路径
学习jsp时应该都说过,jsp也是class,编译运行后,生成html文件。太久没接触理论,你再查查。
所以你这路径问题应该是,class在编译部署后被集中在classpath下(一般是工程的src目录)。所以解决方案:
1、把你的配置文件a.properties放到src(即jsp中脚本段中找的相对路径实际是classLoader目录,即src)目录下,其余不变,应该可以解决。
2、用new File(request.getContextPath+"/a.properties")这个绝对路径即可解决。
暂时没时间试验,自己项目也还在忙,不对之处或理论不翔实之处请指正。
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.length1)
{
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.length1)
{
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 MapString, String URLRequest(String URL)
{
MapString, String mapRequest = new HashMapString, 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.length1)
{
//正确解析
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="";
MapString, 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"));
}
}
测试代码运行效果
index.jsp
key:id,Value:123;key:sort,Value:;key:action,Value:del;
null

java包路径解析成json
我跟你讲一种方式,我刚刚想了一下,你最好是在得到你list数据的时候就开始组装,这样是最好的,得到list数据无非是文件递归嘛,当递归到出口的时候,你就放进去,如果是文件夹也往里放。
代码刚写好了。
import com.alibaba.fastjson.JSONObject;
import java.io.File;
import java.net.URL;
import java.util.LinkedList;
import java.util.List;
/**
* @Package com.xhxh.zhidao
* @Description json convert
* @Author xiehua
* @Date 2019-03-08 16:28
*/
public class FileDomain {
private String name;
private ListFileDomain packages = new LinkedList();
public FileDomain() {
}
public FileDomain(String name) {
this.name = name;
}
public ListFileDomain getPackages() {
return packages;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "FileDomain{" +
"name='" + name + '\'' +
", packages=" + packages +
'}';
}
public static void main(String[] args) {
FileDomain fileDomain = new FileDomain("com.xhxh");
fileDomain.readFiles("com.xhxh", fileDomain);
String s = JSONObject.toJSONString(fileDomain);
System.out.println(s);
}
public void readFiles(String scanPackage, FileDomain fileDomain) {
URL url = this.getClass().getClassLoader().getResource(scanPackage.replaceAll("\\.", "/"));
File classDir = new File(url.getFile());
for (File file :
classDir.listFiles()) {
if (file.isDirectory()) {
FileDomain temFileDomain = new FileDomain(scanPackage + "." + file.getName());
fileDomain.getPackages().add(temFileDomain);
readFiles(scanPackage + "." + file.getName(), temFileDomain);
} else {
FileDomain temFileDomain = new FileDomain(scanPackage + "." + file.getName());
fileDomain.getPackages().add(temFileDomain);
}
}
}
}
在java中怎么获得,本文件的路径
File类有两个常用方法可以得到文件路径一个是:getCanonicalPath(),另一个是:getAbsolutePath(),可以
通过File类的实例调用这两个方法例如file.getAbsolutePath()其中file是File的实例对象。下面是一个具体例子:
public class PathTest
{
public static void main(String[] args)
{
File file = new File(".\\src\\baidu");
System.out.println(file.getAbsolutePath());
try
{
System.out.println(file.getCanonicalPath());
} catch (IOException e)
{
e.printStackTrace();
}
}
}
getAbsolutePath()和getCanonicalPath()的不同之处在于,getCanonicalPath()得到的是一个规范的
路径,而getAbsolutePath()是用构造File对象的路径+当前工作目录。例如在上面的例子中.(点号)代表当前目录。
getCanonicalPath()就会把它解析为当前目录但是getAbsolutePath()会把它解析成为目录名字(目录名字是点号)。
下面是上面程序在我电脑上的输出:
G:\xhuoj\konw\.\src\baidu
G:\xhuoj\konw\src\baidu
Java中路径的获取总结以及URL和URI的区别
路径获取分直接写死在代码上和动态获取路径。直接写死就不说了,动态获取方法很多最常用的../和${pageContext.request.contextPath},获取路径可以用getClass().getResource()。URl和URL一个是相对路径一个是绝对路径,比如相对路径和你同包的你直接写对象(类,各种格式文件)名字就行,绝对路径就是你的项目名+包+你的应用名。
java路径解析的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java工程路径获取、java路径解析的信息别忘了在本站进行查找喔。
