使用Maven创建Web项目

1.勾选Create from archetype,然后选中箭头指向的资源(前提是要自己配置maven仓库,怎么配置另行去百度):

image.png

2.在这一步,添加archetypeCatalog - internal,解决maven项目创建过慢的问题:

image.png

3.等项目创建完成后的项目结构:

image.png

3.1 添加源码根目录和资源根目录:

image.png

4.配置服务器,点击add configuration...

image.png

5.点击左上角的+号,添加Tomcat服务器,选中本地,

image.png

6.可以命名,并且需要自己添加tomcat文件,

image.png

7.然后在Deployment上点击+号,添加第一项,然后选择默认包,点击ok。

image.png

8.然后配置应用上下文

image.png

9.点击运行,查看是否创建成功。

image.png

10.最后服务器正常运行,打开端口页面。项目创建成功。

image.png

构建Spring MVC

配置 DispatcherServlet

DispatcherServlet 是 Spring MVC 的核心。在这里请求会第一次接触到的框架,它要负责将请求路由到其他的组件之中。

package spittr.config;  
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;  
import spittr.web.WebConfig;  
  
public class SpitterWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer  {  
  
    @Override  
    protected String[] getServletMappings() {  
        return new String[] { "/" };  
    }  
  
    @Override  
    protected Class<?>[] getRootConfigClasses() {  
        return new Class<?>[] { RootConfig.class };  
    }  
  
    @Override  
    protected Class<?>[] getServletConfigClasses() {  
        return new Class<?>[] { WebConfig.class };  
    }  
  
}

getServletMappings(),它会将一个或多个路径映射到Dispatcher-Servlet上。在本例中,它映射的是 "/",这表示它会是应用的默认 Servlet。它会处理进入应用的所有请求。

GetServletConfigClasses() 方法返回的带有 @Configuration 注解的类将会用来定义 DispatcherServlet 应用上下文中的 bean。

getRootConfigClasses() 方法返回的带有 @Configuration 注解的类将会用来配置 ContextLoaderListener 创建的应用上下文中的 bean。

启用 Spring MVC

配置可以用的Spring MVC配置

package spittr.web;  
  
import org.springframework.context.annotation.Bean;  
import org.springframework.context.annotation.ComponentScan;  
import org.springframework.context.annotation.Configuration;  
import org.springframework.web.servlet.ViewResolver;  
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;  
import org.springframework.web.servlet.config.annotation.EnableWebMvc;  
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;  
import org.springframework.web.servlet.view.InternalResourceViewResolver;  
  

@Configuration 
@EnableWebMvc//启用Spring MVC  
@ComponentScan("spittr.web") //因此将会扫描 spitter.web 包来查找组件。稍后你就会看到,我们所编写的控制器将会带有 @Controller 注解,这会使其成为组件扫描时的候选 bean。因此,我们不需要在配置类中显式声明任何的控制器。  
public class WebConfig extends WebMvcConfigurerAdapter {  
  
    @Bean  
    public ViewResolver viewResolver() {//会查找 JSP 文件  
  InternalResourceViewResolver resolver = new InternalResourceViewResolver();  
        resolver.setPrefix("/WEB-INF/views/");  
        resolver.setSuffix(".jsp");  
        return resolver;  
    }  
  
    @Override //配置静态资源处理  
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {  
        configurer.enable();  
    }  
}

配置RootConfig

package spittr.config;  
  
  
import org.springframework.context.annotation.ComponentScan;  
import org.springframework.context.annotation.Configuration;  
import org.springframework.context.annotation.FilterType;  
import org.springframework.web.servlet.config.annotation.EnableWebMvc;  
  
@Configuration  
@ComponentScan(basePackages={"spittr"},  
        excludeFilters={  
                @ComponentScan.Filter(type= FilterType.ANNOTATION, value= EnableWebMvc.class)  
        })  
public class RootConfig {  
}

编写基本的控制器

package spittr.web;  
  
import org.springframework.stereotype.Controller;  
import org.springframework.ui.Model;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;  
  
@Controller  
@RequestMapping(path = "/home")  
public class HomeController {  
  
    @RequestMapping(path = "/index", method = RequestMethod.GET)  
    public String Index(Model model) {  
        return "home/index";  
    }  
}

创建视图进行测试

image.png

最后成功运行项目,结果如图:
image.png


WinRT
21 声望4 粉丝

临渊羡鱼,不如退而结网