使用Maven创建Web项目
1.勾选Create from archetype,然后选中箭头指向的资源(前提是要自己配置maven仓库,怎么配置另行去百度):
2.在这一步,添加archetypeCatalog - internal,解决maven项目创建过慢的问题:
3.等项目创建完成后的项目结构:
3.1 添加源码根目录和资源根目录:
4.配置服务器,点击add configuration...
5.点击左上角的+号,添加Tomcat服务器,选中本地,
6.可以命名,并且需要自己添加tomcat文件,
7.然后在Deployment上点击+号,添加第一项,然后选择默认包,点击ok。
8.然后配置应用上下文
9.点击运行,查看是否创建成功。
10.最后服务器正常运行,打开端口页面。项目创建成功。
构建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";
}
}
创建视图进行测试
最后成功运行项目,结果如图:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。