DI-依赖注入
AOP-面向切面编程
1,springmvc +maven+helloWorld
 
 
 
基本步骤
1)响应请求-DispatcherServlet
  DispatcherServlet是SpringMVC中最核心的部分,它是接收所有用户请求的前端控制器Servlet,Servlet运行于Web的应用服务器中,理论上可以响应任何类型的请求。当用户在浏览器发出请求的时候,最先进入SpringMVC中的DispatcherServlet。它的作用是通过处理器映射,把用户的请求发送到相应的控制器(Controller)中,再由控制器处理用户请求的SpringBean。
2)处理器映射-HandlerMapping
  当DispatcherServlet截获到请求的时候,不知道要把请求发往哪一个控制器,这个时候就要用到处理器映射了。通过查询处理器映射,DispatcherServlet就能由用户的请求知道该用哪一个控制器。
3)控制器-Controller
  控制器(Controller)即MVC中的C,控制器在后面的小黑屋完成数据的处理,然后返回一个ModelAndView对象给DispatcherServlet,Model将会在相应的View上显示出来。
4)视图解析器-view resolver
  视图解析器(view resolver)对上一步得到的ModelAndView对象进行解析,将其匹配到相应的视图(例如一个jsp),利用相应的视图显示数据。
5)视图显示-view
  视图(view)即MVC中的V,其作用就是把控制器返回的相应的model进行显示。到了这里,请求的任务基本就已经完成了。
 
1,新建一个maven工程,选择webapp,输入组ID,一般是域名的反写,输入项目名称
2,.jsp 文件的顶端报错,解决方法
1)右击项目名 -> Buid Path -> Configure Build Path,
 
(2)选择Libraries选项卡,点击Add Library -> Server Runtime ,
 
(3)选择一个已建好的tomcat,没有建立tomcat的,请先配置好tomcat。
 
(4)点击 finish, 可看到如下截图
点击Apply之后,正常情况下,可以看到项目的红叉已消失。
 
然后切换到Order and Export 选项:
点击上图的OK之后,可以看到,缺失的资源文件src/main/java和src/test/java已经有了。
然后还需要创建 souce folder src/main/resources ,src/test/resources
 
3,更改配置文件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.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
 
<groupId>com.viphelloword.rank</groupId>
<artifactId>SpringMvcHelloWorld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
 
 
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<springVersion>4.2.3.RELEASE</springVersion>
</properties>
 
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
 
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${springVersion}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springVersion}</version>
</dependency>
</dependencies>
 
<build>
<finalName>SpringMvcHelloWorld</finalName>
</build>
</project>
 
4,更改配置文件web.xml,在webapp下
 
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>HelloSpringMVC</display-name>
 
<!-- 前端控制器 -->
<servlet>
<servlet-name>spring-mvc</servlet-name> <!-- 名称,真实的文件名需要在这个名字后面加上-servlet后缀 -->
<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>classpath:/spring/spring-mvc-servlet.xml</param-value>
</init-param>
 
 
<load-on-startup>1</load-on-startup>
</servlet>
 
<!-- 拦截所有请求 -->
<servlet-mapping>
<servlet-name>spring-mvc</servlet-name> <!-- 这里的名字要和上面的servlet-name统一 -->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
 
5,新建前端控制器配置文件servlet文件
因为这里使用的是默认的路径,所以只需要在WEB-INF目录下创建前端控制器文件。
 
又因为在web.xml中配置的名称是spring-mvc,所以新建的文件名是spring-mvc-servlet。
也可以在resources下面创建spring 文件夹,然后classpath:/spring/spring-mvc-servlet.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-4.2.xsd">
 
<!-- 扫描路径 -->
<context:component-scan base-package="com.springmvc.controller" >
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
 
<!-- 配置根视图 -->
<mvc:view-controller path="/" view-name="index"/>
 
<!-- 激活基于注解的配置 @RequestMapping, @ExceptionHandler,数据绑定 ,@NumberFormat ,
@DateTimeFormat ,@Controller ,@Valid ,@RequestBody ,@ResponseBody等 -->
<mvc:annotation-driven />
 
<!-- 静态资源配置 -->
<mvc:resources location="/assets/" mapping="/assets/**"></mvc:resources>
 
<!-- 视图层配置 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
 
</beans>
 
 
 
只知道把配置文件如:mybatis.xml、spring-web.xml、applicationContext.xml等放到src目录(就是存放代码.java文件的目录),然后使用“classpath:xxx.xml”来读取,都放到src目录准没错,那么到底classpath到底指的什么位置呢?
 
