SpringMVC起步(一)

来源:互联网 发布:win10 企业版激活软件 编辑:程序博客网 时间:2024/05/22 17:20

MVC本质
.MVC的核心思想是业务数据抽取业务数据呈现相分离

MVC
Model-View-Controller


View
视图层:为用户提供UI重点关注数据的呈现

Model
模型层:业务数据的信息表示,关注支持业务的信息构成,通常是多个业务实体的组合

Controller
控制层:调用业务逻辑产生合适的数据(Model)传递数据给视图层用于呈现

.MVC是一种构架模式
程序分层,分工合作,即相互独立,又协同工作
.MVC是一种思考方式
需要将什么信息展现给用户?如何布局?通过什么业务逻辑?


Spring MVC基本概念
DispatcherServlet就是一种前端控制器(frontcontroller),通过DispatcherServlet进行分发到达一个合适的controller,来生产合适的业务数据model,model在通过DispatcherServlet进行传递,传递给view。

HandlerAdapter
适配器模式:DispatcherServlet所调用的controller其实就是HandlerAdapter

HandlerInterceptor
HandlerMapping是DispatcherServlet和controller之间的一个映射
HandlerExecutionChain

SpringMVC起步(一)

SpringMVC起步(一)

SpringMVC起步(一)


Maven
.POM
Project Object Model:An xml file(pom.xml)
.依赖Dependency
/WEB-INF/lib(jar包或其他项目的相关类)
在pom中配置一些依赖项,可以解决复杂的依赖关系
.Coordinates坐标


Maven的安装与配置:
下载:
通过搜索引擎搜索Maven,给出的第一条网站就是maven给出的官方下载的位置,在这里我们可以下载到maven的压缩包,放到一个任意目录进行解压。
配置环境变量:
SpringMVC起步(一)


SpringMVC起步(一)

测试:
在dos命令窗口输入:mvn -version:
SpringMVC起步(一)

配置:
将解压好的文件夹conf中的settings.xml文件拷贝到C:\Users\Administrator\.m2(%HEOM%/.m2)目录下

修改settings.xml文件(也可以修改)
下载存储位置:

SpringMVC起步(一)


访问服务器:

SpringMVC起步(一)

 

用Maven创建项目:
eclipse-》windows-》preferences-》Maven-》installations
选择add,找到我们刚才解压的文件夹,添加之后选定
user settings找到我们刚才配置的settings.xml文件添加
apply-》ok

新建Maven Project-》选择

SpringMVC起步(一)


填写相关项目后


就成功建立一个maven项目


在main下添加java文件夹,这里存放java文件,类似的可以添加test文件夹存放测试文件。


配置pom.xml:
《project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd"》
 《modelVersion》4.0.0《/modelVersion》
 《groupId》imooc-arthur《/groupId》
 spring-mvc-study
  《version》0.0.1-SNAPSHOT《/version》
  《name》spring-mvc-study Maven Webapp《/name》
  《url》http://maven.apache.org《/url》
《properties》
  《commons-lang.version》2.6《/commons-lang.version》
  《slf4j.version》1.7.6《/slf4j.version》
  《spring.version》4.1.3.RELEASE《/spring.version》
       《jackson.version》2.5.4《/jackson.version》
 《/properties》


 《dependencyManagement》
  《dependencies》
   《dependency》
    《groupId》org.springframework《/groupId》
    spring-framework-bom
    《version》${spring.version}《/version》
    《type》pom《/type》
    《scope》import《/scope》
   《/dependency》
  《/dependencies》
 《/dependencyManagement》

 《dependencies》
  《dependency》
   《groupId》org.springframework《/groupId》
   spring-webmvc
  《/dependency》

  《dependency》
   《groupId》commons-lang《/groupId》
   commons-lang
   《version》${commons-lang.version}《/version》
  《/dependency》


  《dependency》
   《groupId》org.slf4j《/groupId》
   slf4j-log4j12
   《version》${slf4j.version}《/version》
   《exclusions》
    《exclusion》
     slf4j-api
     《groupId》org.slf4j《/groupId》
    《/exclusion》
   《/exclusions》
  《/dependency》

  《dependency》
   《groupId》org.slf4j《/groupId》
   slf4j-api
   《version》${slf4j.version}《/version》
  《/dependency》

  《dependency》
   《groupId》javax.servlet《/groupId》
   servlet-api
   《version》2.5《/version》
  《/dependency》

  《dependency》
   《groupId》commons-fileupload《/groupId》
   commons-fileupload
   《version》1.3.1《/version》
  《/dependency》

  《dependency》
   《groupId》com.fasterxml.jackson.core《/groupId》
   jackson-databind
   《version》${jackson.version}《/version》
  《/dependency》

 《/dependencies》

 《build》
  《plugins》
   《plugin》
    《groupId》org.eclipse.jetty《/groupId》
    jetty-maven-plugin
    《version》9.2.2.v20140723《/version》
   《/plugin》
  《/plugins》
 《/build》
