zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    安装armadillo
    windows sublime 2 破解
    ubuntu10.04安装有线网卡驱动
    x250装无线网卡驱动ubuntu
    main restricted universe muitiverse
    apt-get error
    新系統必須安裝的軟件列表
    更新ubuntu軟件源爲阿里雲腳本
    轉載:让重定向>,>>具有root权限
    margin的相关属性:
  • 原文地址:https://www.cnblogs.com/y112102/p/11511972.html
Copyright © 2011-2022 走看看