0 0

springmvc可不可以先返回视图,在进行数据操作?5

@RequestMapping(value = "/logout", method = RequestMethod.GET)
	public String logout(@Param("x") String x, @Param("y") String y,
			@Param("className") String className,
			@Param("posName") String posName, HttpServletRequest request) {
		HttpSession session = request.getSession();
		User user = (User) session.getAttribute("user");
		String[] xPos = x.split(",");
		String[] yPos = y.split(",");
		String[] classNames = className.split(",");
		String[] posNames = posName.split(",");

		for (int i = 0; i < 63; ++i) {
			Position pos = new Position(Integer.parseInt(xPos[i]),
					Integer.parseInt(yPos[i]), classNames[i].trim(),
					posNames[i].trim(), user.getUserId());
                        //数据库更新操作
			positionService.updatePosition(pos);
		}
		session.invalidate();
		return "redirect:/index";
	}

我这段代码的执行效率非常低,要花很多的时间,主要时间花在更新数据库上了,数据库关系映射用的Mybatis。
我想问问怎么样才能提高它的效率,或者说可不可以先返回试图,然后再去更新数据库?
2013年4月23日 14:07

4个答案 按时间排序 按投票排序

0 0

多线程  直接返回视图  任务后台执行

2013年5月03日 17:09
0 0

HttpSession session = request.getSession(); 
        User user = (User) session.getAttribute("user"); 
        String[] xPos = x.split(","); 
        String[] yPos = y.split(","); 
        String[] classNames = className.split(","); 
        String[] posNames = posName.split(","); 
 
        for (int i = 0; i < 63; ++i) { 
            Position pos = new Position(Integer.parseInt(xPos[i]), 
                    Integer.parseInt(yPos[i]), classNames[i].trim(), 
                    posNames[i].trim(), user.getUserId()); 
                        //数据库更新操作 
            positionService.updatePosition(pos); 
        } 
        session.invalidate(); 

可以考虑异步任务  即session销毁后立即返回  后续工作 放到异步任务里  如spring直接支持

2013年4月23日 14:24
0 0

你可以考虑ajax+批量更新,这样前台页面就不需要刷新,界面也会友好点

2013年4月23日 14:16
0 0

positionService.updatePosition(pos);   
应该考虑使用批量更新,速度会快很多,http://blog.csdn.net/zzy7075/article/details/8571439

2013年4月23日 14:13

