• spring_mvc入门项目的小总结


    1.先搭建一个maven的web项目 ,然后把文件夹完善一下,创建一个java的文件夹和resource的问件夹,并指定他们各自的功能。

    导入pom.xml文件的依赖

     <properties>
     <!--这里用version进行版本的统一的控制-->
            <spring.version>5.1.5.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>

    2.创建了一个controller的类 用来完成对前端jsp的请求的处理  就像servlet一样 但是在spring_mvc中就可以通过配置普通的类来完成控制  而无需再继承httpservlet类了

    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller//配置扫描器的注解 将这个类可以被spring容器配置为bean对象
    public class HelloController {
        //
        @RequestMapping("/hello")
        public String hello(){
            System.out.println("你好,springmvc");

    //这个return返回的就是要跳转的页面的名字 好像是这么说的
    return "success"; } }

    3.配置spring的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">
    
        <!--配置spring创建容器时要扫描的包
            但是  还要的 web.xml中去初始化这个扫瞄器
        -->
        <context:component-scan base-package="com.song"></context:component-scan>
    
        <!-- 配置视图解析器-->
        <bean id="InternalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!--指定那个文件夹下的jsp页面-->
            <property name="prefix" value="/WEB-INF/page/"></property>
            <!--指定以什么来结尾的文件-->
            <property name="suffix" value=".jsp"></property>
        </bean>
        <!--配置spring开启   mvc注解的支持-->
        <mvc:annotation-driven></mvc:annotation-driven>
    
    </beans>

    4.此时还要再web.xml文件中将这个扫描器再初始化这个servlet的时候  创建

    <!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>
      <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--配置servlet初始化时的参数,读取springmvc的配置文件,创建spring容器-->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springmvc.xml</param-value>
        </init-param>
      <!--配置servlet启动时的加载对象-->
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    </web-app>

    5.在WEB—INF下建立一个page的包用来放jsp文件

    写一个跳转前的jsp页面

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <h3>你好</h3>
    <a href="hello">chick this</a>
    </body>
    </html>
    
    
    <!-- 跳转后的jsp页面-->
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
        <h3>hello  mcv</h3>
    </body>
    </html>

    5.在tomcat上添加这个项目  运行

    注意:这里再tomcat上部署的war包  和war exploded的区别

        

    war模式:将WEB工程以包的形式上传到服务器 ;
    war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;

    (1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;

    (2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。

    (3)在平时开发的时候,使用热部署的话,应该对Tomcat进行相应的设置,这样的话修改的jsp界面什么的东西才可以及时的显示出来。

     ps:此处踩了一个小坑  就是再用idea创建了一个项目 , 当把这个项目删除时(从工作空间),再创建一个同名的项目,他会没有pom文件,

      还会报出 -------

    Failed to create a Maven project: already exists in VFS

    这时我们在回收站中将这个被删除的项目彻底清除就可以了

  • 相关阅读:
    Redis 7.0 新功能新特性总览
    adb实现钉钉自动打卡 MKY
    vue2+webpack 转 vite
    zsh: command not found:nvm 的解决方案
    SSH keys 生成
    sass(dart sass)和nodesass 的区别以及 /deep/、::vdeep的支持
    nvm(node的版本管理)简介以及nvm管理node的命令介绍
    处理 code.matchAll(...) is not a function 问题
    package.json 里面的~、^
    处理 vite 里面 __require() 方法报错
  • 原文地址:https://www.cnblogs.com/yifachen/p/12003629.html
Copyright © 2020-2023  润新知