当前位置:  编程技术>java/j2ee

java解析出url请求的路径和参数键值对类(解析出url请求的路径,包括页面)

    来源: 互联网  发布时间:2014-10-18

    本文导语:  代码如下: 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...

代码如下:

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 URLRequest(String URL)
{
Map mapRequest = new HashMap();
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=del&id=123&sort=";
//url页面路径
System.out.println(CRequest.UrlPage(str));
//url参数键值对
String strRequestKeyAndValues="";
Map 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获得当前执行文件所在的目录路径,和系统目录路径(c:winnt)
  • java编程中使用的相对路径是相对哪里的路径呀?
  • java获取系统路径字体、得到某个目录下的所有文件名、获取当前路径
  • java程序在linux运行,要用Runtime.exec()执行外部命令,可外部命令中关于文件操作的路径都很长,如何使用相对路径.在线等待
  • java中获取类加载路径和项目根路径的5种方式分析
  • 基于获取JAVA路径,包括CLASSPATH外的路径的方法详解
  • 请问:如何在java程序内获得 .class 文件的全路径?
  • Linux下的Java如何设置路径
  • java 获取项目文件路径实现方法
  • JAVA中如何获得路径信息?
  • JAVA可以获得操作系统的临时目录的路径吗?
  • 在linux下怎样查看已经安装的java路径信息???
  • 在执行java程序时,如何获取当前.class文件的路径
  • 请问各位大虾,java编译时的路径问题,谢谢。
  • java之路径分隔符介绍
  • java的安装路径???
  • java中,什么函数可以获得当前的绝对路径?
  • Java程序在solaris上执行exe找不到路径
  • 有关JAVA class文件在UNIX下取得文件相对路径的问题
  • 一个关于java的classpath路径的问题
  • java发送get请求和post请求示例
  • 怎样在一个JAVA应用程序里,向一个SERVLET发出HTTP请求(带参数)???
  • 请求Java的加密!
  • 对一个java程序会同时或先后有多次运行的请求情况下,用..
  • 新手请求帮助:Java编译器有哪些?J2EE和Java有什么关系?
  • 做一个java的客户端,向服务器端发“GET”请求,如何做到?
  • 再次请求推荐Java书籍(适合初学者),一本书20分,怎么样?:-(
  • NOSQL iis7站长之家
  • java使用httpclient模拟post请求和get请求示例
  • java servlet问题,其实这是一个HTML问题,请求帮助!
  • 简单的java程序问题,请求回答!!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java 公式解析 表达式解析 expression-analyzer
  • 请问各位:我用SUN公司的JAXP开发包解析XML文档,可不知道对XML解析后如何将结果写回文件中。请各位熟悉Java和XML的高手帮忙。
  • java解析xml之jdom解析xml示例分享
  • Java 的解析器代码生成器 AustenX
  • Java的HTML解析器 Jerry
  • java解析xml之dom4j解析xml示例分享
  • java解析xml之dom解析xml示例分享
  • Java的CSV解析包 CSVBeans
  • Java的CSV解析包 CSVObjects
  • 求教JAVA中XML解析问题
  • Java表达式解析器 JExel
  • Java代码解析工具 JavaFE
  • Java表达式语法解析库 parboiled
  • Java的HTML解析包 jScraper
  • Java的 RSS/Atom的解析器 FeedParser
  • Java的HL7解析器 HAPI
  • java解析xml用什么包?
  • 有什么java包可以支持解析html的。
  • Java结构化数据解析包 Lycia
  • Java的HTML解析库 gohtml
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: stringflavor定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3