SpringMVC-00:整合SpringIOC和SpringMVC

本文详细介绍如何在Eclipse Oxygen环境下,使用JDK1.8、TomcatV8.5和spring-framework-5.0.5搭建SpringMVC项目。涵盖项目结构、配置文件springContext.xml和springmvc.xml的编写,以及web.xml中SpringMVC前端控制器的配置。同时,提供了log4j.properties的日志配置示例。

适合初学者

环境

1.Eclipse Oxygen

2.JDK1.8

3.Tomcat V8.5

4.spring-framework-5.0.5

添加jar包

项目结构

springContext.xml的配置

1.

<?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:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
    <!-- 配置自动扫描的包 -->
	<context:component-scan base-package="com.xl.cms">
	<!-- 扫描时跳过 @Controller 注解的JAVA类(控制器) -->
	<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
	</context:component-scan>

</beans>

springmvc.xml的配置

1.

<?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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
	<!--注解驱动-->
    <mvc:annotation-driven> </mvc:annotation-driven>
    
	<!--配置扫描的包-->
    <context:component-scan base-package="com.xl.cms"></context:component-scan>
    
    <!--配置视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
	    <!-- 视图的路径 -->
	    <property name="prefix" value="/"></property>
	    <!-- 视图名称后缀  -->
	    <property name="suffix" value=".jsp"></property>
    </bean>
    
    <!--静态资源映射,常用于加载html、js、css、图片、视频等静态资源-->
    <mvc:resources mapping="/js/**"  location="/static/js/"/>
    <mvc:resources mapping="/img/**" location="/static/img/"/>
    <mvc:resources mapping="/css/**" location="/static/css/"/>
    <mvc:resources mapping="/fonts/**" location="/static/fonts/"/>
    
    <!-- 当上面要访问的静态资源不存在与上面的配置中时,则根据此配置来访问  需要在web.xml中配置 404 500-->
	<mvc:default-servlet-handler /> 
</beans>

web.xml的配置

1.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>springmvc-00</display-name>
<!-- *************************SpringIOC的相关设置 ************************* -->
	<listener>
        <!--注册Spring的ServletContext监听器,监听到服务器启动时,自动执行ContextLoaderListener的方法初始化Spring-->
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <context-param>
        <!--加载Spring的配置文件,随着监听器触发,Spring调用这里,找到Spring的核心配置文件-->
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:springContext.xml</param-value>
    </context-param>
    
<!-- ************************* SpringMVC的相关设置  begin ************************* -->
	<!-- springmvc前端控制器  配置DispatchcerServlet-->
	<servlet>
		<!--SpringMVC是基于Servlet使用中央处理器处理页面请求,配置中央处理器的全路径-->
		<servlet-name>springDispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 配置Spring mvc下的配置文件的位置和名称 -->
		<init-param>
			<!--当页面有请求时,DispatcherServlet对象调用这里,获取到SpringMVC的核心配置文件-->
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
		<!-- tomcat启动的时候加载这个servlet 优先级,数字越小级别越高 -->
		<load-on-startup>1</load-on-startup>
	</servlet>
	<!--将DispatcherServlet映射到‘/’-->
	<servlet-mapping>
		<!--指定请求的映射,链接为指定形式时,使用Servlet处理,其他链接不执行Servlet-->
		<servlet-name>springDispatcherServlet</servlet-name>
		<!-- 
		*.action 代表拦截后缀名为.action结尾的
		/        拦截所有,把静态资源也拦截了,但是不包括.jsp
		/*	             拦截所有包含.jsp
		  -->
		<url-pattern>/</url-pattern>
	</servlet-mapping>
<!--SpringMVC的相关设置 end-->

<!-- ************************* 解决字符编码异常的过滤器 *************************  -->
	<filter>
        <filter-name>EncodingFilter</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>
        <init-param>
            <param-name>forceRequestEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
        <init-param>
            <param-name>forceResponseEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>EncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

<!-- =========处理静态文件  采用 <mvc:resources location="/resource/" mapping="/resource/**"/>方式 " =========  -->
<!-- 	<servlet-mapping>
	     <servlet-name>default</servlet-name>
	     <url-pattern>*.css</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
	      <servlet-name>default</servlet-name>
	      <url-pattern>*.gif</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
	    <servlet-name>default</servlet-name>
	     <url-pattern>*.jpg</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
	     <servlet-name>default</servlet-name>
	     <url-pattern>*.js</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
	      <servlet-name>default</servlet-name>
	      <url-pattern>*.html</url-pattern>
	</servlet-mapping> -->

  <!-- 404错误拦截 -->
  <error-page>
    <error-code>404</error-code>
    <location>/error404.jsp</location>
  </error-page>
  <!-- 500错误拦截 -->
  <error-page>
    <error-code>500</error-code>
    <location>/error500.jsp</location>
  </error-page>
  

</web-app>

log4j.properties的配置


##------------------------------
 ### \u8BBE\u7F6E###
log4j.rootLogger = debug,stdout,D,E

### \u8F93\u51FA\u4FE1\u606F\u5230\u63A7\u5236\u62AC ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

### \u8F93\u51FADEBUG \u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7\u5230=E://logs/error.log ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = ${catalina.base}/logs/thinking-log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
#log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
log4j.appender.D.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n

### \u8F93\u51FAERROR \u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7\u5230=E://logs/error.log ###
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File =${catalina.base}/logs/thinking-error.log 
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
#log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
log4j.appender.E.layout.ConversionPattern =%d [%t] %-5p [%c] - %m%n
logger.debug("This is debug message.");  
logger.info("This is info message.");  
logger.error("This is error message.");  

测试项目

1.访问

2.demo 下载在底部

-----------------------demo 下载---------------------------

springmvc-00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值