分享
 
 
 

开发Spring MVC应用程序(1)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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.1:Eclipse建模框架,lomboz插件需要,可以使用runtime版本)

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

Ø Spring IDE 1.0.3:Spring 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 types为Apache 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按钮,完成工程的创建

(4)index.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

Ø 定义名为springappController的Bean条目,指向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)拷贝jars到WEB-INF/lib目录

l 将dist/spring.jar、lib/jakarta-commons/commons-logging.jar、lib/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 (译者:在重新部署之前,需要先删除Tomcat的webapps目录下的springapp目录,否则Tomcat,不会将新的war文件解压。什么问题?)

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有