《/project》


web.xml:
《servlet》
  《servlet-name》mvc-dispatcher《/servlet-name》
  《servlet-class》org.springframework.web.servlet.DispatcherServlet《/servlet-class》
  《!--DispatcherServlet对应的上下文配置,默认为/WEB-INF/$servlet-name$-servlet.xml
   --》
  《init-param》
         《param-name》contextConfigLocation《/param-name》
         《param-value》/WEB-INF/configs/spring/mvc-dispatcher-servlet.xml《/param-value》
       《/init-param》
  《load-on-startup》1《/load-on-startup》
 《/servlet》
 《servlet-mapping》
  《servlet-name》mvc-dispatcher《/servlet-name》
    《!-- mvc-dispatcher拦截所有的请求--》
  《url-pattern》/《/url-pattern》
 《/servlet-mapping》


新建:WEB-INF/configs/spring/mvc-dispatcher-servlet.xml
《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
       http://www.springframework.org/schema/mvc/spring-mvc.xsd"》

 《!--本配置文件是工名为mvc-dispatcher的DispatcherServlet使用, 提供其相关的Spring MVC配置--》

 《!-- 启用Spring基于annotation的DI, 使用户可以在SpringMVC中使用Spring的强大功能。 激活 @Required
  @Autowired,JSR 250's@PostConstruct, @PreDestroy and @Resource 等标注 --》
 《context:annotation-config /》

 《!--DispatcherServlet上下文,只管理@Controller类型的bean, 忽略其他型的bean, 如@Service--》
 《context:component-scanbase-package="com.imooc.mvcdemo"》
  《context:include-filtertype="annotation"
   expression="org.springframework.stereotype.Controller" /》
 《/context:component-scan》

 《!-- HandlerMapping, 无需配置, Spring MVC可以默认启动。DefaultAnnotationHandlerMapping
  annotation-drivenHandlerMapping --》

 《!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 --》
 《mvc:annotation-driven /》

 《bean
  class="org.springframework.web.servlet.view.InternalResourceViewResolver"》
  《propertyname="viewClass"
   value="org.springframework.web.servlet.view.JstlView"/》
  《property name="prefix"value="/WEB-INF/jsps/" /》
  《property name="suffix"value=".jsp" /》
 《/bean》
《/beans》

 

新建com.imooc.mvcdemo.controller的类HelloMvcController:
//告诉DispatcherServlet相关的容器, 这是一个Controller, 管理好这个bean哦
@Controller
//类级别的RequestMapping,告诉DispatcherServlet由这个类负责处理以跟URL。
//HandlerMapping依靠这个标签来工作
@RequestMapping("/hello")
public class HelloMvcController {
 
 //方法级别的RequestMapping,限制并缩小了URL路径匹配,同类级别的标签协同工作,最终确定拦截到的URL由那个方法处理
 @RequestMapping("/mvc")
 public String helloMvc() {
  
  //视图渲染,/WEB-INF/jsps/home.jsp
  return "home";
 }

}


新建WEB-INF/jsps/home.jsp


启动dos窗口:cdC:\Users\Administrator\workspace\spring-mvc-study(项目路径)

SpringMVC起步(一)


然后dir,我们会看到存在pom.xml
mvn jetty:run启动插件jetty

SpringMVC起步(一)


打开浏览器:http://localhost:8080/hello/mvc/
就可以看见刚才的home.jsp界面

 SpringMVC起步(一)

0 0