maven打包忽略静态资源解决办法,dispatchServlet拦截静态资源请求的解决办法

问题:

maven 打包时,有的文件打不进去target

解决:

因为maven打包默认打Java文件。在项目中的pom文件中加build标签

<build>

  <resources>  

          <resource>  

               <directory>src/main/java</directory>  

               <includes>  

                  <include>**/*.properties</include>  

                    <include>**/*.xml</include>  

                </includes>  

                <!-- 是否替换资源中的属性-->  

                <filtering>false</filtering>  

            </resource>  

            <resource>  

                <directory>src/main/resources</directory>  

                 <includes> 

        <include>**/*.properties</include>  

                     <include>**/*.xml</include> 

      </includes> 

      <filtering>true</filtering>    

            </resource>  

  </resources> 

</build>

参考地址:

http://blog.csdn.net/jgj0129/article/details/53112738

 

静态资源拦截与访问:

当在web.xml中配置DispatcherServlet时,标签url-pattern值/时,会拦截所有请求,包括静态资源,解决办法:

一、激活容器的defaultServlet来处理静态资源

例:(tomcat)

  <servlet-mapping>
      <servlet-name>default</servlet-name>
      <url-pattern>*.jpg</url-pattern>
  </servlet-mapping>

  

二、利用spring-mvc mvc:resource

例:

<mvc:resources mapping="/images/**" location="/images/" />

  

三、利用spring-mvc mvc:default-servlet-handler

例:在spring-mvc.xml中加入

<mvc:default-servlet-handler/>

参考文章:

http://www.cnblogs.com/caoyc/p/5639078.html

 

转载于:https://www.cnblogs.com/mao-yan/p/6678864.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较常见的问题,我来为您解答。 首先,需要在 pom.xml 文件中添加以下依赖: ```xml <dependencies> <!-- Spring MVC --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.9.RELEASE</version> </dependency> <!-- Tomcat embedded container--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.3.4.RELEASE</version> <scope>provided</scope> </dependency> <!-- Jackson for JSON support --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.11.2</version> </dependency> </dependencies> ``` 接下来,需要创建一个 Java 配置类,用于替代传统的 XML 配置文件。在这个类中,需要使用 @EnableWebMvc 注解启用 Spring MVC,并配置一些基本的设置。以下是一个示例配置类: ```java @Configuration @EnableWebMvc @ComponentScan(basePackages = "com.example.controller") public class AppConfig implements WebMvcConfigurer { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("/static/"); } @Override public void configureViewResolvers(ViewResolverRegistry registry) { registry.jsp("/WEB-INF/views/", ".jsp"); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoggingInterceptor()); } @Override public void addFormatters(FormatterRegistry registry) { // Add custom formatters here } @Override public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) { // Add custom argument resolvers here } @Override public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> handlers) { // Add custom return value handlers here } } ``` 在这个配置类中,我们定义了一些常见的配置选项,例如映射静态资源、视图解析器、拦截器等等。您可以根据自己的需要进行相应的修改。 最后,需要编写一个控制器类,用于处理 HTTP 请求和响应。以下是一个示例控制器类: ```java @Controller public class HomeController { @RequestMapping("/") public String home(Model model) { model.addAttribute("message", "Hello, World!"); return "home"; } } ``` 在这个控制器类中,我们使用 @Controller 注解标记该类,同时使用 @RequestMapping 注解标记处理请求的方法。在这个示例中,我们定义了一个处理根目录请求的方法,它会向模型中添加一条消息,并返回一个名为 "home" 的视图名称。 最后,您可以使用 Maven 的命令打包项目,并使用以下命令启动项目: ``` mvn clean package java -jar target/myapp-1.0.0.jar ``` 这样,您就可以使用无 XML 配置的 Spring MVC 应用程序进行开发了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值