今天写了个程序,代码如下:
public class Test {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String urlStr = "http://localhost:8080/bhtsys/index.jsp?name=1 中华人民共和国";
URL url = new URL(urlStr);
URLConnection hpCon = url.openConnection();
InputStream in = hpCon.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
index.jsp页面如下:
<body bgcolor="red">
中华人民共和国
<%
String name=request.getParameter("name");
name=new String(name.getBytes("iso-8859-1"),"UTF-8");
out.println(name);
%>
</body>
一运行报如下错误:
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 505 for URL: http://localhost:8080/bhtsys/index.jsp?name=1 中华人民共和国
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1313)
at com.bhtec.action.Test.main(Test.java:19)
于是到网上查一下:
原来是参数中有空格导致的,解决方法为:1、用+或者%20代替url参数中的空格。2、或者在提交参数时对url使用js中encodeURIComponent函数。 代码如下:
public class Test {
/**
* @param args
*/
public static void main(String[] args) throws Exception {
String urlStr = "http://localhost:8080/bhtsys/index.jsp?name=1 中华人民共和国";
urlStr=urlStr.replace(" ", "%20");
URL url = new URL(urlStr);
URLConnection hpCon = url.openConnection();
InputStream in = hpCon.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
分享到:
相关推荐
url出现了有+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,...+ URL 中+号表示空格 + 空格 URL中的空格可以用+号或者编码 / 分隔目录和子目录 / ? 分隔实际的URL和参数
这个问题主要是因为URL中的参数可能没有经过正确的编码和解码处理。为了解决这个问题,我们可以采取一些方法,特别是当使用jQuery来获取URL参数时,有以下两种方法特别有效。 方法一是利用正则表达式来匹配和解析...
然而,URL中可能存在一些不合法的字符,比如空格、中文字符以及其他特殊字符,这些字符可能会导致URL无法正确解析或请求失败。为了解决这个问题,我们可以创建一个URL的分类来处理这些问题。 首先,让我们深入理解...
在日常的Web开发中,经常会遇到需要获取URL中的参数或处理字符串的情况。例如,在用户点击某个链接或者表单提交后,我们可能需要从URL中提取出某些特定的信息来进行进一步的处理;另外,对用户输入的数据进行清洗...
在后端Java代码中,处理请求参数时可能会遇到乱码问题。例如,使用`request.getParameter("params")`获取参数时,如果请求时的编码和服务器端解析的编码不一致,就会出现乱码。在本例中,服务端代码使用了`...
在本案例中,"PHPStorm中SVN因目录中含有空格,不允许update等操作"是一个典型的问题描述,通常会导致SVN命令执行失败。 首先,我们需要了解为何空格会造成问题。在命令行环境下,空格通常被用来分隔不同的参数。...
在URL传递参数中,有一些特殊字符,而这些些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了。下表中列出了一些URL特殊符号及编码十六进制值 1. + URL 中+号表示空格 + 2. ...
对项目中的所有参数去除前后空格过滤,统一处理参数!可以基于此过滤器实现过滤跨站脚本攻击,参数的增加,修改!敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded ...
对request请求进行拦截,对请求参数修改。常用于前台提交表单参数关键字的过滤。此工具可以对参数拦截并转义后提交到对应的处理类。 除了添加两个JsFilter.java和GetHttpServletRequestWrapper.java之外,需要在web....
当我们在URL中传递参数时,如果参数值包含了像“+”这样的特殊字符,浏览器会默认将其视为空格。这是因为根据URL编码标准,加号 (+) 在URL中通常代表空格。例如,如果你有这样一个参数:`key=value+OK`,在传递到...
但是,中文字符和一些特殊符号在URL中有特殊的编码含义,直接使用会导致请求失败或服务器无法正确解析。为了解决这个问题,Python的urllib.parse模块提供了解决方案。具体来说,我们可以使用quote函数来对URL进行...
本篇内容将深入解析如何在不同的编程环境中处理带有空格的命令行参数,并通过示例来解决如“document and setting”等特殊字符串的传递问题。 ### 命令行参数基础 #### 什么是命令行参数? 命令行参数是指用户在...
URL参数中传递特殊字符处理方法 在进行 URL 参数传递时,需要处理特殊字符的编码问题。因为有些符号在 URL 中是不能直接传递的,需要使用他们的编码。以下是常见的 URL 特殊符号及编码: 1. + 号表示空格,编码为 ...
需要注意的是,如果参数值中含有特殊字符(例如空格、&、= 等),则必须进行编码,否则这些字符可能会被误解为URL语法的一部分。 #### 三、URL参数解析 在接收端,我们需要解析URL中的查询参数。这里有两种常见的...
标准规定,URL中的非字母数字字符(如空格、中文等)需要使用百分号(%)加上两个十六进制数字来表示。例如,中文字符“中”在UTF-8编码下的字节序列是E4 B8 AD,所以它在URL中会被编码为"%E4%B8%AD"。 二、URL中文...
本文将深入探讨`purl`库如何解析URL的请求参数,并通过源码分析来理解其工作原理。 首先,让我们了解一下URL的基本结构。一个标准的URL(统一资源定位符)通常由以下几个部分组成:协议(如http或https)、域名、...
但如果服务器没有正确处理URL编码,或者你直接在URL中使用特殊符号而没有编码,就可能导致参数解析错误。 为了避免这些问题,开发者应当确保在构造URL参数时,始终对包含特殊字符的值进行编码。此外,对于服务器端...
- URL中的参数值可能是编码过的(例如空格转为`+`或`%20`)。在获取参数后,可能需要使用`java.net.URLDecoder.decode()`进行解码,确保数据正确性。 - 同样,当构建响应时,可能需要使用`java.net.URLEncoder....
- **二次转码**:先使用`encodeURI()` 编码一次,再用`encodeURIComponent()` 编码一次,这样URL中的特殊字符都会被编码。在服务器端,使用`URLDecoder.decode(name, "UTF-8")` 进行解码。 2. **Java服务器端处理*...
现在,我们要获取URL中的参数值。这里提供了一个名为`getValueByName`的函数,它接收两个参数:URL字符串和需要查找的参数名,然后返回对应的参数值。这个函数的工作原理是: 1. 查找URL中问号(?)的位置,以确定...