SpringMVC

打印 上一主题 下一主题

主题 1907|帖子 1907|积分 5721

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设置
    1. <servlet>
    2.     <servlet-name>springmvc</servlet-name>
    3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    4.    
    5.     <init-param>
    6.         <param-name>contextConfigLocation</param-name>
    7.         <param-value>classpath:springmvc-servlet.xml</param-value>
    8.     </init-param>
    9.    
    10.     <load-on-startup>1</load-on-startup>
    11. </servlet>
    12. <servlet-mapping>
    13.     <servlet-name>springmvc</servlet-name>
    14.     <url-pattern>/</url-pattern>
    15. </servlet-mapping>
    复制代码
  • 新建一个设置文件spring-mvc.xml
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.        xmlns:context="http://www.springframework.org/schema/context"
    5.        xmlns:aop="http://www.springframework.org/schema/aop"
    6.        xsi:schemaLocation="http://www.springframework.org/schema/beans
    7.         https://www.springframework.org/schema/beans/spring-beans.xsd
    8.         http://www.springframework.org/schema/aop
    9.         https://www.springframework.org/schema/aop/spring-aop.xsd">
    10.    
    11.     <bean />
    12.    
    13.    
    14.     <bean />
    15.    
    16.        
    17.     <bean  id="InternalResourceViewResolver">
    18.         
    19.         <property name="prefix" value="/WEB-INF/jsp/"/>
    20.         
    21.         <property name="suffix" value=".jsp"/>
    22.     </bean>
    23. </beans>
    复制代码
  • 写一个Controller类
    1. public class HelloController implements Controller {
    2.     public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
    3.         //ModelAndView 模型和视图
    4.         ModelAndView mv = new ModelAndView();
    5.         
    6.         // 封装对象,放在ModelAndView中
    7.         mv.addObject("msg","HelloSpringMVC!");
    8.         
    9.         // 封装要跳转的视图,放在ModelAndView中
    10.         mv.setViewName("hello");
    11.         return mv;
    12.     }
    13. }
    复制代码
  • 编辑设置文件spring-mvc.xml,将Controller类放入IOC中
    1. [/code]
    2. [*]编写jsp页面
    3. [code]<%@ page contentType="text/html;charset=UTF-8" language="java" %>
    4. <html>
    5. <head>
    6.     <title>Title</title>
    7. </head>
    8. <body>
    9.     ${pageContext.request.getAttribute("msg")}
    10. </body>
    11. </html>
    复制代码
大概遇到的问题:访问出现404,排查步调:

  • 查看控制台输出,看一下是不是缺少了什么jar包
  • 如果jar包存在,显示无法输出,就在IDEA项目结构中,添加lib依靠

  • 重启tomcat,即可解决
2. SpringMVC实行原理



实际开发中,我们不会这么去做,我们一般通过注解来实现!!
3. 利用注解实现SpringMVC


  • 在web.xml设置
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    3.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.          xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    5.          version="4.0">
    6.     <servlet>
    7.         <servlet-name>springmvc</servlet-name>
    8.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    9.         <init-param>
    10.             <param-name>contextConfigLocation</param-name>
    11.             <param-value>classpath:springmvc.xml</param-value>
    12.         </init-param>
    13.         <load-on-startup>1</load-on-startup>
    14.     </servlet>
    15.     <servlet-mapping>
    16.         <servlet-name>springmvc</servlet-name>
    17.         <url-pattern>/</url-pattern>
    18.     </servlet-mapping>
    19. </web-app>
    复制代码
  • 在springmvc.xml中设置
    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4.        xmlns:context="http://www.springframework.org/schema/context"
    5.        xmlns:mvc="http://www.springframework.org/schema/mvc"
    6.        xsi:schemaLocation="http://www.springframework.org/schema/beans
    7.    http://www.springframework.org/schema/beans/spring-beans.xsd
    8.    http://www.springframework.org/schema/context
    9.    http://www.springframework.org/schema/context/spring-context.xsd
    10.    http://www.springframework.org/schema/mvc
    11.    https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    12.    
    13.     <context:component-scan base-package="cn.codewei.controller"/>
    14.    
    15.     <mvc:default-servlet-handler/>
    16.    
    17.     <mvc:annotation-driven/>
    18.    
    19.     <bean >
    20.         
    21.         <property name="prefix" value="/WEB-INF/jsp/"/>
    22.         
    23.         <property name="suffix" value=".jsp"/>
    24.     </bean>
    25. </beans>
    复制代码
    在视图剖析器中我们把所有视图都存放在/WEB-INF/目录下,这样可以保证视图安全,由于这个目录下的文件,客户端不能直接访问
  • 编写一个Controller类
    1. @Controller  //代表这个类会被springIOC托管,被这个注解的类中的所有方法,如果返回值是String,并且由具体的页面可以跳转,那么就会被视图解析器解析
    2. @RequestMapping("/hello")
    3. public class HelloController  {
    4.     @RequestMapping("/controllerhello")
    5.     public String Controllerhello(Model model){
    6.         // 封装数据
    7.         model.addAttribute("msg","HelloSrpingMVC!");
    8.         return "hello"; // 被视图解析器处理
    9.     }
    10. }
    复制代码
SpringMVC必须设置的三大件:
处理器映射器,处理器适配器,视图剖析器
实现接口Controller定义控制器是较老的办法
缺点是:一个控制器只有一个方法,如果要多个方法则需要定义多个Controller
  1. @Component                组件
  2. @Service                serivce层
  3. @Controller                controller层
  4. @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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表