spring基础知识,未完待续

https://blog.csdn.net/slow_wakler/article/details/54895508

http://www.runoob.com/design-pattern/chain-of-responsibility-pattern.html

https://www.cnblogs.com/alwayswyy/p/4904448.html?utm_source=tuicool&utm_medium=referral

https://www.cnblogs.com/zmhsoup/p/5249663.html

https://www.cnblogs.com/wangyayun/p/6800902.html

DI-依赖注入

AOP-面向切面编程

1,springmvc +maven+helloWorld

https://blog.csdn.net/u012660464/article/details/53199439

基本步骤

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页面 完全参照

https://blog.csdn.net/u012660464/article/details/53199439

最后访问如下地址:

http://localhost:8080/SpringMvcHelloWorld/hello/mvc

原文地址:https://www.cnblogs.com/zhitest/p/9142478.html

时间: 2024-11-08 23:33:14

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

自动化day1---接口基础(未完待续)

在开始学习自动化时,先了解了一下接口的基础知识. 1.接口是什么? 用程序员的话来说,接口就是跟类一样的东西.有点儿抽象,换非程序员的话解释来说,手机要和电脑相互访问,通过USB接口. 接口分为两种,一种是对外的,就是你要调用别的网站的数据,需要双方协定好写接口来调用:一种是程序内部的,及模块之间的相互调用. 2.最常用的两种协议接口 webservice接口和http api接口,现在大部分用的是http api接口: webservice接口返回的报文是xml格式的,http api接口大部

GO语言完整解析GO!GO!GO!(一)基础语法(未完待续)

前言 适用大概用过Golang编程的朋友,本文档属于一份总结,与査漏补缺. 一:GO的数据类型--基础类型 0,定义一个变量的标准格式为: var  变量名   类型 1,数字类 1)整数类型:int8, int16,int32,int64(有符号)/uint8, uint16,uint32,uint64(无符号),分别占用8bit,16bit,32bit,64bit; int/uint,占用多大空间取绝于CPU的机器字大小,一般为32bit或者64bit rune,表示一个字符占用的存储空间

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

主机负责应用程序启动和生存期管理.共有两个主机 API : 1.Web 主机 : 适用于托管 Web 应用,基于 IWebHostBuilder ; 2.通用主机 : 适用于托管非 Web 应用. 基于 HostBuilder . 官方: 通用主机的目标是将 HTTP 管道从 Web 主机 API 中分离出来,从而启用更多的主机方案. 基于通用主机的消息.后台任务和其他非 HTTP 工作负载可从横切功能(如配置.依赖关系注入 [DI] 和日志记录)中受益 通用主机是 ASP.NET Core 2

Exp2 后门原理与实践(未完待续)

Exp2 后门原理与实践 实验环境 攻击机 kali 4.14(64位) (IP: 10.0.2.6/24) 靶机 ubuntu 16.04(32位) (IP: 10.0.2.4/24) windows 7 sp1(64位) (IP: 10.0.2.7/24) nc/ncat的使用 nc(全称是netcat)是一个用于TCP/UDP连接和监听的linux工具,有着网络工具中的"瑞士军刀"的美誉.nc的实现版本大致有两种,一种是带有-e或-c 选项可以直接给出执行命令,另一种不支持-e选

[daily][optimize] 去吃面 (python类型转换函数引申的性能优化)(未完待续)

前天,20161012,到望京面试.第四个职位,终于进了二面.好么,结果人力安排完了面试时间竟然没有通知我,也没有收到短信邀请.如果没有短信邀请门口的保安大哥是不让我进去大厦的.然后,我在11号接到了面试官直接打来的电话,问我为啥还没到,我说没人通知我我不知道呀.结果我就直接被他邀请去以访客的身份参加面试了.不知道人力的姑娘是不是认识我,且和我有仇,终于可以报复了... 然后,我终于如约到了,面试官带着我去前台登记.前台的妹子更萌...认为我是面试官,面试官是才是来面试的.我气质真的那么合吗?

听风讲MVC丶 —— 一言不合就撸码 (未完待续&#183;&#183;&#183;&#183;&#183;&#183;)

     希望你看了此小随 可以实现自己的MVC框架     也祝所有的程序员身体健康一切安好                                                                                                                                                ——久伴深海丶默 1.什么是前端控制器(font controller).Java Web中的前端控制器是应用的门面,

C++语言体系设计哲学的一些随想(未完待续)

对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值.具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符.该类型的数据可以包含的值的范围是什么. (2)定义操作的含义 操作是严格数据类型相关的.操作表明了对了一个具有特定类型的数据,执行操作后产生什么样结果. =========================================== C++就是一个典型的静态类型语言.在C++中,无论是"数据类型"还是"操作",都分为

一篇文章让Oracle程序猿学会MySql【未完待续】

一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方面和难度方面都比MySql要高一些,所以精通Oracle的DB在学习MySql的时候,没有必要从头到尾再去搞一遍,只需要掌握两者的用法区别即可.故本篇文章就针对Oracle和MySql的区别来把MySql的知识掌握住,在文章中,实例都是MySql环境下的实例,而Oracle可能知识一句话来概括,所以

asp.net面试题总结1(未完待续。。。。)

1.MVC中的TempData\ViewBag\ViewData区别? 答:页面对象传值,有这三种对象可以传. (1)  TempData  保存在Session中,Controller每次执行请求的时候,会从Session中先获取 TempData,而后清除Session,获取完TempData数据,虽然保存在内部字典对象中,但是其集合中的每个条目访问一次后就从字典表中删 除.具体代码层面,TempData获取过程是通过SessionStateTempDataProvider.LoadTemp

whatweb.rb 未完待续

#!/usr/bin/env ruby #表示ruby的执行环境 =begin # ruby中用=begin来表示注释的开始 .$$$ $. .$$$ $. $$$$ $$. .$$$ $$$ .$$$$$$. .$$$$$$$$$$. $$$$ $$. .$$$$$$$. .$$$$$$. $ $$ $$$ $ $$ $$$ $ $$$$$$. $$$$$ $$$$$$ $ $$ $$$ $ $$ $$ $ $$$$$$. $ `$ $$$ $ `$ $$$ $ `$ $$$ $$' $ `$