zoukankan      html  css  js  c++  java
  • maven项目spring框架中整合restful

    一、restful介绍

    springmvc的resturl是通过@RequestMapping 及@PathVariable annotation提供的,
    通过如@RequestMapping(value="/blog /{id}",method=RequestMethod.DELETE)即可处理/blog/1 的delete请求.

    在发送请求传递参数时,不再是localhost:8080/blog?id=1这种形式,而是localhost:8080/blog/1.

    @RequestMapping(value="/blog/{id}",method=RequestMethod.DELETE)
    public ModelAndView delete(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response) {
          blogManager.removeById(id);
          return new ModelAndView(LIST_ACTION);
     }

    这样,在controller中就可以取到id=1的参数了。

    二、配置restful

    1、web.xml配置

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        id="schedule-console" version="3.0">
      
      <!-- 配置spring的servlet --> 
      <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>
    org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
    <!-- 覆盖default servlet的/, springmvc servlet将处理原来处理静态资源的映射 -->
    <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>
      
    <!-- 该servlet为tomcat,jetty等容器提供,将静态资源映射从/改为/static/目录,如原来访问 http://localhost/foo.css ,现在http://localhost/static/foo.css -->
    <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/static/*</url-pattern>
    </servlet-mapping>
      
    <!-- URL重写filter,用于将访问静态资源http://localhost/foo.css 转为http://localhost/static/foo.css -->
    <filter>
    <filter-name>UrlRewriteFilter</filter-name>
    <filter-class>org.tuckey.web.filters.urlrewrite.UrlRewriteFilter</filter-class>
    <init-param>
    <param-name>confReloadCheckInterval</param-name>
    <param-value>60</param-value>
    </init-param>
    <init-param>
    <param-name>logLevel</param-name>
    <param-value>DEBUG</param-value>
    </init-param>
    </filter>
    
    <!-- 浏览器不支持put,delete等method,由该filter将/blog?_method=delete转换为标准的http delete方法 -->
    <filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
    </filter>
    
    <filter-mapping>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <servlet-name>springmvc</servlet-name>
    </filter-mapping>
      
        <!-- Spring的log4j监听器 -->  
        <listener>  
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
        </listener>  
        
        <!-- 字符集 过滤器  -->  
        <filter>  
            <filter-name>CharacterEncodingFilter</filter-name>  
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
            <init-param>  
                <param-name>encoding</param-name>  
                <param-value>UTF-8</param-value>  
            </init-param>  
            <init-param>  
                <param-name>forceEncoding</param-name>  
                <param-value>true</param-value>  
            </init-param>  
        </filter>  
        <filter-mapping>  
            <filter-name>CharacterEncodingFilter</filter-name>  
            <url-pattern>/*</url-pattern>  
        </filter-mapping>
        
      <!-- 欢迎页 -->
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
      <!-- 设置session有效时间 -->
      <session-config>  
      <session-timeout>9999</session-timeout>  
    </session-config>
        
        </web-app>

    2、在pom.xml添加依赖,引入jar包

        <!-- URL重写filter,用于将访问静态资源http://localhost/foo.css 转为http://localhost/static/foo.css -->
        <dependency>
             <groupId>org.tuckey</groupId>
             <artifactId>urlrewritefilter</artifactId>
             <version>4.0.4</version>
        </dependency>

    3、Controller编写

    package com.zp.test.controller;
    
    
    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;
    
    
    
    @Controller
    @RequestMapping("/userinfo")
    public class UserController {
        
        
          @RequestMapping(value="/{id}")
          public void test(@PathVariable Long id,HttpServletRequest request,HttpServletResponse response){
              
              System.out.println(id);
              
              
          }
          
    
    }

    4、jsp页面

    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <script type="text/javascript" src="static/js/jquery-1.10.1.min.js"></script>
    <script>
    function test1(){
        
        $.ajax({
             url:"/test2/userinfo/5",
             data:{},
             type:"post",
             dataType:"json",
             success:function(data){
                 alert("success");
             },
             error:function(){
                 alert("error");
             }
         });
        
        
    }
    
    function test2(){
        window.location.href="test2.jsp";
    }
    
    </script>
    <body>
    <input type="button" value="test1" onclick="test1();"/>
    <input type="button" value="test2" onclick="test2();"/>
    </body>
    </html>

    5、启动服务,输入网址:localhost:8080/test2

    test1按钮是发送请求,进入controller;

    test2按钮是跳转静态页test2.jsp.

    控制台输出:5,证明restful搭建成功

  • 相关阅读:
    [引]Windows窗体编程基础学习: 对话框组件
    UML学习四:UML在微软的VS与Visio间的应用 VEA(Visio for Enterprise Architects)
    SQL查询 FOR XML [RAW|AUTO|EXPLICIT]
    微软企业类库:Enterprise Library for .NET Framework 2.0 January 2006
    自定义制作 自动定时更换图片的桌面背景 html页面
    [引]Windows Server 2003 : Windows 群集
    LOVE
    SQL Server Mobile 学习(三):SQL Server Mobile 远程数据访问(RDA)
    游戏分类
    [摘]UML学习二:标准建模语言UML的静态建模机制
  • 原文地址:https://www.cnblogs.com/Neonuu/p/5182109.html
Copyright © 2011-2022 走看看