JavaWeb项目发起get请求时出现HTTP Status 400错误的原因及解决办法

今日写代码时发现一个在jsp发起的get请求会报400错误,具体如下:

经检查发现是get请求中的参数target里带有特殊字符:   \     引起

故解决办法也很好解决,要么将参数里的特殊字符去除,要么将参数编码。

我采用编码方式。

在jsp里这样写:

<%
    //传参前将target用加密工具将其编码为base64形式的字符串
    String target = AESTool.encrypt(folder.getRelativePath(),SystemData.SYS_AES_KEY);
%>
<label class="custom-control-label" for="1">
    <a href="http://localhost:8080/cloud/goIndex.do?target=<%=target %>">            
        这是超链接的标题
    </a>
</label>

服务端接收到参数后这样写:

//服务端接收到参数后将其解码还原为带特殊字符的原始字符串
String target = AESTool.decrypt(target_enc, SystemData.SYS_AES_KEY);

我这里使用的编码方式是AES,效率上可能有所欠缺,希望更快的可以直接上base64。

------end-----------

发布了109 篇原创文章 · 获赞 34 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/shuaicenglou3032/article/details/102801060