栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringMVC学习记录

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringMVC学习记录

项目创建(Hello World项目为例) 1.创建Maven项目,什么模板都不选 2.在pom.xml中更改打包方式
war
3.导入依赖

pom.xml示例,其中需要导入的是其中的依赖部分



    4.0.0

    com.username.mvc
    springMVC_Test
    1.0-SNAPSHOT
    
    war

    
    
        
        
            org.springframework
            spring-webmvc
            5.3.16
        

        
        
            ch.qos.logback
            logback-classic
            1.2.3
        

        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        

        
        
            org.thymeleaf
            thymeleaf-spring5
            3.0.12.RELEASE
        
    
    

    
        17
        17
    


4.在main/java/创建package:com.me.mvc.controller(示例) 5.在main目录下创建webapp目录

注意目录上是否出现蓝色点识别到web,如果没有就手动按一下maven导包

6.创建web.xml

project sturcture–>module选中该module的web–>在Deployment Descriptors中添加web.xml–>注意其中的路径要对应好maven

加粗部分要注意自己加上

工程路径srcmainwebapp**WEB-INFweb.xml

7.在resource目录下创建springMVC.xml

并在其中开启自动扫描包和配置Thymeleaf视图解析器

springMVC.xml示例,注意命名空间




    
    

    
    
        
        
        
            
                
                    

                        
                        

                        
                        
                        
                        
                    
                
            
        
    

    
    
    

	
    

    
    

    
    
    

8.在web.xml中编辑servlet
    
    
        springMVC
        org.springframework.web.servlet.DispatcherServlet
        
        
            contextConfigLocation
            classpath:springMVC.xml
        
        
        1
    
    
        
        springMVC
        /
    

    
    
        CharacterEncodingFilter
        org.springframework.web.filter.CharacterEncodingFilter
        
            encoding
            UTF-8
        
        
            forceResponseEncoding
            true
        
    
    
        CharacterEncodingFilter
        
}
7.创建WebConfig类,包路径同上
@Configuration
@ComponentScan(basePackages = "com.me.mvc.controller")
//开启MVC注解启动
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {


    
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
        //WebMvcConfigurer.super.configureDefaultServletHandling(configurer);
    }

    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        TestInterceptor testInterceptor = new TestInterceptor();
        //添加自定义拦截器,并且拦截所有请求
        registry.addInterceptor(testInterceptor).addPathPatterns("
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        //
        registry.addViewController("/hello").setViewName("/hello");
    }

    
    @Bean
    public MultipartResolver multipartResolver() {
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
        return commonsMultipartResolver;
    }

    
    @Override
    public void configureHandlerExceptionResolvers(List resolvers) {
        SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver();
        Properties properties = new Properties();
        properties.setProperty("java.lang.ArithmeticException","error");
    }

    
    @Bean
    public ViewResolver viewResolver(SpringTemplateEngine templateEngine) {
        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
        viewResolver.setCharacterEncoding("UTF-8");
        viewResolver.setTemplateEngine(templateEngine);
        return viewResolver;
    }

    
    @Bean
    public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver) {
        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver);
        return templateEngine;
    }

    
    @Bean
    public ITemplateResolver templateResolver() {
        WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();
        // ServletContextTemplateResolver需要一个ServletContext作为构造参数,可通过WebApplicationContext 的方法获得
        ServletContextTemplateResolver templateResolver
                =
                new ServletContextTemplateResolver(webApplicationContext.getServletContext());
        templateResolver.setPrefix("/WEB-INF/templates/");
        templateResolver.setSuffix(".html");
        templateResolver.setCharacterEncoding("UTF-8");
        templateResolver.setTemplateMode(TemplateMode.HTML);
        return templateResolver;

    }

}
8.创建WebInit类
//web工程的初始化类,用以替代web.xml
public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {

    
    @Override
    protected Class[] getRootConfigClasses() {
        return new Class[]{SpringConfig.class};
    }

    
    @Override
    protected Class[] getServletConfigClasses() {
        return new Class[]{WebConfig.class};
    }

    
    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }


    
    @Override
    protected Filter[] getServletFilters() {
        //编码过滤器
        CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter();
        characterEncodingFilter.setEncoding("UTF-8");
        characterEncodingFilter.setForceResponseEncoding(true);
        //隐藏的请求方式过滤器
        HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();
        return new Filter[]{characterEncodingFilter, hiddenHttpMethodFilter};
        //return super.getServletFilters();
    }
}
9.创建几个html文件

index.html




    
    首页


基于注解方式的SpringMVC首页

Hello World

hello.html




    
    Hello


Hello World

error.html




    
    肥佬


程序出错


原因如下



10.创建Tomcat

选择artifact时选择explode

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763445.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号