如何在servlet里提取别人直接传过来的url里带中文和#的地址

如何在servlet里提取别人直接传过来的url里带中文和#的地址,第1张

别人调用我们提供的MsgManagerdo这个servlet来向我们传递数据,地址格式如下:

/MsgManagerdouser=aa&password=aa&txflag=1&tel=13618668888&sendtime=2009-06-17#14:33:47&msg=306测试

请教一下如何能在MsgManagerdo这个servlet里提取这个地址并进行分析,从而获取里面的参数

关键是里面带的有#号和中文

我们整个网站都用的编码过滤器,统一的“utf-8”

import javaioBufferedReader;

import javaioIOException;

import javaioInputStreamReader;

import javanetMalformedURLException;

import javanetURL;

import javautilArrayList;

import javautilList;

public class GetLinks {

private String webSource;

private String url;

public GetLinks(String url) throws MalformedURLException, IOException {

thisurl = Complete(url);

webSource = getWebCon(thisurl);

}

private String getWebCon(String strURL) throws MalformedURLException,

IOException {

StringBuffer sb = new StringBuffer();

javanetURL url = new javanetURL(strURL);

BufferedReader in = new BufferedReader(new InputStreamReader(url

openStream()));

String line;

while ((line = inreadLine()) != null) {

sbappend(line);

}

inclose();

return sbtoString();

}

private String Complete(String link)throws MalformedURLException{

URL url1 = new URL(link);

URL url2 = new URL(link+"/");

String handledUrl = link;

try{

StringBuffer sb1 = new StringBuffer();

BufferedReader in1 = new BufferedReader(new InputStreamReader(url1

openStream()));

String line1;

while ((line1 = in1readLine()) != null) {

sb1append(line1);

}

in1close();

StringBuffer sb2 = new StringBuffer();

BufferedReader in2 = new BufferedReader(new InputStreamReader(url2

openStream()));

String line2;

while ((line2 = in2readLine()) != null) {

sb2append(line2);

}

in1close();

if(sb1toString()equals(sb2toString())){

handledUrl = link+"/";

}

}catch(Exception e){

handledUrl = link;

}

return handledUrl;

}

/

处理链接的相对路径

@param link 相对路径或绝对路径

@return 绝对路径

/

private String urlHandler(String link) {

if (link == null)

return null;

link = linktrim();

if (linktoLowerCase()startsWith(">

如果是javaweb 项目,那么非常简单,直接调用 >

通过你dispacher拦截器的请求就可以进来 并且在请求分发的时候 如果没有配对的请求 就会报错的 你这种安全性设置其实没什么意义 可以把重要文件放在WEB-INF下 因为这是隐藏目录 所以按路径找不到的。如果你真想让url访问不了 方法如下

1如果你用的是springMVC的注解模式 在Controller里RequestMapping的method全变成post(因为url 是要用get方法的对吧)

2springMVC的声明模式 那你需要去spring的主配置文件去配置那个Conntroller 方法同上

这样的即便前面拦截器拦到了 到这里也就被挡住了

以上就是关于如何在servlet里提取别人直接传过来的url里带中文和#的地址全部的内容,包括:如何在servlet里提取别人直接传过来的url里带中文和#的地址、java提取网站内部所有URL、java怎样获取url参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9393056.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存