用maven构建项目时候resource目录就是默认的classpath
classPath即为java文件编译之后的class文件的编译目录一般为web-inf/classes,src下的xml在编译时也会复制到classPath下
ApplicationContext ctx = new ClassPathXmlApplicationContext("xxxx.xml"); //读取classPath下的spring.xml配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/xxxx.xml"); //读取WEB-INF 下的spring.xml文件
 
6,添加control类,添加 .jsp页面 完全参照
 
最后访问如下地址:

spring基础知识,未完待续的更多相关文章

  1. JS基础知识(未完)

    学习笔记,知识点来源于掘金小册-yck-前端面试之道 1.原始类型(6种) 原始类型储存的都是值 number boolean string null undefined symbol null不是对 ...

  2. ASP.NET Core 2.2 基础知识(八) 主机 (未完待续)

    主机负责应用程序启动和生存期管理.共有两个主机 API : 1.Web 主机 : 适用于托管 Web 应用,基于 IWebHostBuilder ; 2.通用主机 : 适用于托管非 Web 应用. 基 ...

  3. 2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)

    计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hell ...

  4. CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)

    目录 1. 前期预备知识 1.1 串口通讯电路图 1.2 实验相关寄存器 1.2 常用波特率设置 本章未完待续..... 原来写的文章已经丢失了,只能找到这一小部分,看什么时候有时间再补上. 1. 前 ...

  5. Spring MVC-从零开始-文件上传(未完待续)

    Spring MVC-从零开始-文件上传(未完待续)

  6. Spring MVC-从零开始-EL(未完待续)

    Spring MVC-从零开始-EL(未完待续)

  7. Spring MVC-从零开始-@ResponseBody(未完待续)

    Spring MVC-从零开始-@ResponseBody(未完待续)

  8. odoo11 model+Recordset 基础未完待续

    Model 一个模型代表了一个业务对象 本质上是一个类,包含了同django flask一样的数据字段 所有定义在模型中的方法都可以被模型本身的直接调用 现在编程范式有所改变,不应该直接访问模型,而是 ...

  9. java泛型基础、子类泛型不能转换成父类泛型--未完待续

    参考http://how2j.cn/k/generic/generic-generic/373.html 1.使用泛型的好处:泛型的用法是在容器后面添加<Type>Type可以是类,抽象类 ...

  10. MVC丶 (未完待续······)

         希望你看了此小随 可以实现自己的MVC框架     也祝所有的程序员身体健康一切安好                                                     ...

随机推荐

  1. python中的单例

    使用__new__ 因为一个类每一次实例化的时候,都会走它的__new__方法.所以我们可以使用__new__来控制实例的创建过程,代码如下: class Single: instance = Non ...

  2. Excel Vlookup使用

    VLookup用途 作用:关联两张表数据显示 如A表有字段id, name, B表有字段id, sex, 要把两张表合并成id, name, sex 操作步骤 1,在A表后面新增列sex 2, 插入公 ...

  3. ajax 显示,删除,批量删除,修改反填功能实现

    1.页面代码 <body> <h1>显示所有员工信息</h1> <input id="Button1" type="button ...

  4. ECMAScript6 入门教程 初学记录let命令 块级作用域

    一.基本语法-let命令 (1)ES6新增了let命令,用来声明变量.所声明的变量,只在let命令所在的代码块内有效. 循环的计数器,就很合适使用let命令.计数器i只在for循环体内有效,在循环体外 ...

  5. 【Spark-core学习之五】 RDD宽窄依赖 & Stage

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...

  6. 普通文件的上传(表单上传和ajax文件异步上传)

    一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...

  7. Windows 服务器自动重启定位

    有个非常好的小技巧,就是在服务器端命令行,执行systeminfo,能查到服务器上一次重启的时间,依照这个时间在Event Log里再找相应的日志就容易多了. 补充:还能查到这台服务器是虚拟机还是实体 ...

  8. 一些sql优化原则

    1.我们在设计表的时候,尽量让字段拥有默认值,尽量不要让字段的值为null. 因为,在 where 子句中对字段进行 null 值判断(is null或is not null)将导致引擎放弃使用索引而 ...

  9. JavaScript 示例

    JavaScript 示例 <html lang="en"> <head> <meta charset="UTF-8"> & ...

  10. ORA-12805: parallel query server died unexpectedly ORA-04030 (sort subheap,sort key) 原因排查与解决方法

    今日,某服务器pga调整为30G,_pga_max_size调整为8G之后(原来是2G,但是one passes语句较多,性能太低),执行出现ORA-12805: parallel query ser ...