开发Spring MVC应用程序(1)

1、基本应用程序和环境的建立

(译者:该教程原来是使用Ant手动编译和部署的,这里使用Eclipse开发环境,有差别的地方,可以参考原文)

1)开发环境

l         Java SDK 1.4.2

l         Apache Tomcat 5.0.25

l         Eclipse 3.0

l         Eclipse插件:

Ø         EMF SDK 2.0.1Eclipse建模框架,lomboz插件需要,可以使用runtime版本)

Ø         lomboz 3.0J2EE插件,用来在Eclipse中开发J2EE应用程序

Ø         Spring IDE 1.0.3Spring Bean配置管理插件

l         SpringFramework 1.0.2

2)插件配置

下面简单讲一下上面插件在Eclipse中的主要配置:

lomboz

l         Window/Customize Perspective/Shoutcuts/New:选中Java/Lomboz J2EE Wizards/ Lomboz J2EE Project

l         Window/Customize Perspective/Commands:选中Lomboz Actions

l         Window/Preferences/Lomboz:指定JDK Tools.jar的位置

l         Window/Preferences/Lomboz/Server Difinitions:选择Server typesApache Tomcat v5.0.x,在Properties中指定Tomcat的安装目录,HTTP访问的地址和端口号(译者:这里使用8888),以及classpath变量TOMCAT_HOME的值(即Tomcat的安装目录)

Spring IDE

l         Window/Customize Perspective/Shoutcuts/Show View:选中Spring IDE

3)创建J2EE工程

l         File/New/ Lomboz J2EE Project

l         Project settings:指定工程名springapp

l         Java settings:注意默认输出目录是bin,改为springapp/springapp/WEB-INF/classes

l         Create J2EE Module:选择Web Modules页,点击add按钮指定Web模块名springapp;选择Targeted Servers页,Type选择Apache Tomcat v5.0.x,点击add按钮增加

l         点击Finish按钮,完成工程的创建

4index.jsp

创建应用程序的入口页面index.jsp,这里只是对环境的一个测试:

<html>
    
    
<head><title>Example :: Spring Application</title></head>
    
    
<body>
    
    
<h1>Example - Spring Application</h1>
    
    
<p>This is my test.</p>
    
    
</body>
    
    
</html>
    
    

5)部署应用程序到Tomcat

l         工具栏上点击Press to open a J2EE Project Outliner按钮,打开Lomboz J2EE View视图

l         Modules页中选择springapp工程的springapp模块,右击选择Deploy

6)测试应用程序

l         在浏览器中输入http://localhost:8888/springapp,看到正常的测试页面,说明环境已经建立好了

l         下面开始开发Spring MVC应用程序

7)修改WEB-INF目录的web.xml

l         定义DispatcherServlet来控制所有的请求,同时具有一个标准的servlet-mapping映射到*.htm URL模式

  <servlet>
    
    
    <servlet-name>springapp</servlet-name>
    
    
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
    
    <load-on-startup>1</load-on-startup>
    
    
  </servlet>
    
    
 
    
    
  <servlet-mapping>
    
    
    <servlet-name>springapp</servlet-name>
    
    
    <url-pattern>*.htm</url-pattern>
    
    
  </servlet-mapping>
    
    

l         创建springapp-servlet.xml(应用程序名--servlet.xml),配置DispatcherServlet要使用的Web应用程序context

Ø         定义名为springappControllerBean条目,指向SpringappController控制器

Ø         使用SimpleUrlHandlerMapping来定义URL映射,将/hello.htm映射到SpringappController控制器

<?xml version="1.0" encoding="UTF-8"?>
    
    
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
    
    
 
    
    
<!--
    
    
  - Application context definition for "springapp" DispatcherServlet.
    
    
  -->
    
    
 
    
    
<beans>
    
    
    <bean id="springappController" class="SpringappController"/>
    
    
 
    
    
    <bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    
    
        <property name="mappings">
    
    
            <props>
    
    
                <prop key="/hello.htm">springappController</prop>
    
    
            </props>
    
    
        </property>
    
    
    </bean>
    
    
</beans>
    
    

l         (译者:补充Spring IDE的使用)

Ø         选择springapp工程,右击选择add Spring Beans Project Nature,工程图标原来的J符号变成了S

Ø         Window/Show View/Spring Beans,打开Spring Beans视图

Ø         在视图中选择springapp,右击选择Properties

Ø         Config Files页中点击add按钮,将springapp-servlet.xml加入

Ø         Spring Beans视图中,可以看到springapp-servlet.xml的结构树,双击springapp-servlet.xml可以打开文件,双击具体结构,可以自动定位

Ø         选择springapp-servlet.xml右击选择Show Graph,可以显示文件的视图结构

8)拷贝jarsWEB-INF/lib目录

l         dist/spring.jarlib/jakarta-commons/commons-logging.jarlib/log4j/log4j-1.2.8.jar文件导入到springapp工程的springapp/WEB-INF/lib目录下

9)创建控制器

l         实现Controller接口的handleRequest()方法来处理请求

l         这里添加日志记录,检查是否执行到这里

l         handleRequest()方法返回的ModelAndView没有指定Model,所以直接重定向到指定的视图hello.jsp

import org.springframework.web.servlet.mvc.Controller;
    
    
import org.springframework.web.servlet.ModelAndView;
    
    
 
    
    
import javax.servlet.ServletException;
    
    
import javax.servlet.http.HttpServletRequest;
    
    
import javax.servlet.http.HttpServletResponse;
    
    
 
    
    
import java.io.IOException;
    
    
 
    
    
import org.apache.commons.logging.Log;
    
    
import org.apache.commons.logging.LogFactory;
    
    
 
    
    
public class SpringappController implements Controller {
    
    
 
    
    
    /** Logger for this class and subclasses */
    
    
    protected final Log logger = LogFactory.getLog(getClass());
    
    
 
    
    
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)
    
    
            throws ServletException, IOException {
    
    
 
    
    
        logger.info("SpringappController - returning hello view");
    
    
 
    
    
        return new ModelAndView("hello.jsp");
    
    
    }
    
    
}
    
    

10)创建视图hello.jsp

<html>
    
    
<head><title>Example :: Spring Application</title></head>
    
    
<body>
    
    
<h1>Hello - Spring Application</h1>
    
    
<p>Greetings.</p>
    
    
</body>
    
    
</html>
    
    

11)拷贝和修改log4j.properties

l         SpringFramework使用log4j记录日志,所以导入samples/petclinic/war/WEB-INF/classes/log4j.properties文件到springapp工程的springapp/WEB-INF/classes目录下

l         修改log4j.properties,指定日志输出文件:

# For JBoss: Avoid to setup log4j outside $JBOSS_HOME/server/default/deploy/log4j.xml!
    
    
# For all other servers: Comment out the Log4J listener in web.xml too.
    
    
# 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=${springapp.root}/WEB-INF/springapp.log
    
    
log4j.appender.logfile.MaxFileSize=512KB
    
    
# 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
    
    

l         (译者:在部署时提示下面错误,log4j无法正常工作,望高手指正)

log4j:WARN No appenders could be found for logger (org.apache.catalina.session.ManagerBase).
    
    
log4j:WARN Please initialize the log4j system properly.
    
    

12)重新部署应用程序

l         通过前面的方法重新部署应用程序

l         (译者:在重新部署之前,需要先删除Tomcatwebapps目录下的springapp目录,否则Tomcat,不会将新的war文件解压。什么问题?)

l         在浏览器中输入http://localhost:8888/springapp/hello.htm,能够正常显示hello.jsp的内容

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值