spring mvc官网下最新jar搭建框架-静态资源访问处理-注解-自动扫描

1.从官网下载spring相关jar http://spring.io/projects 点击SPRING FRAMEWORK

2.从GitHtb下载

3.向下滚动找到Downloading Artifacts 点击

4.点击Artifacts--》libs-release-local--》org--》springframewor--》spring

5.选中一个自己需要的版本(我选了4.2.5)

6.下载后的文件

配置文件的规范约束下面文件夹有的都可以写(我用到了beans, context, mvc三个, 如果需要配置数据源的可以加jdbc)

7.创建项目并配置环境

下面是贴代码:

applicationContext.xml (默认在WEB-INFO/applicationContext.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd">
    <!-- 目前只是使用spring的web-mvc功能 数据源切面整合持久化框架可在此配置 -->
</beans>

spring-webmvc-dispatcher-servlet.xml      (默认为DispacherServlet-servlet.xml)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"        ##配置视图解析类
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context" ##自动扫描
    xmlns:mvc="http://www.springframework.org/schema/mvc"     ##静态资源处理
    xsi:schemaLocation="
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-4.2.xsd
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd">

    <!-- 自动扫描的包名 -->
    <context:component-scan base-package="cn.zjx.controller"/>
    <bean id="annotationUrlHandlerMapping"
          class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"/>

    <!-- 视图解释类 -->
    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/views/" />
          <property name="suffix" value=".jsp" />
    </bean>

    <!-- 默认的注解映射的支持
        加<mvc:resources...前,要加上<mvc:annotation-driver/>,否则servlet控件器会解析失败
    -->
    <mvc:annotation-driven />

    <!-- 对静态资源文件的访问  方案一 (二选一) -->
    <!-- <mvc:default-servlet-handler/> -->

    <!-- 对静态资源文件的访问  方案二 (二选一)cache-period 缓存周期-->
    <mvc:resources mapping="/resource/js/**" location="/resource/js/" cache-period="31556926"/>
    <mvc:resources mapping="/resource/css/**" location="/resource/css/" cache-period="31556926"/>
    <mvc:resources mapping="/resource/images/**" location="/resource/images/" cache-period="31556926"/>
</beans>
对静态资源文件的访问的其它方式:  交由上级web容器处理,在web.xml中的org.springframework.web.servlet.DispatcherServlet 配置之前加入如下代码:

  <servlet-mapping>   

    <servlet-name>default</servlet-name>   

    <url-pattern>*.css</url-pattern>   

  </servlet-mapping>

如果不使用mvc:resource标签方式配置配置就需要这么配置, 下面是配置多个静态资源交由tomcat容器也是处理静态资源访问的第三种方式:

  <servlet>
        <servlet-name>Dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Dispatcher</servlet-name>
        <url-pattern>/index</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>Dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.gif</url-pattern>
    </servlet-mapping>

根据不同的资源文件制定不同的映射机制,其中servlet-name在tomcat中默认是default,该servlet在tomcat\config\web.xml文件中默认配置,不同的应用服务器对应的静态资源文件处理的servlet名称不尽相同,如下:

  tomcat,jboss,glassfish,jetty : defaut;  

  weblogic  :           FileServlet;  

  websphere :           SimpleFileServlet;  

  resin   :           resin-file;  

  GAE     :           _ah_default

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="WebApp_ID" version="2.5">
    <display-name>zjx-springmvc</display-name>
    <!-- 如果WEB-INFO下没有application.xml或者不叫这个名需要通过contex-param来加载 -->
    <!-- <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/configs.xml ##多个用逗号隔开
        </param-value>
    </context-param> -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!--
        如果WEB-INF 包含文件名称为  DispatcherServlet-servlet.xml(默认找DispatcherServlet-servlet.xml这个文件)
        则不需要在inint配置命名空间来加载该***-servlet.xml 文件
        -->
         <init-param>
             <param-name>namespace</param-name>
             <param-value>spring-webmvc-dispatcher-servlet</param-value>
         </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

TestController.java

package cn.zjx.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class TestController {
    @RequestMapping(value="/insert")
    public String save(){
        System.out.println("insert success");
        return "user_manager";
    }
    @RequestMapping(value="/selectList")
    public String selectList(HttpServletRequest requset){        request.setAttribute("size", "5个用户");
        return "user_manager";
    }
}

8.启动tomcat 可以看到加载顺序与加载的文件以及实例化的testController对象及方法的url映射名称和静态资源映射;

如下:加粗字体

INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
五月 08, 2016 3:47:21 上午 org.springframework.web.context.ContextLoader initWebApplicationContext
INFO: Root WebApplicationContext: initialization completed in 1932 ms
五月 08, 2016 3:47:22 上午 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet ‘DispatcherServlet‘
五月 08, 2016 3:47:22 上午 org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet ‘DispatcherServlet‘: initialization started
五月 08, 2016 3:47:22 上午 org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing WebApplicationContext for namespace ‘spring-webmvc-dispatcher-servlet‘: startup date [Sun May 08 03:47:22 CST 2016]; parent: Root WebApplicationContext
五月 08, 2016 3:47:22 上午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-webmvc-dispatcher-servlet.xml]
五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/insert] onto handler ‘testController
五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/insert.*] onto handler ‘testController
五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/insert/] onto handler ‘testController
五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/selectList] onto handler ‘testController‘
五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/selectList.*] onto handler ‘testController
五月 08, 2016 3:47:25 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/selectList/] onto handler ‘testController
五月 08, 2016 3:47:26 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register
INFO: Mapped "{[/insert]}" onto public java.lang.String cn.zjx.controller.TestController.save()
五月 08, 2016 3:47:26 上午 org.springframework.web.servlet.handler.AbstractHandlerMethodMapping$MappingRegistry register
INFO: Mapped "{[/selectList]}" onto public java.lang.String cn.zjx.controller.TestController.selectList(javax.servlet.http.HttpServletRequest)
五月 08, 2016 3:47:26 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
INFO: Looking for @ControllerAdvice: WebApplicationContext for namespace ‘spring-webmvc-dispatcher-servlet‘: startup date [Sun May 08 03:47:22 CST 2016]; parent: Root WebApplicationContext
五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter initControllerAdviceCache
INFO: Looking for @ControllerAdvice: WebApplicationContext for namespace ‘spring-webmvc-dispatcher-servlet‘: startup date [Sun May 08 03:47:22 CST 2016]; parent: Root WebApplicationContext
五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/resource/js/**] onto handler ‘org.springframework.web.servlet.resource.ResourceHttpRequestHandler#0‘
五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/resource/css/**] onto handler ‘org.springframework.web.servlet.resource.ResourceHttpRequestHandler#1‘
五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
INFO: Mapped URL path [/resource/images/**] onto handler ‘org.springframework.web.servlet.resource.ResourceHttpRequestHandler#2‘
五月 08, 2016 3:47:27 上午 org.springframework.web.servlet.FrameworkServlet initServletBean
INFO: FrameworkServlet ‘DispatcherServlet‘: initialization completed in 5507 ms
五月 08, 2016 3:47:27 上午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-6661"]
五月 08, 2016 3:47:27 上午 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-6666"]
五月 08, 2016 3:47:27 上午 org.apache.catalina.startup.Catalina start
INFO: Server startup in 16614 ms

静态资源可以访问

虽然web.xml中url-pattern为/

<servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
             <param-name>namespace</param-name>
             <param-value>spring-webmvc-dispatcher-servlet</param-value>
         </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>但是有它:<mvc:resources mapping="/resource/images/**" location="/resource/images/" cache-period="31556926"/>

测试insert方法http://localhost:6661/zjx-springmvc/insert测试selectList查询方法http://localhost:6661/zjx-springmvc/selectList--------------------------------------------------------------------------------------------------先到这里

接下来是配置velocity和log4j日志配置Dobble

然后通过maven命令来生成分布式项目结构如下结构把架构移植到下面就是spring-mvc为控制器的分布式架构了\(^o^)/~

--------------等待更新--------------------

时间: 05-07

spring mvc官网下最新jar搭建框架-静态资源访问处理-注解-自动扫描的相关文章

spring mvc 采用 jsr303 bean validation 校验框架

这是一个规范,定义了一些元素来进行bean的数据校验,比如 你的model有一个 user.java ,里面有一个email,当用户注册时候要验证email是否合法. 一般做法是js前端校验,但是不安全,作为完整安全解决方案,我们必须后端校验. 表 1. Bean Validation 中内置的 constraint Constraint 详细信息 @Null 被注释的元素必须为 null @NotNull 被注释的元素必须不为 null @AssertTrue 被注释的元素必须为 true @

Spring MVC 官方文档

Spring MVC 官方文档地址:https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc Spring MVC 是基于Servlet API构建的Web框架. 原文地址:https://www.cnblogs.com/smailjunk/p/11174845.html

在Spring MVC中使用Apache Shiro安全框架

我们在这里将对一个集成了Spring MVC+Hibernate+Apache Shiro的项目进行了一个简单说明.这个项目将展示如何在Spring MVC 中使用Apache Shiro来构建我们的安全框架. [TOC] 阅读文章前,您需要做以下准备: Maven 3环境Mysql-5.6+JDK1.7+git环境git.oschina.net帐号Apache Tomcat 7+您熟练掌握的编辑工具,推荐使用InterlliJ IDEA 14+开始项目地址git.oschina.net 项目地

Spring MVC Restful构建中静态资源访问问题

在构建Spring MVC Restful风格的应用时,由于在web.xml中: <span style="font-family:Microsoft YaHei;font-size:18px;"><servlet> <servlet-name>story</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</se

Spring Boot干货系列:(六)静态资源和拦截器处理

Spring Boot干货系列:(六)静态资源和拦截器处理 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持,今天详细的来介绍下默认的支持,以及自定义扩展如何实现. 默认资源映射 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration

Spring MVC实例入门之环境搭建

转载请注明出处:http://blog.csdn.net/pearyangyang/article/details/42467729 Spring MVC是Spring大家族框架之一,它通过控制器和模型对象的分离,并利用spring技术整合,使得系统的架构清晰明了. 先前准备: 1.JDK安裝和配置 path: ;C:\Program Files\Java\jdk1.6.0_17\bin 在环境变量中新增一个系统变量JAVA_HOME并配置:C:\Program Files\Java\jdk1.

spring-springmvc搭建(三)springMVC添加对静态资源访问的支持及对Fastjson的支持

1.添加对静态资源.js/.img/.css的访问 方式有3种: 1,更改springmvc 的DispatherServlet的urlpattern的路径改为“/*.do”. 2.添加<mvc:default-servlet-handler>,同时在web.xml中添加default的映射类型,目的让springmvc识别出那些可以放行,那些不可以. 在springmvc的上下文中添加: <mvc:default-servlet-handler/> 在web.xml中<se

spring-mvc里的 &lt;mvc:resources&gt; 及静态资源访问

在进行Spring MVC的配置时,通常我们会配置一个dispatcher servlet用于处理对应的URL.配置如下: <!-- The front controller of this Spring Web application, responsible for handling all application requests --> <servlet> <servlet-name>SpringMVC</servlet-name> <serv

spring boot项目进行war部署,对于静态资源无法访问的问题

记录下jar和war部署方式随意切换部署的一个解决方案,对于如何修改为自定义的目录,这边未说明. 在spring boot开发时一般是直接application运行的(与jar部署一样),因此使用jar部署的时候可以直接运行,静态资源都可以访问: 如果我们需要进行war方式部署呢,静态资源有可能就方法不到,因为war方式部署的访问方式和jar的不同需要带上项目名称: 例如: jar部署:http://localhost:8080/index.html war部署:http://localhost