java中的url编码?

我想知道什么是url编码 。 我有2个jsp页面和一个servlet。 当我运行应用程序时,显示的URL是:

http://localhost:8080/myproject/index.jsp

哪里

index.jsp:

 

单击提交按钮后,显示的URL为:

http://localhost:8080/myproject/Myservlet

URL编码是什么意思? 我该如何编码url?

index.jsp转到Myservlet然后转到Myservlet

Myservet #doPost //我需要在这里进行URL编码吗? 如果有,怎么样?

  fetching data from db....... .................... String nextJSP = "/result.jsp"; RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP); dispatcher.forward(request,response); 

result.jsp中

displays data here

有两种类型的编码: HTML表单编码和URL重写 。

在表单编码中,URL字符串将转换为可用于Internet的有效ASCII格式。 来自URLEncoder.encode(String,String)文档:

使用特定的编码方案将字符串转换为application / x-www-form-urlencoded格式。 此方法使用提供的编码方案来获取不安全字符的字节。

第二种是URL重写。 如果客户端浏览器不支持(或已禁用)cookie或会话跟踪,则URL字符串使用会话ID进行编码。 从HttpServletResponse.encodeURL(String)文档:

通过在其中包含会话ID来对指定的URL进行编码,或者,如果不需要编码,则返回URL不变。 该方法的实现包括确定是否需要在URL中编码会话ID的逻辑。 例如,如果浏览器支持cookie,或者关闭会话跟踪,则不需要URL编码。

我觉得你在这里有误解。 HTML Form EncodingURL Re-writing都不是您想要实现的目标。

如果你想实现像。

例如:用户不会输入http:// localhost:8080 / search.jsp?xxx ,而是会看到http:/ localhost:8080 / search?xxx

您可以像这样创建一个servlet映射:

  MappingServlet path/*  

必须编辑url-pattern以满足您的需要。 当然,您需要创建servlet以将url映射到实际的jsp。 大多数MVC框架都使用此技术。

阅读更多关于如何使用MVC模式开发JSP / Servlets Web App?

使用java.net.URLEncoder.encode(s, "UTF-8") ,其中s是要编码的字符串。

每当我们发送文本作为路径段,查询字符串参数等时,这都是必需的…

示例: 请参阅文档