spring mvc流程,客戶端發來的http請求經過spring的DispatcherServlet,DispatcherServlet選擇適合的Controller,通過返回視圖控制器來選擇合適的頁面
首先,先建一個WebInit類,這個類主要是加載配置類(因爲是面向註解,所以就沒有配置文件了,用配置類代替),這個類繼承自AbstractAnnotationConfigDispatcherServletInitializer
package config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
// TODO Auto-generated method stub
return new Class<?> [] {WebConfig.class};
}
@Override
protected String[] getServletMappings() {
return new String []{"/"};
}
}
然後建立WebConfig類,關於配置
package config;
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
@ComponentScan("web")
public class WebConfig extends WebMvcConfigurerAdapter{
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver resolver=
new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
// TODO Auto-generated method stub
configurer.enable();
}
}
然後寫Controller
package web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import static org.springframework.web.bind.annotation.RequestMethod.*;
@Controller
public class HomeController {
@RequestMapping(value="/home",method=GET)
public String home(){
return "home";
}
}
最後,在WEB-INF裏創建views/home.jsp
啓動服務器,訪問Http://localhost:8080/home