和二不要调皮 2016-09-10 10:36 采纳率: 42.9%
浏览 1299
已结题

springmvc jackson 一直提示uri非法字符

前端:
$(document).ready(function(){
$("#login").click(function(){

            var username= document.getElementById("username").value;
            var password = document.getElementById("password").value;
            /*alert(username+" "+password);*/
            var jo ={"username":"wushangkang"};
            var json = JSON.stringify(jo);
            $.ajax({
                type:"get",
                url:"http://localhost:8080/springmvc2/JsonGet",
                async:true,
                data:JSON.stringify(jo),
                dataType:"application/json",                    
                success:function(datas){
                    alert(datas);
                },
                error:function(){
                    alert("登录出错");          
                }
            });
        });
    });

springmvc配置文件:

    <context:component-scan base-package="com.controller" />
<mvc:annotation-driven />
<bean
    class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
    <property name="messageConverters">
        <list>
            <ref bean="mappingJacksonHttpMessageConverter" />
        </list>
    </property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
    class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
    <property name="supportedMediaTypes">
        <list>
            <value>application/json;charset=UTF-8</value>
            <value>text/html;charset=UTF-8</value>
        </list>
    </property>
</bean>

jackson jar包
jackson-core-2.2.3.jar
jackson-databind-2.2.3.jar
jackson-annotations-2.2.3.jar

代码:
@Controller
public class JsonController {

@RequestMapping(value="/JsonGet",method=RequestMethod.GET)
@ResponseBody
public String getJson(@RequestBody User user){
    System.out.println("------------------begin---------------");
    System.out.println(user.getUsername());
    System.out.println("------------------end------------------");
    return "success";
}
}

错误提示:
    严重: Servlet.service() for servlet [springmvc] in context with path [/springmvc2]

threw exception [Request processing failed; nested exception is java.lang.Illeg
alStateException: Could not get HttpServletRequest URI: Illegal character in que
ry at index 41: http://localhost:8080/springmvc2/JsonGet?{%22username%22:%22wush
angkang%22}] with root cause

第41位置应该是大括号,双引号被转译%22,这大概是编码问题,这是用火狐才这样,用IE就没事,不过还是错误

  • 写回答

1条回答 默认 最新

  • 和二不要调皮 2016-09-11 01:39
    关注

    顶起!!!!!!!!!!!!!!!!!!

    评论

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元