一、上节搭好了maven框架,并且在pom.xml中配置了spring-web、junit等,
下面接着搭建SpringMVC架构。
1.在web.xml中需要添加log4j,字符过滤,Spring 的dispatcher等。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5" >
<!-- 区分项目名称,防止默认重名 -->
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>maven.example.root</param-value>
</context-param>
<!-- Spring的log4j监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- 字符集 过滤器 -->
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring view分发器 -->
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
2. 编写Spring配置文件dispatcher-servlet.xml
在“webapp/WEB-INF/”下添加一个文件“dispatcher-servlet.xml”,这个文件就是上面说的东西(可以全部复制到新建的文件中)
如要添加MVC驱动、注解检测、视图解析等。dispatcher-servlet.xml代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置注解的支持 -->
<beans xmlns="http://www.springframework.org/schema/beans"
<span style="white-space:pre"> </span> xmlns:aop="http://www.springframework.org/schema/aop"
<span style="white-space:pre"> </span> xmlns:context="http://www.springframework.org/schema/context"
<span style="white-space:pre"> </span> xmlns:mvc="http://www.springframework.org/schema/mvc"
<span style="white-space:pre"> </span> xmlns:tx="http://www.springframework.org/schema/tx"
<span style="white-space:pre"> </span> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<span style="white-space:pre"> </span> xsi:schemaLocation="http://www.springframework.org/schema/aop
<span style="white-space:pre"> </span>http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
<span style="white-space:pre"> </span>http://www.springframework.org/schema/beans
<span style="white-space:pre"> </span>http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
<span style="white-space:pre"> </span>http://www.springframework.org/schema/context
<span style="white-space:pre"> </span>http://www.springframework.org/schema/context/spring-context-3.0.xsd
<span style="white-space:pre"> </span>http://www.springframework.org/schema/mvc
<span style="white-space:pre"> </span>http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
<span style="white-space:pre"> </span>http://www.springframework.org/schema/tx
<span style="white-space:pre"> </span>http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<span style="white-space:pre"> </span><mvc:annotation-driven />
<span style="white-space:pre"> </span><!-- 启用自动扫描 -->
<span style="white-space:pre"> </span><context:component-scan base-package="com.introduce.controller.test" />
<span style="white-space:pre"> </span><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<span style="white-space:pre"> </span><property name="prefix" value="/WEB-INF/test/views/" />
<span style="white-space:pre"> </span><property name="suffix" value=".jsp" />
<span style="white-space:pre"> </span></bean>
</beans>
3.编写控制层(Controller)测试类
编写一个SpringMVC的Controller层测试类。此类只有一个方法做地址映射,并向页面传递一个数据。代码如下:
package com.introduce.controller.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
/**
* 访问地址:http://localhost:8080/introduce/controller/index.do
* @author hua
*
*/
@Controller
@RequestMapping("/controller")
public class TestController {
@RequestMapping(value="index.do")
public ModelAndView test(){
System.out.println("index.jsp");
return new ModelAndView("index","hello","你好");
}
}
4.画面(index.jsp)
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:out value="${hello}"></c:out>
</body>
</html>
这样整个框架就搭建完成了,下面是完成的目录
访问路径:http://localhost:8080/introduce/controller/index.do
访问后画面:
代码的我已经打包好了,下面有下载的文件。
二、项目搭建好了,下面就是log日志的输出,通常代码的错误内容等都需要log日志输出。
下面是配置方法。
1.pom.xml文件中追加以下代码。
<!-- Logging start-->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.6</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.6</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.6</version>
<scope>runtime</scope>
</dependency>
<!-- Logging e n d-->
2.web.xml中追加log4j.xml文件路径以及监听器
<!-- 配置加载log4j.xml文件路径 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j/log4j.xml</param-value>
</context-param>
<!-- 配置log4j.xml变量 -->
<!-- <context-param>
<param-name>rootLevel</param-name>
<param-value>DEBUG</param-value>
</context-param>
<context-param>
<param-name>loggingLevel</param-name>
<param-value>INFO</param-value>
</context-param> -->
<!-- Spring的log4j监听器 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
3.log4j.xml文件路径弄好了,下面就是log4j.xml的文件。
上面写的路径是log4j/log4j.xml,所以这个文件放在resources文件夹下的(新建文件夹)log4j下的。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<!-- [控制台STDOUT] -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<param name="encoding" value="GBK" />
<param name="target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%-5p %c{2} - %m%n" />
</layout>
</appender>
<!-- [公共Appender] -->
<appender name="DEFAULT-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${webapp.root}/logs/common-default.log" />
<param name="Append" value="true" />
<param name="encoding" value="GBK" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" />
</layout>
</appender>
<!-- [错误日志APPENDER] -->
<appender name="ERROR-APPENDER" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${webapp.root}/logs/common-error.log" />
<param name="Append" value="true" />
<param name="encoding" value="GBK" />
<param name="threshold" value="error" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" />
</layout>
</appender>
<!-- [组件日志APPENDER] -->
<appender name="COMPONENT-APPENDER"
class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="${webapp.root}/logs/logistics-component.log" />
<param name="Append" value="true" />
<param name="encoding" value="GBK" />
<param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{2} - %m%n" />
</layout>
</appender>
<!-- [组件日志] -->
<logger name="LOGISTICS-COMPONENT">
<level value="${loggingLevel}" />
<appender-ref ref="COMPONENT-APPENDER" />
<appender-ref ref="ERROR-APPENDER" />
</logger>
<!-- Root Logger -->
<root>
<level value="${rootLevel}"></level>
<appender-ref ref="DEFAULT-APPENDER" />
<appender-ref ref="ERROR-APPENDER" />
</root>
</log4j:configuration>
4.以上日志文件就配置完成了,以下调用方法,
代码下载源:http://download.csdn.net/detail/hualele/9625014