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
epository</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>
View Code

 完成上面的步骤(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>
View Code

 备注:如果学过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>
View Code

 

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";
    }
}
View Code

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>
View Code

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

原文地址:https://www.cnblogs.com/y112102/p/11511972.html