zoukankan      html  css  js  c++  java
  • spring 配置

    引用:http://www.ideawu.net/person/spring_hibernate_web_dev/ch01.html

    本章讲 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的网站的一般结构.

  • 相关阅读:
    【leetcode】1103. Distribute Candies to People
    【leetcode】1074. Number of Submatrices That Sum to Target
    【leetcode】1095. Find in Mountain Array
    【leetcode】1094. Car Pooling
    2018.9.27 长难句1
    L142
    L141
    L140
    Agilent RF fundamentals (11)-Vector modulator
    Agilent RF fundamentals (10) Mixer ,Phase domain and modulator
  • 原文地址:https://www.cnblogs.com/sode/p/2705072.html
Copyright © 2011-2022 走看看