学习:狂神
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" ; }