`
德莫罗
  • 浏览: 174118 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Spring3 REST MVC框架,提速你的Web开发 适应ajax请求

    博客分类:
  • JSP
阅读更多

最近在Java web 项目中需要采用非常简单的REST框架,Struts2、webwork、JSF 经过一番比较,最后选择了Spring3,理由只有一个 “简单好用,并满足需要”。很久以前就Rod Johnson大叔说 Spring3 全面支持REST风格的Web服务,"We're really seeing extensive interest and growth in REST, and it will have comprehensive support for RESTful Web services," said Johnson,今天亲自尝试了一下,真有点相识恨晚的感觉,如果在这次项目运用没有太大的问题,将来在其他项目会大量运用。

工作原理如图所示:
http://1aqpcg.bay.livefilestore.com/y1p_Q90l9w2JCMiEtgzkdikNQZoyy7Ic7GiCrm8Uk2GUhHZ1C80d7j2Ty4X0IWuydFepV3htprYHjptpEtq561o-7Ok_rkBgoZa/spring_rest_fm.png
*根据HTTP请求的URL,调用相应的DispatcherServlet控制器。
*提供一个视图是作为HTTP响应发送。

页面上最终运行效果,如图所示:

http://1aqpcg.bay.livefilestore.com/y1pu1qm8gBjr1VJ_9hg2BvILVMcD3tnvyc1WTPRVpkVTHqbP00tQTml9vMDJU_xnyfNrGls2OPS7Df-Z96_zPSMFbqsWXxxUr2t/topic_view.png
主要代码:

清单1:TopicController

package com.javabloger.springrest.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/topic")  //url映射的名称
public class TopicController {

    @RequestMapping(value = "/{id}",method=RequestMethod.GET)
    public String helloWorld(
            @PathVariable Long id, 
            HttpServletRequest request,
            HttpServletResponse response) {
            request.setAttribute("message", "You Input Topci Id is: <b>"+id+"</b>"); 
        return  "topic" ;   // 对应 /WEB-INF/jsp 目录下的 topic.jsp 文件
    }
        
    @RequestMapping(value="/add")
    public String test(HttpServletRequest request,   
            HttpServletResponse response){
        System.out.println("Hello www.JavaBloger.com ");
        request.setAttribute("message", "Hello JavaBloger ! ,@RequestMapping(value='/add')"); 
        return "topic";  // 对应 /WEB-INF/jsp 目录下的 topic.jsp 文件
        
    }
}

清单2 :UserController
package com.javabloger.springrest.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.javabloger.springrest.pojo.Users;

@Controller
@RequestMapping("/user")

public class UserController {

//添加对POST方法的支持
     @RequestMapping(value="/login"  method ={RequestMethod.GET,RequestMethod.POST})
    public String test(HttpServletRequest request,   
            HttpServletResponse response,Users  userinfo){   // 非常方便可以直接在方法里面放入对象,

//同时,此注解方法签名支持ajax请求,ajax请求必须已POST方式发送。

         if (userinfo.getUsername().equals("username") && 
                 userinfo.getPassword().equals("password")
             )
         {
             request.setAttribute("user", userinfo); 
             return "users/list";   //判断,将跳转不同的页面
         }
         else{
             return "users/loginerr";  //判断,将跳转不同的页面
         }
    }
}

清单3:web.xml
   <servlet>   
      <servlet-name>springmvc</servlet-name>   
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>   
      <load-on-startup>2</load-on-startup>   
   </servlet>   
 <servlet-mapping>   
     <servlet-name>springmvc</servlet-name>   
     <url-pattern>/</url-pattern>   
 </servlet-mapping>   

清单4:springmvc-servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans  
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
            http://www.springframework.org/schema/context  
            http://www.springframework.org/schema/context/spring-context-3.0.xsd  
            http://www.springframework.org/schema/tx  
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd  
            http://www.springframework.org/schema/jdbc  
            http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd">
    <bean
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
    <!– 自动搜索@Controller标注的类 –>
    <context:component-scan base-package="com.javabloger.springrest.action" />
    <bean
        class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" />
    <bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />
    <!– Default ViewResolver –>
    <bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp"></property>
    </bean>
    <bean id="messageSource"
        class="org.springframework.context.support.ResourceBundleMessageSource"
        p:basename="i18n/messages" />
</beans>

在jsp中通过jquery 提交ajax请求的方式

var jsondata =  jQuery.parseJSON('{"activityName":"John"}');

alert(jsondata.activityName);

jQuery.ajax( {

type : 'POST',

url : 'activity/test.do',

data : jsondata,

dataType : 'json',

success : function(data) {

alert(data.success);

},

error : function(e) {

alert("error"+e);

}

});

 

 

分享到:
评论

相关推荐

    基于MVC框架的java web开发

    **基于MVC框架的Java Web开发** 在Java Web开发领域,Model-View-Controller(MVC)模式是一种广泛采用的设计模式,它将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller),以实现业务...

    spring-webmvc5.3.6 jar包.rar

    这个jar文件包含Spring MVC框架相关的所有类。  包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。...该jar包含Spring MVC框架相关的所有类,如Servlets,Web MVC

    基于Spring MVC框架的Web应用开发.zip

    基于Spring MVC框架的Web应用开发 项目简介 本项目是一个基于Spring MVC框架的Web应用开发示例,涵盖了从基础的MVC模式实现到高级的注解开发、数据交互、文件上传下载、拦截器配置等多个方面的功能。通过本项目,...

    Spring Web MVC外文翻译

    Spring MVC 和许多其他 Web 框架一样,围绕前端控制器模式设计,其中中央 Servlet(即 DispatcherServlet)提供了一个共享算法用于处理请求,而实际的工作则由可配置的委托组件来完成。这种模式非常灵活,支持多样化...

    spring-webmvc-5.0.9 jar包、源码和javadoc

    总结,Spring Web MVC 5.0.9提供了强大的Web应用开发框架,其丰富的功能和注解驱动的开发方式极大地提高了开发效率。通过查阅提供的源码和Javadoc,开发者可以更深入地理解和运用这一框架,实现高效、可维护的Web...

    spring-web-5.2.3.RELEASE和spring-webmvc-5.2.3.RELEASE

    总的来说,Spring Web和Spring Web MVC是Spring框架的重要组件,它们为Java Web开发提供了强大的工具和基础设施。5.2.3.RELEASE版本的发布,意味着开发者可以利用最新的特性和改进,更高效地构建和维护他们的Web应用...

    spring.jar spring-webmvc-struts.jar spring-webmvc.jar

    标题中的"spring.jar"、"spring-webmvc-struts.jar"和"spring-webmvc.jar"都是Spring框架相关的Java库文件,通常以.jar结尾的文件是Java的归档文件,包含了类、资源和元数据,用于Java应用程序的运行。这些文件在...

    Spring MVC REST Demo

    Spring MVC 是一个强大的Java框架,用于构建Web应用程序,而REST(Representational State Transfer)是一种软件架构风格,常用于创建Web服务。"Spring MVC REST Demo"是一个示例项目,旨在展示如何在Spring MVC框架...

    spring3MVC 框架demo

    Spring3MVC是Spring框架的一个重要模块,专为构建Web应用程序提供模型-视图-控制器(MVC)架构支持。这个框架使得开发者可以更轻松地处理HTTP请求、数据绑定、验证以及视图渲染等任务。在"spring3MVC框架demo"中,...

    Spring MVC框架实例

    总结,Spring MVC 为开发者提供了灵活且强大的 Web 开发框架,通过 XML 配置,我们可以自定义各个组件,实现复杂的应用场景。随着版本的升级,Spring 逐渐引入了更多的注解配置,使得开发更加简洁高效。不过,理解 ...

    spring-webmvc jar包

    spring-webmvc-4.1.0.RELEASE.jar用于Spring框架的mvc注解

    编程语言+JAVAspring+MVC框架+Web开发

    编程语言+JAVAspring+MVC框架+Web开发**:这是一个关于JAVAspring编程语言的MVC框架的Web开发的资源,适合有一定JAVAspring基础的开发者。它介绍了JAVAspring的MVC框架的概念、原理和作用,以及如何使用JAVAspring的...

    SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统

    SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查功能设计一个简单的学生信息管理系统,要求使用SSM框架技术整合实现,用户登录后能够通过Web页面添加、删除、修改和查询学生信息 ...

    精通Spring_Web_MVC优秀框架.pdf

    - **对Ajax的支持**:Spring Web MVC提供了丰富的Ajax支持,包括直接处理Ajax请求、使用`@RequestBody`、`@ResponseBody`注解等。此外还支持对Ajax返回XML的支持以及HTTP消息转换器。 - **文件上传下载**:了解如何...

    Spring Web MVC入门教程

    Spring Web MVC是一种基于MVC模式的轻量级Java Web应用框架,它是Spring框架的一部分,主要用于简化Web层的开发。Spring Web MVC允许开发者将应用程序分为三个主要组件:模型(Model)、视图(View)和控制器(Controller...

    spring+spring mvc+mybatis案例整合.docx

    通过本案例,我们可以学习如何使用 Spring、Spring MVC 和 MyBatis 框架来开发一个基于 Java 的 Web 应用程序,并掌握相关的技术和配置。 知识点: 1. Spring 框架的概述和应用场景 2. Spring MVC 框架的概述和...

    为java_web项目添加spring_MVC框架(JSTL表达式)

    标题中的“为java_web项目添加spring_MVC框架(JSTL表达式)”指的是在Java Web开发中集成Spring MVC框架,并利用JSTL(JavaServer Pages Standard Tag Library)进行页面表达式的处理。Spring MVC是Spring框架的一个...

    spring-web.jar spring-webmvc.jar

    Spring框架是Java开发中不可或缺的一部分,它为构建高效、可重用的Web应用程序提供了强大的支持。在本讨论中,我们将深入探讨两个核心组件——`spring-web.jar`和`spring-webmvc.jar`,它们在Spring MVC框架中扮演着...

    spring3 mvc 用 jquery ajax 交互

    在IT行业中,Spring MVC和jQuery AJAX是两种广泛使用的技术,它们在构建现代Web应用程序时起着关键作用。本文将深入探讨如何在Spring MVC框架中利用jQuery的AJAX功能进行前后端交互,提升用户体验。 首先,Spring ...

Global site tag (gtag.js) - Google Analytics