spring 配置
引用:http://www.ideawu.net/person/spring_hibernate_web_dev/ch01.html
Table of Contents
本章讲 Spring 的环境配置和 Spring Web 应用的一般结构和开发方法.
1.1. 配置 JSP 运行环境
1.1.1. 网站所需的库文件
Tomcat安装目录下的webapps目录是放置网站的目录, 在该目录里建立一个 ideashopx 目录, 这就是我们的博客网站的目录, 它的访问地址是 http://localhost:8080/ideashopx/
到 Spring 的官方网站下载 Spring Framework 2.0(一定要下载 with-dependencies 的包, 因为里面包含了所需要的依赖文件, 例如你可以下载 spring-framework-2.0.6-with-dependencies.zip).
我们要开发的网站的目录结构如下:

Figure 1.1. 网站的目录结构
然后按照下面的路径建立以下5个文件:
<Tomcat Home>/webapps/ideashopx/
index.jsp
WEB-INF/
applicationContext.xml
ideashopx-servlet.xml
web.xml
然后解压缩Spring Framework的压缩文件, 分别从dist和lib目录下找到并将下面jar文件拷贝到网站目录下的WEB-INF/lib目录下, 这些文件是一般网站开发都要用到的:
antlr-2.7.6.jar cglib-nodep-2.1_3.jar commons-collections.jar commons-dbcp.jar commons-fileupload.jar commons-io.jar commons-logging.jar commons-pool.jar dom4j-1.6.1.jar ehcache-1.2.jar hibernate3.jar jstl.jar jta.jar log4j-1.2.13.jar spring.jar standard.jar
解压缩standard.jar文件, 从里面的META-INF文件夹中拷贝 c.tld, fmt.tld 两个文件拷贝到 WEB-INF/tld 目录下.
1.1.2. 编辑网站的配置文件
编辑WEB-INF/目录下的以下配置文件:
Example 1.1. web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>ideashopx.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<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>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>ideashopx</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ideashopx</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
ideashopx-servlet.xml 文件没有实质的内容, 因为我们目前还用不上它:
Example 1.2. ideashopx-servlet.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<value>
</value>
</property>
</bean>
</beans>
applicationContext.xml 也只是个空壳文件:
Example 1.3. applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
</beans>
log4j.properties 配置日志输出. 日志在开发和运行过程中是非常重要的.
Example 1.4. log4j.properties
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${ideashopx.root}/WEB-INF/logs/ideashopx.log
log4j.appender.logfile.MaxFileSize=1024KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
log4j.properties 配置日志输出. 日志在开发和运行过程中是非常重要的.
1.1.3. 用 JSP Hello World 页面验证环境是否配置成功
我们先运行JSP的Hello World例子, 确保我们的环境设置正确. 编辑 ideashopx/index.jsp文件, 让它输出Hello World!.
ideashopx/index.jsp文件内容为:
Example 1.5. index.jsp
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Hello World from JSP!</title>
<style type="text/css">
body{
font-size: 12px;
font-family: arial;
}
</style>
</head>
<body>
<h1>Hello World from JSP!</h1>
${param.name}
</body>
</html>
启动 Tomcat. 如果是从命令行启动, 你会看到类似的启动信息:
E:\Tomcat5.5\bin>tomcat5.exe 2007-7-4 19:32:02 org.apache.catalina.core.AprLifecycleListener lifecycleEvent 2007-7-4 19:32:02 org.apache.coyote.http11.Http11BaseProtocol init 信息: Initializing Coyote HTTP/1.1 on http-8080 2007-7-4 19:32:02 org.apache.catalina.startup.Catalina load 信息: Initialization processed in 937 ms 2007-7-4 19:32:02 org.apache.catalina.core.StandardService start 信息: Starting service Catalina 2007-7-4 19:32:02 org.apache.catalina.core.StandardEngine start 信息: Starting Servlet Engine: Apache Tomcat/5.5.23 2007-7-4 19:32:02 org.apache.catalina.core.StandardHost start 信息: XML validation disabled ... FrameworkServlet 'ideashopx': initialization completed in 234 ms Servlet 'ideashopx' configured successfully 2007-7-15 20:53:07 org.apache.coyote.http11.Http11BaseProtocol start 信息: Starting Coyote HTTP/1.1 on http-8080 2007-7-15 20:53:07 org.apache.jk.common.ChannelSocket init 信息: JK: ajp13 listening on /0.0.0.0:8009 2007-7-15 20:53:07 org.apache.jk.server.JkMain start 信息: Jk running ID=0 time=0/31 config=null 2007-7-15 20:53:07 org.apache.catalina.storeconfig.StoreLoader load 信息: Find registry server-registry.xml at classpath resource 2007-7-15 20:53:07 org.apache.catalina.startup.Catalina start 信息: Server startup in 3172 ms
建议你总是使用命令行方式启动Tomcat, 这样, 在以后的开发中你能通过控制台立即查看出错信息, 了解网站的运行情况, 特别是调试Hibernate时, 可以查看生成的SQL语句.
如果启动正常, 在浏览器地址栏中输入http://localhost:8080/ideashopx/, 你应该能看到index.jsp的运行结果:

Figure 1.2. 测试实例运行效果
在浏览器地址栏中输入http://localhost:8080/ideashopx/?name=myshop, 你看到了什么? 你应该看到显示的文本增加了小号的 myshop 字样. 这就是index.jsp文件中${param.name}的效果. ${param.name}是JSTL语句, 用来输出变量, param.name是网页请求中的name参数. JSTL在后面的章节中有详细介绍.
目前为止, 我们还没有应用到Spring框架. 接下来, 我们要编写Spring的Hello World例子. 通过这个例子, 你将看到基于Spring的网站的一般结构.

浙公网安备 33010602011771号