最近在研究springMVC框架,做测试demo时添加ajax异步请求时出现问题,现在贴出请求端源码
<script type="text/javascript" src="./js/jquery-1.10.2.js"></script>
<script type="text/javascript">
function testLogin(){
alert("sdfs");
$.ajax({
type: "get",
url: "./login.do",
dataType: "json",
data: {
loginName: "111",loginPassword:"222"
},
beforeSend: function(XMLHttpRequest){
//ShowLoading();
alert("beforeSend");
},
success: function(data, textStatus){
alert(data);
},
complete: function(XMLHttpRequest, textStatus){
//HideLoading();
alert("Complete");
},
error: function(XMLHttpRequest, textStatus, errorThrown){
//请求出错处理
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
}
</script>
能够成功请求后台,但是,在后台的controller处理过程中出现错误。经查找,觉得是springMVC框架没有加入json支持,所以去掉dataType: "json", 就用默认字符串传值,前台正常显示,可是控制台报错。
10:46:41,625 WARN DefaultHandlerExceptionResolver:127 - Handling of [org.springframework.web.HttpMediaTypeNotAcceptableException] resulted in Exception java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:421) at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpMediaTypeNotAcceptable(DefaultHandlerExceptionResolver.java:219) at org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.doResolveException(DefaultHandlerExceptionResolver.java:103) at org.springframework.web.servlet.handler.AbstractHandlerExceptionResolver.resolveException(AbstractHandlerExceptionResolver.java:136) at org.springframework.web.servlet.DispatcherServlet.processHandlerException(DispatcherServlet.java:1060) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:884) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:851) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:756) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662) 2013-9-24 10:46:41 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet springMVC-flex threw exception org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation at org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:181) at org.springframework.web.servlet.mvc.method.annotation.support.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:146) at org.springframework.web.servlet.mvc.method.annotation.support.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:103) at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:64) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:113) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:502) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:465) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:863) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:851) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:756) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662)
于是再次查找错误,后度娘告诉我:servlet代码中有out.write(””),这个和JSP中缺省调用的response.getOutputStream()产生冲突.
因为在jsp中,out变量是通过response.getWriter得到的,在程序中既用了 response.getOutputStream,又用了out变量,故出现以上错误,没办法只有
try { PrintWriter out = response.getWriter(); out.println("ceshi ajax"); out.flush(); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } mv.addObject("ajax测试!"); mv.setViewName("login"); return null;
reutrn null 变得正常,不知道大神们是怎么处理这个问题的呢?
相关推荐
在SpringMVC和jQuery的集成中,Ajax通常用于实现前后端的无刷新交互。例如,用户在前端进行某些操作,如点击按钮或填写表单,jQuery可以监听这些事件并发起Ajax请求。使用$.ajax()方法,我们可以设置URL(指向...
在本示例中,我们将探讨如何使用Spring MVC框架与jQuery库结合实现Ajax功能。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序,而jQuery则是一个强大的JavaScript库,简化了DOM操作、事件处理以及异步HTTP...
综上所述,SpringMVC与jQuery AJAX的集成使得前端与后端能够高效地进行数据交互,实现了页面的动态更新,提高了应用的响应速度和用户体验。在实际项目中,可以根据需求调整请求类型、数据格式以及错误处理策略,以...
总的来说,通过Spring MVC、jQuery和AJAX的集成,我们可以实现用户友好的文件上传功能,同时保持前端和后端的分离,提升用户体验。这只是一个基础的实现,实际项目中可能需要考虑更多细节,如错误处理、文件类型验证...
这个项目是一个综合性的Web开发教程,旨在帮助有基础的程序员快速掌握SpringMVC框架、Hibernate4 ORM工具、JQuery库以及Ajax技术,并与MySQL数据库进行集成。通过14个逐步进阶的示例,开发者可以了解如何将这些技术...
总结来说,通过SpringMVC、MongoDB和jQuery的集成,我们可以构建出一个高效、易用且具有良好用户体验的用户操作Web应用。这个过程中涉及的技术点涵盖了后端开发、数据库管理以及前端交互的多个层面,对于提升开发者...
通过查看这些文件,你可以更好地理解Spring MVC与jQuery AJAX的集成。 总结,结合Spring MVC的Controller和jQuery的AJAX功能,开发者可以构建出更加动态、响应式的Web应用。这种交互方式使得前端可以灵活地与后端...
通过“spring_mvc_ajax.zip”中的资源,你可以深入学习和实践SpringMVC与Ajax的集成,了解如何创建一个有效的异步数据交互系统。这个压缩包可能包含了相关的Java代码、HTML模板、JavaScript脚本以及配置文件,供你...
结合使用SpringMVC和Ajax,可以实现异步数据交互,提高用户体验。 在SpringMVC中,Ajax请求通常涉及到以下几个关键步骤: 1. **前端准备**: - 首先,你需要在HTML页面中引入jQuery库,因为它是广泛使用的...
四、Ajax与SpringMVC、Mybatis的集成 在SpringMVC中,可以通过jQuery库或者原生JavaScript来实现Ajax请求。这些请求通常会触发由SpringMVC控制器处理的特定端点。控制器再调用Mybatis的Mapper接口,执行数据库操作...
在Spring MVC框架中,异步Ajax请求是一种常见的...理解如何有效地集成Ajax和Spring MVC,可以提升应用程序的用户体验和效率。在实际开发中,结合合适的前端库和良好的设计原则,可以实现高效且可维护的异步Web功能。
总结一下,SpringMVC通过集成Jackson库,提供了对Ajax请求的高效支持,使得开发者能够方便地处理JSON数据,实现页面的异步更新。在实际项目中,结合前端JavaScript库如jQuery或Vue.js,可以构建出高度交互的Web应用...
jQuery是一个JavaScript库,简化了DOM操作、事件处理、动画制作和Ajax交互。在Web应用中,jQuery常用于提升用户体验和页面交互性。 【Lucene】 Lucene是Apache软件基金会的全文搜索引擎库,可用于Java应用中实现...
【标题】"spring3mvc-jQuery-easyUI做的ajax版本用户管理系统" 提供了一个使用SpringMVC、jQuery和easyUI框架构建的Web应用程序实例,它着重于实现基于Ajax的用户管理功能。这个项目展示了如何将这三个强大的技术...
本教程将探讨如何在Spring MVC项目中集成Ajax,实现动态的数据交互。 首先,我们需要理解Spring MVC的工作原理。它接收HTTP请求,通过DispatcherServlet进行调度,然后由相应的Controller处理。Controller将业务...
【SpringMVC+MyBatis+Spring+jQuery】是一个经典的Java Web开发技术组合,用于构建高效、可维护的Web应用程序。下面将详细讲解这四个组件及其在项目中的作用。 SpringMVC是Spring框架的一部分,是一个模型-视图-...
【标题】"springmvc+ajax+mybatis前后端整合珍藏版"涉及到的是一个完整的Web开发框架集成,其中SpringMVC作为后端控制层,MyBatis作为持久层框架,而Ajax则是前端与服务器交互的重要技术。这个整合教程提供了一个...
综上所述,这个模板集成了SpringMVC作为后端控制,MyBatis作为数据持久层,jQuery提供前端交互,EasyUI则负责美化和增强用户体验。这四个技术的组合,为开发高效、稳定的后台管理系统提供了强有力的支持,是Web开发...
【SpringMVC+Mybatis+jQuery easyui】是一个常见的企业级Web开发框架组合,它集成了SpringMVC作为控制层,Mybatis作为数据访问层,以及jQuery和easyui作为前端展示层。这个框架的整合提供了高效、灵活且可扩展的开发...
在构建一个基于Spring、SpringMVC、Mybatis、Maven、Bootstrap、ajax和jQuery的简单员工后台管理系统时,我们需要理解这些技术的核心概念以及它们如何协同工作。以下是对这些技术的详细说明: 1. **Spring框架**:...