SpringMVC
1. 初识SrpingMVC
ssm:spring+springmvc+mybatis MVC三层架构
Spring:IOC 和 AOP
SpringMVC:SpringMVC的实行流程!
MVC:模型(dao,service),视图(jsp),控制器(Servlet)
- pojo:实体类,如User
- vo:视图层的对象实体类,如UserVo
- dto:数据传输的时候的对象实体类,如UserDto
SpringMVC特点:
- 轻量级,简单易学
- 高效,基于哀求响应的MVC框架
- 与Spring兼容性好,无缝结合
- 约定优于设置
- 功能强大:RESTful,数据验证,格式化,当地化,主题等
- 简洁机动
Spring的web框架围绕DispatcherServlet设计。DispatcherServlet的作用是将哀求分发到不同的处理器。从Spring2.5开始,利用java5或以上版本的用户可以接纳注解的controller声明方式
快速入门:
- 在web.xml设置
- <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-servlet.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>
复制代码 - 新建一个设置文件spring-mvc.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- https://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/aop
- https://www.springframework.org/schema/aop/spring-aop.xsd">
-
- <bean />
-
-
- <bean />
-
-
- <bean id="InternalResourceViewResolver">
-
- <property name="prefix" value="/WEB-INF/jsp/"/>
-
- <property name="suffix" value=".jsp"/>
- </bean>
- </beans>
复制代码 - 写一个Controller类
- public class HelloController implements Controller {
- public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
- //ModelAndView 模型和视图
- ModelAndView mv = new ModelAndView();
-
- // 封装对象,放在ModelAndView中
- mv.addObject("msg","HelloSpringMVC!");
-
- // 封装要跳转的视图,放在ModelAndView中
- mv.setViewName("hello");
- return mv;
- }
- }
复制代码 - 编辑设置文件spring-mvc.xml,将Controller类放入IOC中
- [/code]
- [*]编写jsp页面
- [code]<%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Title</title>
- </head>
- <body>
- ${pageContext.request.getAttribute("msg")}
- </body>
- </html>
复制代码 大概遇到的问题:访问出现404,排查步调:
- 查看控制台输出,看一下是不是缺少了什么jar包
- 如果jar包存在,显示无法输出,就在IDEA项目结构中,添加lib依靠
- 重启tomcat,即可解决
2. SpringMVC实行原理
实际开发中,我们不会这么去做,我们一般通过注解来实现!!
3. 利用注解实现SpringMVC
- 在web.xml设置
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
- version="4.0">
- <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.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>
- </web-app>
复制代码 - 在springmvc.xml中设置
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context.xsd
- http://www.springframework.org/schema/mvc
- https://www.springframework.org/schema/mvc/spring-mvc.xsd">
-
- <context:component-scan base-package="cn.codewei.controller"/>
-
- <mvc:default-servlet-handler/>
-
- <mvc:annotation-driven/>
-
- <bean >
-
- <property name="prefix" value="/WEB-INF/jsp/"/>
-
- <property name="suffix" value=".jsp"/>
- </bean>
- </beans>
复制代码 在视图剖析器中我们把所有视图都存放在/WEB-INF/目录下,这样可以保证视图安全,由于这个目录下的文件,客户端不能直接访问
- 编写一个Controller类
- @Controller //代表这个类会被springIOC托管,被这个注解的类中的所有方法,如果返回值是String,并且由具体的页面可以跳转,那么就会被视图解析器解析
- @RequestMapping("/hello")
- public class HelloController {
- @RequestMapping("/controllerhello")
- public String Controllerhello(Model model){
- // 封装数据
- model.addAttribute("msg","HelloSrpingMVC!");
- return "hello"; // 被视图解析器处理
- }
- }
复制代码 SpringMVC必须设置的三大件:
处理器映射器,处理器适配器,视图剖析器
实现接口Controller定义控制器是较老的办法
缺点是:一个控制器只有一个方法,如果要多个方法则需要定义多个Controller- @Component 组件
- @Service serivce层
- @Controller controller层
- @Repository dao层
复制代码 4. RestFul风格
RestFul就是一个资源定位及资源操纵的风格,不是标准也不是协议,只是一种风格
利用RestFul操纵资源:可以通过不同的哀求方式来实现不同的结果!
如下:哀求地址一样,但是功能大概不同
http://127.0.0.1/item/1 查询,GET
http://127.0.0.1/item 新增,POST
http://127.0.0.1/item 更新,PUT
http://127.0.0.1/item/1 删除,DELETE
原来的:http://localhost:8080/add?a=2&b=3
RestFul:http://http
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |