一、@Controller

  • @Controller 标记一个类是Controller

二、RequestMapping  地址映射

  • 2.1  Value的操作。

注解在类上面    (父)
                注解在方法上面。 (子)

  • 2.1.1 SpringMVC完整的请求,就是父子加请来的请求。

        <a href="<%=request.getContextPath()%>/userController/list">list方法</a>
<a href="<%=request.getContextPath()%>/userController/save">save方法</a>

controller:

package com.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value = "/userController")
public class UserController {
@RequestMapping(value = "/list")
public ModelAndView list(HttpServletRequest request,
HttpServletResponse response) throws Exception { System.out.println("r执行list方法"); ModelAndView mv = new ModelAndView();
mv.addObject("req_key", "Model Data");
mv.setViewName("succ");
return mv;
} @RequestMapping(value = "/save")
public ModelAndView save(HttpServletRequest request,
HttpServletResponse response) throws Exception { System.out.println("r执行save方法"); ModelAndView mv = new ModelAndView();
mv.addObject("req_key", "Model Data");
mv.setViewName("succ");
return mv;
} }
  • 2.2   用于映射请求中的参数。

        <a href="<%=request.getContextPath()%>/paramController?task=list">list方法</a>
<a href="<%=request.getContextPath()%>/paramController?task=save">save方法</a>

controller:

package com.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value = "/paramController")
public class ParamController {
@RequestMapping(params = "task=list")
public ModelAndView list(HttpServletRequest request,
HttpServletResponse response) throws Exception { System.out.println("r执行list方法"); ModelAndView mv = new ModelAndView();
mv.addObject("req_key", "Model Data");
mv.setViewName("succ");
return mv;
} @RequestMapping(params = "task=save")
public ModelAndView save(HttpServletRequest request,
HttpServletResponse response) throws Exception { System.out.println("r执行save方法"); ModelAndView mv = new ModelAndView();
mv.addObject("req_key", "Model Data");
mv.setViewName("succ");
return mv;
} }
  •   2.3  Method:表示是处理哪一种请求.GET/POST

     <a href="<%=request.getContextPath()%>/methodController/add">list方法</a>

        <form method="post" action="<%=request.getContextPath()%>/methodController/add">
<input type="submit" value="提交"/>
</form>

controller:

package com.controller;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value = "/methodController")
public class MethodController { @RequestMapping(value = "/add", method = RequestMethod.GET)
public ModelAndView add(HttpServletRequest request,
HttpServletResponse response) throws Exception { System.out.println("处理GET请求"); ModelAndView mv = new ModelAndView();
mv.addObject("req_key", "Model Data");
mv.setViewName("succ");
return mv;
} @RequestMapping(value = "/add", method = RequestMethod.POST)
// @RequestMapping(value = "/add", method = { RequestMethod.GET,
// RequestMethod.POST })
public ModelAndView save(HttpServletRequest request,
HttpServletResponse response) throws Exception { System.out.println("处理POST请求"); ModelAndView mv = new ModelAndView();
mv.addObject("req_key", "Model Data");
mv.setViewName("succ");
return mv;
} }
  •   2.4  RequestParam:获取地址中的参数信息。

    <a href="<%=request.getContextPath()%>/requestParamController/edit?userid=1">list方法</a>
<a href="<%=request.getContextPath()%>/requestParamController?task=edit&userid=2">list方法</a>

controller

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value = "/requestParamController")
public class RequestParamController { @RequestMapping(value = "/edit", method = RequestMethod.GET)
public ModelAndView edit_1(
@RequestParam(name = "userid", required = false) String id)
throws Exception { System.out.println("userid = " + id); return null;
} @RequestMapping(params = "task=edit", method = RequestMethod.GET)
public ModelAndView edit_2(String userid) throws Exception { System.out.println("task=edit中的userid = " + userid); return null;
} }
  •   2.5  PathVariable:REST风格.

    <a href="<%=request.getContextPath()%>/pathVarController/edit/1/admin">edit方法</a>
<a href="<%=request.getContextPath()%>/pathVarController/edit/2/guest">edit方法</a>
<a href="<%=request.getContextPath()%>/pathVarController/edit/3/test">edit方法</a> <a href="<%=request.getContextPath()%>/pathVarController/3/admin/delete">通配符一个方法</a>
<a href="<%=request.getContextPath()%>/pathVarController/3/admin/test/xxxx/yyyy/remove">通配符多个方法</a>

  controller

package com.controller;

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;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value = "/pathVarController")
public class PathVarController { @RequestMapping(value = "/edit/{userid}/{username}", method = RequestMethod.GET)
public ModelAndView edit_1(@PathVariable(value = "userid") String userid,
@PathVariable(value = "username") String username) throws Exception { System.out.println("userid = " + userid);
System.out.println("username = " + username); return null;
} /**
* 通配符的写法
*
* 1个*代表通配一个地址
*
* 2个*代表通配多个地址
*/
@RequestMapping(value = "{userid}/*/delete", method = RequestMethod.GET)
public ModelAndView delete_1(@PathVariable(value = "userid") String userid)
throws Exception { System.out.println("delete_1====>userid = " + userid); return null;
} @RequestMapping(value = "{userid}/**/remove", method = RequestMethod.GET)
public ModelAndView delete_2(@PathVariable(value = "userid") String userid)
throws Exception { System.out.println("remove_2====>userid = " + userid); return null;
}
}

  2.6  header和cookie

