欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

用idea建一个简单springmvc项目及静态资源映射

程序员文章站 2022-07-10 19:07:02
先打开Idea,Create New Project这里我们用maven来创建项目,jdk用的是1.8,然后点Next。填写完下面的信息后点击“完成”。这样一个Maven项目已经建立了。下面我们需要添加springmvc的相关依赖。

先打开Idea,Create New Project

用idea建一个简单springmvc项目及静态资源映射
这里我们用maven来创建项目,jdk用的是1.8,然后点Next。
用idea建一个简单springmvc项目及静态资源映射
填写完下面的信息后点击“完成”。

用idea建一个简单springmvc项目及静态资源映射
这样一个Maven项目已经建立了。

用idea建一个简单springmvc项目及静态资源映射
下面我们需要添加springmvc的相关依赖。

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>demo</groupId>
    <artifactId>springmvc</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
<!--        spring-mvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.7.RELEASE</version>
        </dependency>
<!--        servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2.1-b03</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.3.1</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

添加完成后Reimport一下,然后就能看到在External Libraries下,相关的依赖都已经加载
用idea建一个简单springmvc项目及静态资源映射

下面我们可以开始写一个springmvc的小程序了。

在resources文件夹下我们新建一个index.jsp的jsp文件代码如下:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Welcome</title>
</head>
<body>
<pre>
    Welcome to Spring MVC !
</pre>
</body>
</html>

用idea建一个简单springmvc项目及静态资源映射

接下我们编写springmvc的配置类

package mvc;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;

@Configuration
@EnableWebMvc
@ComponentScan()
public class MvcConfig {
    @Bean
    public InternalResourceViewResolver viewResolver(){
        InternalResourceViewResolver viewResolver=new InternalResourceViewResolver();
//        默认的classpath=resource文件夹=WEB-INF\classes\
        viewResolver.setPrefix("classpath:/");
        viewResolver.setSuffix(".jsp");
        viewResolver.setViewClass(JstlView.class);
        return viewResolver;
    }
}

接下来我们写web配置类

package mvc;

import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration.Dynamic;

public class WebInit implements WebApplicationInitializer {
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
        ctx.register(MvcConfig.class);
        ctx.setServletContext(servletContext);
        Dynamic servlet=servletContext.addServlet("dispatcher",new DispatcherServlet(ctx));
        servlet.addMapping("/");
        servlet.setLoadOnStartup(1);
    }
}

最后我们写一个简单的控制器

package mvc.control;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloControl {
    @RequestMapping("/index")
    public String hello(){
        return "index";
    }
}

这样一个简单的springmvc项目就构筑完成了。
用idea建一个简单springmvc项目及静态资源映射
接下来我们要运行一下,点击 Add Configuration

用idea建一个简单springmvc项目及静态资源映射

然后我们最加一个tomcat的localserver ,起个名字,最后点击“Fix”

用idea建一个简单springmvc项目及静态资源映射
用idea建一个简单springmvc项目及静态资源映射
点击绿色箭头启动tomcat

用idea建一个简单springmvc项目及静态资源映射
启动后会有报错,页面也无法访问,但是不用理会,因为访问地址不对的关系。
用idea建一个简单springmvc项目及静态资源映射
在地址栏最后添加 index后回车,进入index页面成功。

用idea建一个简单springmvc项目及静态资源映射
这里一个小的springmvc项目我们就创建完成。

接下来我们试着让项目能访问本地的静态资源。我们拷贝一个test.jpg文件到resources文件夹下。

用idea建一个简单springmvc项目及静态资源映射
我们需要修改springmvc的配置类,继承WebMvcConfigurer这个接口,然后重写其中的addResourceHandlers这个方法。

@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//        handler是资源页面访问链接,locations是资源的所在文件夹 
       registry.addResourceHandler("/**").addResourceLocations("classpath:/");
    }

然后我们重启tomcat,输入http://localhost:8080/springmvc_war/test.jpg就能直接访问该图片了。

用idea建一个简单springmvc项目及静态资源映射

如果图片文件不在项目内,比如在d盘根目录下面,那么我们只要修改一下资源的文件夹位置,就行了。

 registry.addResourceHandler("/**").addResourceLocations("file:d:/");

以上同样适用于eclipse, 只有tomcat服务器配置方法稍有不同而已。

本文地址:https://blog.csdn.net/qq_39936465/article/details/107639278

相关标签: 经验分享