• Spring MVC,RESTful支持


    关于RESTful的介绍,请参考:RESTful 架构详解(转载),本文引用自:《Java EE企业级应用开发教程》,应用案例:用户信息查询

    假定你已经具备开发环境,读过前几篇文章,具体请参考:Spring MVC,绑定默认数据

    一、控制器类UserController中,编写用户查询方法selectUser

    package com.itheima.controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.ResponseBody;
    import com.itheima.po.User;
    @Controller
    public class UserController {
        
        /**
         *接收RESTful风格的请求,其接收方式为GET
         */
        @RequestMapping(value="/user/{id}",method=RequestMethod.GET)
        @ResponseBody
        public User selectUser(@PathVariable("id") String id){
            //查看数据接收
            System.out.println("id="+id);
            User user=new User();
            //模拟根据id查询出到用户对象数据
            if(id.equals("1234")){            
                user.setUsername("tom");
            }
            //返回JSON格式的数据
            return user;
        }
    }

    在上述代码中,@RequestMapping(value="/user/{id}",method=RequestMethod.GET)注解用于匹配请求路径(包括参数)和方式。其中value="/user/{id}"表示可以匹配"/user/{id}"结尾的请求,id为动态参数;method=RequestMethod.GET表示只接收GET方式的请求。

    方法中的@PathVariable("id")注解则用于接收并绑定请求参数,它可以将请求URL中的变量映射到方法的形参上。如果请求路径为/user/{id}",即请求参数中的id和方法形参名称id一样,则@PathVariable后面的("id") 可以省略。

    二、在WebContent的mvc子目录下,新建restful.jsp

    <%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>RESTful测试</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <script type="text/javascript" 
        src="${pageContext.request.contextPath }/js/jquery-1.11.3.min.js">
    </script>
    <script type="text/javascript">
    function search(){
        // 获取输入的查询编号
        var id = $("#number").val();
        $.ajax({
            url : "${pageContext.request.contextPath }/user/"+id,
            type : "GET", 
            //定义回调响应的数据格式为JSON字符串,该属性可以省略
            dataType : "json",
            //成功响应的结果
            success : function(data){
                if(data.username != null){    
                    alert("您查询的用户是:"+data.username);
                }else{
                    alert("没有找到id为:"+id+"的用户!");
                }
            }
        });
    }
    </script>
    </head>
    <body>
        <form>
             编号:<input type="text" name="number" id="number">
            <input type="button" value="搜索" onclick="search()" />
        </form> 
    </body>
    </html>

    注意:JSP在请求路径中使用了RESTful风格的URL,并且定义请求方式为GET。

    三、发布项目,测试,打开网页:http://localhost:8080/ssm/mvc/restful.jsp

     输入1234,提交,浏览器会弹出信息窗口:

     如果你使用的是FireFox浏览器,按F12,选择网络,选择GET方法,页面会显示网址,如下图,正是:http://localhost:8080/ssm/user/1234

  • 相关阅读:
    unittest中常用的几个断言
    unittest中忽略某些测试用例的执行
    unittest测试套件
    unittest中的Empty suite错误
    找水王
    SCRUM冲刺day04
    SCRUM冲刺day03
    SCRUM冲刺day02
    SCRUM冲刺day01
    学习进度条week13
  • 原文地址:https://www.cnblogs.com/nayitian/p/15370569.html
Copyright © 2020-2023  润新知