<a href="<%=request.getContextPath()%>/headerController/header">header</a>

<a href="<%=request.getContextPath()%>/headerController/cookie">cookie</a>

controller

package com.shyroke.controller;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView; @Controller
@RequestMapping(value = "/headerController")
public class HeaderController { @RequestMapping(value = "/header", method = RequestMethod.GET)
public ModelAndView header(@RequestHeader(name = "Host") String Host,
@RequestHeader(name = "User-Agent") String agent, HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("header");
System.out.println("Host= " + Host);
System.out.println("agent= " + agent); System.out.println("RequestHeader = " + request.getHeader("Host")); Cookie cookie_a = new Cookie("cookie_a", "Admin/GTUeST/axxxx"); cookie_a.setPath("/");
response.addCookie(cookie_a);
return null;
} @RequestMapping(value = "/cookie", method = RequestMethod.GET)
public ModelAndView cookie(
@CookieValue(name = "JSESSIONID", required = false) String sessionID,
@CookieValue(name = "cookie_a", required = false) String cookie_a)
throws Exception {
System.out.println("cookie_1 = " + sessionID); System.out.println("cookie_a = " + cookie_a); return null;
} }

结果

(三)springmvc之注解的基本使用的更多相关文章

  1. 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s

     1. Spring-mvc介绍 1.1市面上流行的框架 Struts2(比较多) Springmvc(比较多而且属于上升的趋势) Struts1(即将被淘汰) 其他 1.2  spring-mv ...

  2. springMVC的注解详解

    springmvc常用注解标签详解 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业 ...

  3. springmvc常用注解与类型转换

    springmvc常用注解与类型转换 一:前置 spring -servlet.xml 注入 <!-- 启用spring mvc 注解 --> <context:annotation ...

  4. springMvc的注解注入方式

    springMvc的注解注入方式 最近在看springMvc的源码,看到了该框架的注入注解的部分觉的有点吃力,可能还是对注解的方面的知识还认识的不够深刻,所以特意去学习注解方面的知识.由于本人也是抱着 ...

  5. 一 : springmvc常用注解

    springmvc常用注解详解1.@Controller在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层 ...

  6. 转:springmvc常用注解标签详解

    Spring5:@Autowired注解.@Resource注解和@Service注解 - IT·达人 - 博客园--这篇顺序渐进,讲得超级好--此人博客很不错http://www.cnblogs.c ...

  7. springBoot注解大全JPA注解springMVC相关注解全局异常处理

    https://www.cnblogs.com/tanwei81/p/6814022.html 一.注解(annotations)列表 @SpringBootApplication:包含了@Compo ...

  8. SpringMVC 常用注解 详解

    SpringMVC 常用注解 详解 SpringMVC 常用注解 1.@RequestMapping                                      路径映射 2.@Requ ...

  9. SpringMVC常用注解實例詳解3:@ResponseBody

    我的開發環境框架:        springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...

  10. SpringMVC常用注解實例詳解2:@ModelAttribute

    我的開發環境框架:        springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...

随机推荐

  1. 自然语言处理基础与实战(8)- 主题模型LDA理解与应用

    本文主要用于理解主题模型LDA(Latent Dirichlet Allocation)其背后的数学原理及其推导过程.本菇力求用简单的推理来论证LDA背后复杂的数学知识,苦于自身数学基础不够,因此文中 ...

  2. 微信小程序 scroll-view 填满剩余可用高度

    根据微信小程序 scroll-view 文档所述,scroll-view必须给定一个固定高度.那么如果我们想要让它自动填充剩余高度,该怎么办呢? 前言 在说出我的解决方案之前,先来看一下我的页面设计, ...

  3. .htaccess文件常见到[QSA][NC][L][R][F]的意思

      .htaccess文件常见到[QSA][NC][L][R][F]几个字符在代码末尾,下边列出它们在静态规则中的作用,以备参考.   NC : no case,不区分大小写,忽略大小写: L : l ...

  4. 几种常见空间滤波器MATLAB实现

    本文链接:https://blog.csdn.net/LYduring/article/details/80443573 一.目的实现算术均值滤波器.几何均值滤波器.中值滤波器.修正的阿尔法均值滤波器 ...

  5. OpenJudge计算概论-最高的分数

    /*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...

  6. Thrift: Scalable Cross-Language Services Implementation

    http://thrift.apache.org/static/files/thrift-20070401.pdf

  7. ISO/IEC 9899:2011 条款6.2.8——对象的对齐

    6.2.8 对象的对齐 1.完整的对象类型具有对齐要求,对齐要求是对该类型对象可以在哪个地址进行分配的放置限制.一个对齐是一个实现定义的整数值,表示一个给定对象可以分配在相继两个地址之间跨多少字节的位 ...

  8. java从包package中获取所有的Class

      1.从包package中获取所有的Class方法: /** * 从包package中获取所有的Class * @param pack * @return */ public static List ...

  9. nginx负载均衡分配策略有哪些?

    nginx负载均衡分配策略有哪些?   答: 1.轮询(默认,不用在upstream中配置)方式 2.weight(权重) 当指定的服务器的权重参数,权重占比为负载均衡决定的一部分.权重大负载就大. ...

  10. toast提示信息获取和Monkey笔记

    获取toast toast提示信息出现场景:用户输入用户名和密码后,提示的'登录成功', 用之前的定位方法获取不了,需要Uiautomator2来获取 安装node.js (使用 npm 或 node ...