相关推荐

    (代码)SpringMVC第8讲:多视图支持

    在本节SpringMVC教程中,我们将探讨"多视图支持"这一核心概念,这是构建Web应用程序时不可或缺的一部分。SpringMVC作为一个强大的MVC框架,提供了丰富的功能来处理多种类型的视图技术,使得开发者能够灵活地选择最...

    SpringMVC PPT_springmvc_

    SpringMVC 提供了对文件上传和下载的支持,可以方便地处理用户的文件操作请求。 十一、RESTful API 设计 SpringMVC 也支持 RESTful 风格的 Web 服务,可以通过 @RequestMapping 注解配合 HTTP 方法(GET、POST、PUT...

    springmvc增删改,分页,导入数据等功能

    5. **验证机制**:在增删改操作中,数据验证是必不可少的。SpringMVC可以结合JSR-303/JSR-349 Bean Validation,通过在模型对象上添加验证注解,如@NotBlank、@Size等,进行前端和后端的数据校验。 6. **模板引擎**...

    SpringMVC框架下使用jQueryAJAX进行数据交互

    4. **处理响应**:在控制器的处理方法中,你可以对请求参数进行处理,执行业务逻辑,然后通过`ModelAndView`或`@ResponseBody`返回响应数据。如果使用`@ResponseBody`,Spring会自动将结果转换为JSON或其他格式,...

    springMVC教案.rar

    SpringMVC提供了MockMvc工具,允许在不依赖Web服务器的情况下进行单元测试和集成测试。 这份教案将涵盖以上各个知识点,并可能包括实践案例和代码示例,帮助初学者理解SpringMVC的工作原理,掌握如何构建和调试...

    springmvc数据验证

    在Spring MVC测试方面,我们可以使用JUnit和MockMVC来对数据验证进行单元测试。MockMVC允许我们在不依赖于实际服务器环境的情况下模拟HTTP请求,测试控制器的行为。在验证失败的情况下,我们可以检查模型中的错误...

    springMVC初步

    SpringMVC是Spring框架的一个模块,专门用于处理Web应用程序...在这个个人练习项目中,你可以看到一个简单的SpringMVC应用实例,尽管它可能不适合大规模项目,但对于初学者理解SpringMVC的基础操作具有一定的学习价值。

    SpringMVC+Hibernate+Spring整合实例

    在SpringMVC中,Controller接收请求,处理业务逻辑后,将结果返回给View,而Model则包含了业务数据。SpringMVC通过DispatcherServlet作为前端控制器,处理所有HTTP请求,并分发到相应的处理器。此外,它支持多种视图...

    springmvc_day02

    除了基本的视图解析,Spring MVC 还允许我们使用ModelAndView对象来返回视图和模型数据。ModelAndView对象可以包含逻辑视图名,以及附加到模型的数据,方便在视图中使用。 在学习Spring MVC的过程中,理解视图解析...

    传智播客springMVC公开课

    在 Controller 方法中,我们可以创建一个 ModelAndView 对象,添加模型数据并指定视图名称,然后将其返回给 DispatcherServlet,后者会根据视图名称来渲染对应的视图。 **视图解析器**(ViewResolver)在 SpringMVC...

    SpringMVC jar

    在Java Web开发中,SpringMVC是一个不可或缺的组件,它简化了开发流程并提高了效率。 SpringMVC的核心概念包括DispatcherServlet、Controller、Model、View和ViewResolver。DispatcherServlet是SpringMVC的前端控制...

    SSM笔记-SpringMVC的数据格式化 、数据校验、错误提示、错误信息国际化、返回json

    在Java Web开发中,SpringMVC是一个非常流行的MVC(Model-View-Controller)框架,它为构建可扩展且易于维护的Web应用程序提供了强大的支持。本笔记主要关注SpringMVC中的几个关键特性:数据格式化、数据校验、错误...

    SpringMVC学习.pdf

    通过使用Spring的Validator接口,可以在控制器层进行数据验证,而全局异常处理则允许开发者在一个集中的位置处理所有控制器抛出的异常,极大地提高了代码的健壮性和可维护性。 总之,SpringMVC是构建在Spring框架之...

    springMVC学习

    * 可重用的业务代码,而不需要代码重复:你可以使用现有的业务对象作为命令对象或表单对象,而不需要在 ActionForm 的子类中重复它们的定义 * 可定制的绑定和验证:将类型不匹配作为应用级的验证错误,这可以保存...

    数据统计报表实时更新springmvc+ajax+highcharts

    数据统计报表是现代企业运营中不可或缺的工具,它能够帮助企业实时了解业务运行状况,以便做出及时有效的决策。在这个项目中,我们使用了SpringMVC、Ajax以及Highcharts这三种技术来实现一个动态更新的数据统计报表...

    springMVC+mybatis搭建框架

    当用户发起请求时,SpringMVC的DispatcherServlet会根据配置的映射规则找到相应的控制器方法执行,并通过ModelAndView对象返回视图。 视图层通常使用JSP、FreeMarker或其他模板引擎来渲染结果。SpringMVC会根据...

    简单的java入门springmvc可执行demo

    这个"简单的java入门springmvc可执行demo"是针对初学者设计的一个基础项目,它可以帮助理解Spring MVC的基本工作原理和配置过程。在这个项目中,我们使用的是Java 1.8和Spring MVC 5.0.8版本,值得注意的是,它并不...

    SpringMVC&&GraphQL

    SpringMVC是Spring框架的一部分,主要用于构建强大的、基于Java的企业级Web应用程序,而GraphQL是一种新的API查询语言,旨在解决传统RESTful API在数据获取上的局限性。现在我们来详细探讨这两者以及它们的整合。 *...

    SpringMVC_Jar包

    它提供了模型-视图-控制器(MVC)架构,使开发者能够将业务逻辑、数据处理和用户界面分离,从而实现更清晰、更可维护的代码结构。下面将详细讨论SpringMVC的关键组件、工作流程、优势以及如何在JavaWeb项目中整合...

    SpringMVC demo 完整源码实例下载.zip

    SpringMVC提供MultipartFile接口处理文件上传,而文件下载则可以通过StreamingResponseBody或者直接返回文件路径实现。这些功能的实现涉及了流处理和响应头设置,确保了文件传输的正确性和效率。 异常处理在Web应用...

Global site tag (gtag.js) - Google Analytics