学习:狂神
SpringMVC 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 -------->> 导jar包 <dependency > <groupId > javax.servlet</groupId > <artifactId > javax.servlet-api</artifactId > </dependency > <dependency > <groupId > javax.servlet.jsp</groupId > <artifactId > jsp-api</artifactId > </dependency > <dependency > <groupId > javax.servlet</groupId > <artifactId > jstl</artifactId > </dependency >
注册HandlerMapping,HandlerAdapter,配置视图ViewResolver,注册执行类/hello
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <bean class ="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" /> <bean class ="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter" /> <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" id ="internalResourceViewResolver" > <property name ="prefix" value ="/WEB-INF/jsp/" /> <property name ="suffix" value =".jsp" /> </bean > <bean id ="/hello" class ="com.controller.HelloController" />
DispatcherServlet
1 2 3 4 5 6 7 8 9 10 11 12 13 14 <servlet > <servlet-name > springmvc</servlet-name > <servlet-class > org.springframework.web.servlet.DispatcherServlet</servlet-class > <init-param > <param-name > contextConfigLocation</param-name > <param-value > classpath:springmvc-serlvet.xml</param-value > </init-param > <load-on-startup > 1</load-on-startup > </servlet > <servlet-mapping > <servlet-name > springmvc</servlet-name > <url-pattern > /</url-pattern > </servlet-mapping >
1 2 3 4 5 6 7 8 9 10 11 public class HelloController implements Controller { @Override public ModelAndView handleRequest (HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv=new ModelAndView (); System.out.println("CCCCCCCCCCCC" ); mv.addObject("msg" ,"msg返回信息到jsp页面" ); mv.setViewName("packge" ); return mv; } }
注解入门 1 2 3 4 5 6 7 8 9 10 <context:component-scan base-package ="com.controller" /> <mvc:default-servlet-handler /> <mvc:annotation-driven /> <bean class ="org.springframework.web.servlet.view.InternalResourceViewResolver" id ="internalResourceViewResolver" > <property name ="prefix" value ="/WEB-INF/jsp/" /> <property name ="suffix" value =".jsp" /> </bean >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 @Controller @RequestMapping("/big") public class HelloMaking { @RequestMapping("/hello") public String hello (Model model) { model.addAttribute("msg" ,"return msg to hello" ); return "hello" ; } @RequestMapping("/save") @ResponseBody public String save () { System.out.println("user save ..." ); return "{'module':'springmvc'}" ; } }
@Controller 名称 @Controller 类型 类注解 位置 SpringMVC控制器类定义上方 作用 设定SpringMVC的核心控制器bean
@RequestMapping 名称 @RequestMapping 类型 类注解或方法注解 位置 SpringMVC控制器类或方法定义上方 作用 设置当前控制器方法请求访问路径 相关属性 value(默认),请求访问路径
@ResponseBody 名称 @ResponseBody 类型 类注解或方法注解 位置 SpringMVC控制器类或方法定义上方 作用 设置当前控制器方法响应内容为当前返回值,无需解析
RestFul风格 1 2 3 http://localhost/test/save?id=1 http://localhost/test/update http://localhost/test/delete?id=1
【1】查询
查询 传统 REST REST 后台接收 查询所有 localhost:8080/employee/list localhost:8080/employees @RequestMapping(value = “/employees”, method = RequestMethod.GET) 查询单个 localhost:8080/employee/list?id=1 localhost:8080/employees/1 @RequestMapping(value = “/employees/{id}”, method = RequestMethod.GET) @ResponseBody public Employee queryById(@PathVariable Long id) {}
【2】添加
添加 传统 REST REST 后台接收 添加 localhost:8080/employee/add localhost:8080/employees @RequestMapping(value = “/employees”, method = RequestMethod.POST) public Employee add(@ModelAttribute(“emp”) Employee employee) {}
【3】修改
修改 传统 REST REST 后台接收 修改 ocalhost:8080/employee/update localhost:8080/employees @RequestMapping(value = “/employees”, method = RequestMethod.PUT) public Employee update(@ModelAttribute(“emp”) Employee employee) {}
【4】删除
查询 传统 REST REST 后台接收 删除 localhost:8080/employee/delete localhost:8080//employees/{id} @RequestMapping(value = “/employees/{id}”, method = RequestMethod.DELETE) @ResponseBody public JsonResult delete(@PathVariable Long id) {}
1 2 3 4 5 6 @RequestMapping("/save") //原生:http://localhost:8080/test/save?a=2&b=3 public String save(int a,int b,Model model){ int res=a+b; model.addAttribute("msg","save结果为:"+res); return "hello"; }
1 2 3 4 5 6 @RequestMapping("/save/{a}/{b}") public String save2 (@PathVariable int a, @PathVariable int b, Model model) { int res=a+b; model.addAttribute("msg" ,"save2结果为:" +res); return "hello" ; }
1 2 3 4 5 6 7 @PostMapping("/save/{a}/{b}") public String save3 (@PathVariable int a, @PathVariable int b, Model model) { int res=a+b; model.addAttribute("msg" ,"save3结果为:" +res); return "hello" ; }