springMvc入门一
环境:IDEA 2018.1,java环境配置 ,tomcat就不多说
多图:请慎入
知识储备建议:
1:熟悉IDEA工具 https://github.com/judasn/IntelliJ-IDEA-Tutorial 或者https://blog.csdn.net/qq_35246620/article/details/61191375
2:先学习spring (记住2个核心 ioc 和aop)
3:了解一下servlet (springMvc 底层都离不开原始ServletAPI。)
springMvc介绍:套用网上的
SpringMVC 是一种基于Java 的实现MVC 设计模型的请求驱动类型的轻量级Web 框架,属于 Spring
FrameWork 的后续产品,已经融合在Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功
能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring 进行WEB 开发时,可以选择使用 Spring
的 Spring MVC 框架或集成其他MVC 开发框架,如Struts1(现在一般不用),Struts2 等。
SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成
为最优秀的 MVC 框架。
它通过一套注解,让一个简单的Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持
RESTful 编程风格的请求。
总结:spring +mvc(模型+视图+控制器)借用网上的一张图:
废话不多说,拿起来IDEA就干。
需求:
1:File=> New Project=>Empty Project
2:File=> New Model 如图:
创建maven项目
插曲:
如果创建项目过慢,输入<archetypeCatalog,internal>
仓库镜像文件setting.xml配置说明 https://blog.csdn.net/qq_27093465/article/details/52957253
我的配置(现在可用,镜像地址以后也可能失效) 嫌麻烦直接复制(原因:外国的地址下载太慢,你懂的)
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <pluginGroups /> <proxies /> <servers /> <localRepository>G:\myRepository\repository</localRepository> <mirrors> <mirrors> <!-- 阿里云仓库 --> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> <!-- 中央仓库1 --> <mirror> <id>repo1</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo1.maven.org/maven2/</url> </mirror> <!-- 中央仓库2 --> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror> </mirrors> </mirrors> <profiles> <profile> <id>nexus</id> <repositories> <repository> <id>nexus</id> <name>local private nexus</name> <url>http://maven.oschina.net/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus</id> <name>local private nexus</name> <url>http://maven.oschina.net/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile></profiles> </settings>
完成上面的步骤(maven会自带下载对应jar) 传统的方式是自己下载 导入
3:补全工程文件目录java,resource,并mark directory为Re/Source root
4:在pom中引入依赖 mavent 会自动下
<!-- 编译版本修改为1.8 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <!-- Spring版本锁定 --> <spring.version>5.0.2.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> </dependencies>
备注:如果学过spring 应该对
spring-context,spring-web,servlet-api(sevlet)这几个包有影响 ,springmvc 当然离不开spring-webmvc这个包了,这就是为什么要学习基础的原因
(一上来ssm 或者springboot 有问题都不知道怎么下手 )
5:web.xml配置文件内容 这里会详细解释
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app> <display-name>Archetype Created Web Application</display-name> <!-- SpringMVC的核心控制器(所有的请求都会经过它) --> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 目的:springMvc 配置文件生效 你会发现他的配置很像spring的配置 要不spring 配置文件怎么要加载它呢?这就是为什么要加上 可以理解 classpath:一般指编译后src下面 总结:web.xml 可以理解是web(底层servlet的配置 同时整合web mvc 所有就有2个配置) --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <!--上面配置好了springmcv.xml 但是什么时候生效呢? 配置servlet启动时加载对象(apache-tomcat启动就自动扫描springmvc.xml -) --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <!-- 在servlet映射中添加dispatcherServlet --> <servlet-name>dispatcherServlet</servlet-name> <!-- 整个网站全部的Servlet都要经过核心控制器 --> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
6:新建包(cn.lsw.controller)名字随便起 HelloController控制器
code:
package cn.lsw.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * Create by on 2019-09-12 * 控制器(如何把一个类的方法执行呢? 我觉得应该是变成对象把它提交给spring容器) * 这不是spring里面的ioc吗? * springMvc 单词里面是不是有spring呢。聪明应该知道 * 比如用户在浏览器输入www.xx/hello * 第一步通过 DispatcherServlet核心控制(他只负责调度) * @author lsw */ @Controller public class HelloController { @RequestMapping(path = "/hello") public String sayHello(){ System.out.println( "hello spring mvc" ); //返回 sucess 它会找InternalResourceViewResolver视图解析器 //里面对应的 /WEB-INF/pages/目录下 sucess文件后缀是jsp //在去看看配置是不是呢? //有没有像net里面的mvc一样呢? return "sucess"; } }
7:新建success JSP頁面,Index.jsp页面内容都很简单如图
7:新建springmvc。xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!--第一导入命名空间 mvc context 是不是很熟悉 如果先学了spring --> <!-- 配置spring创建容器时要扫描的包 ,只扫描带有controller注解的控制器 --> <context:component-scan base-package="cn.lsw"></context:component-scan> <!-- 视图解析器(在net里面是约定大于配置) --> <bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/pages/"></property> <property name="suffix" value=".jsp"></property> </bean> <!--开启springMVC 框架注解支持( 前端控制器(DispatcherServlet) 请求到处理器映射(HandlerMapping) 处理器适配器(HandlerAdapter) 视图解析器(ViewResolver) 处理器或页面控制器(Controller) 验证器( Validator) 命令对象(Command 请求参数绑定到的对象就叫命令对象) 表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。 几大组件的融合 或者说整合 )--> <mvc:annotation-driven></mvc:annotation-driven> </beans>
8:总结【1-7步骤 图解 其实我们是分了2步 】
9:噼里啪啦的写了一堆 项目要跑起来,idea配置tomcat(这话说的描述合理吗?)
备注要是看起来很困难就看看这一篇吧:
理解 IntelliJ IDEA 的项目配置和Web部署
https://www.cnblogs.com/deng-cc/p/6416332.html
10:运行Demo 快捷键shift+10(lsw 就是上面配置的根目录路径名称)
点击超链接 大侠你会发现奇迹发生了 你入门springMvc了
到这里springMvc 入门结束了。
剩下的web 之前请求(页面如何向控制器传值,控制器又怎么返回, 一些aop 全局处理,是不是不管java还是net 都是这些呢? )
如果对你有帮助,大侠点个赞。 阅读10分钟,写文章3小时。
文章来源于https://i.cnblogs.com/EditPosts.aspx?postid=11511972
最后感谢B站提供资源 传播博客教程 ,对spring ,springmvc入门
个人学习路线:把学习的过程记录下来
java基础,JDBC,servlet,Struts(只简单的理解了流程,不深入理解 他也是mvc),springMVC,
后续准备学习Mybatis, spring boot ,SSM,这里就是为什么要从头开始,[SpringCloud]
其他的css,js 因为工作原因 已有基础 就忽略了
路线来源:http://how2j.cn/stage/14.html(喝水不忘挖井人)注意上面都是本人的学习过程,不是打广告 。
授人以鱼不如授人以渔 。
后续:无意之间打开tomcat目录 之前也一直不明白为啥要折腾
在tomcat