SpringMvc相应注解配置

     @RequestParam        参数注解     @RequestHeader         请求头注解     @CookieValue         Cookie注解

注解的好处是什么:

         只要你写上相应的注解他就会给你得到相应的参数、减少了一些繁杂的操作
import org.spring work.context.annotation.Primary;import org.spring work.stereotype.Controller;import org.spring work.web.bind.annotation.*;import javax.net.ssl.HostnameVerifier;import javax.servlet.http.Cookie;@Controller//所明这个类是控制器 要想管理servlet就得将他们集中起来进行统一的管理@RequestMapping("/mm")//@RequestMapping 请求注解 也可以写在类上 相当于一个虚拟夹子 也可以当做加一个父路径public class Action {    private String key;    @RequestMapping(value = "/hehe", method = RequestMethod.POST, params = {"name", "a=10"})    // 可以选择同一个url也就是value 不同的请求方式的方法 好处根据你的请求方式选择参数    // params 根据参数确定方法    //method 此参数是请求方式的选择    public void Method(String uname, String password) {        //需要表单参数可以直接在方法参数上写参数名他会自动帮你获得        // 不用从请求头上面获得了 方便了不少    }    @RequestMapping("/H1")    public void Method1(@RequestParam(value = "H1", required = false, defaultValue = "小明") String name) {        //@RequestParam        // value 参数重命名 可以帮你获得里面的值        // required 必填选择默认必填 false表示不用必填        //defaultValue 表示默认值 你要是不填我就按这个填写    }    @RequestMapping("/H2")    public void Method2(@RequestHeader(value = "key", required = true, defaultValue = "") String Key) {        //@RequestHeader        // value 参数重命名 可以帮你获得里面的值        // required 必填选择默认必填 false表示不用必填        //defaultValue 表示默认值 你要是不填我就按这个填写    }    @RequestMapping("H3")    public void Method3(@CookieValue(value = "JSESSIONID") String json) {        // @CookieValue        // value 参数重命名 可以帮你获得里面的值        // required 必填选择默认必填 false表示不用必填        //defaultValue 表示默认值 你要是不填我就按这个填写        //好处可以帮你拿到cookie 因为cookie的拿取  和赋值的操作是真的麻烦    }    }

@RequestBody 注解 接收请求的内容体 例如json、txt、 等

   public void aVoid(@RequestBody String body) {       //尼玛 这个注解 只能这样接受String body       // 可以用来接受 json、txt、 等格式       //主要用法还是用来接收 json 将json一口气读上来       System.out.println(body);   }

mvc中的用对象来接收数据

    @RequestMapping(value = "/HH",method = RequestMethod.POST)    public void Method(Stu stu) {        //注意 他只接受对应着这个对象的值        System.out.println(stu.getAddress());        System.out.println(stu.getName());    }

@RequestAttribute 标记 相当于request.setAttribute("a","A");//生命周期短

@ModelAttribute 标记在所有 方法之前执行 永远是这个标记下的方法最先执行
在其他方法中取值 @ModelAttribute("address") 在方法中说明注解及请求参数名称即可

    public void m1(Model model) {        model.addAttribute("address","上海");//可以带参到请求头        System.out.println(1111);    }

Model&Map 参数 MVC会自动把你的Model中的数据默认存储在request对象中(用add的方法添加即可,他会自动将参数带入请求头当中)

@SessionAttributes 注解 (检索Model和Map的数据是否要存储在Session中)全Action都有效果
names 名字(Model和Map中如果有这个属性自动塞入到session中)

types 类型(Model和Map中如果有这个类自动塞入 session中)

@SessionAttribute 在方法属性中声明此注解

在session中帮我取一个值 required必填项 、 name和value表示名字

返回参数都会包装成ModelAndView对象 可以设置跳转的页面 可以将数据带入请求头 带值到跳转页面(转发形式的)

    public ModelAndView A(ModelAndView modelAndView/*这里的对象Spring会帮我们创建好*/) {        //ModelAndView modelAndView=new ModelAndView(); 当然你也可以自己选择new对象        modelAndView.add ("name", "小红");//转发所带的值        modelAndView.setViewName("aa");//跳转页面        return modelAndView;//执行将对象返回出去 他就会按照你的参数进行跳转    }

返回json数据 因为有些需求是需要 将值进行运算后 返回json数据的
1.添加处理jsonjar包、版本可以自己选

com.faster .jackson.core
jackson-databind
2.9.4

2.在spring 中支持 mvc的注解
mvc:annotation-driven>

3.然后把 @RsponseBody
可以写在方法返回值及方法上
也可以直接在类上写 @RestController(写在类上这个类的返回值都是json数据)
@Controller @ResponseBody 写这两个和前面意思一样 都是这个类返回值都是json数据
接受JSON数据可以使用 @RequestBody进行注解(写在属性上面)

    public @ResponseBody Stu A(Stu stu) {        //可以将对象包装成json返回出去,对象的创建与返回 都有spring帮你完成        stu.setAddress("北京");        stu.setName("小明");        return stu;    }    @RequestMapping("/execute")    //这里是响应头    public @ResponseBody HashMap execute10() {        //返回键值对集合、可以嵌套包装成json返回        HashMap hashMap = new HashMap();        hashMap.put("name", "熬夜那不要怕多喝点花茶");        hashMap.put("address","这样猝死会比较香");        HashMap hashMap1 = new HashMap();        hashMap1.put("名言",hashMap);        return hashMap1;    }

收藏 打印