一、@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. Pandas的Categorical Data

    http://liao.cpython.org/pandas15/ Docs » Pandas的Categorical Data类型 15. Pandas的Categorical Data panda ...

  2. arcgis python 参数类型和含义

    数据类型 datatype 关键字 描述 地址定位器 DEAddressLocator 用于地理编码的数据集,存储地址属性.关联的索引以及用于定义将地点的非空间描述转换为空间数据这一过程的规则. 地址 ...

  3. 你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

    你的Node应用,对接分布式链路跟踪系统了吗?(一) 原创: 金炳 Node全栈进阶 4天前 戳蓝字「Node全栈进阶」关注我们哦

  4. markdown中如何设置字体为红色?

    答: 语法如下: <font color='red'> text </font>

  5. setShadpwLayer实现阴影效果

    package com.loaderman.customviewdemo; import android.content.Context; import android.graphics.*; imp ...

  6. Row_Number() and Rank() in SQL

    1. 数据表实例数据 2. 使用Row_Number()方法给每一行数据添加一个唯一编号, 可以按照某一列进行排序. 3. 使用Partition by Column在一个Partition内进行编号 ...

  7. 阶段5 3.微服务项目【学成在线】_day18 用户授权_03-方法授权-jwt令牌包含权限

    修改认证服务的UserDetailServiceImpl类,下边的代码中 permissionList列表中存放了用户的权限, 并且将权限标识按照中间使用逗号分隔的语法组成一个字符串,最终提供给Spr ...

  8. 一个小时学会Git(转载)

    ---恢复内容开始--- 一个小时学会Git     最近要与部门同事一起做技术分享,我选择了Git,因为Git 是一种在全球范围都广受欢迎的版本控制系统.在开发过程中,为了跟踪代码,文档,项目等信息 ...

  9. centos6.8 ssh 问题

    xshell用ROOT不能登录 需要把 /etc/ssh/sshd_config 中的端口新建一个 不能用默认的

  10. win7下docker环境安装

    最近公司涉及到对docker容器引擎的使用,所以就在网上各种搜索,由于是win7系统,所以在使用上更是麻烦,遇到各种错误就是无法成功启动docker,经过两天的各种尝试下,终于安装成功,在此记录一下使 ...