文档视界 最新最全的文档下载
当前位置:文档视界 › JAVA项目之Velocity

JAVA项目之Velocity

JAVA项目之Velocity
JAVA项目之Velocity

JAVA项目之Velocity

1.简介

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。

当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。

2.Velocity

2.1 Velocity 工作流程

Velocity 工作流程主要分五步:

1、设定 Velocity 引擎对象的参数

2、 Velocity 引擎对象初始化,

3、将需要的传递的变量,加入 VelocityContext 类对象中。

4、构建替换后,输出变量写入字符流(java.io.writer),加入 VelocityContext 类对象中。

5、 Velocity 方法mergeTemplate(String templateName, String encoding, Context context, Writer writer),实现变量的传递。

1、Velocity 初始化参数

Velocity 初始化是会创建一个 Properties 对象,Velocity工作的参数都是从这个 Properties 对象中提取。Properties 对象中的键名在 org.apache.velocity.runtime.RuntimeConstants 接口中有统一定义, 类VelocityEngine 和 Velocity 都继承了这一接口,其中的键如下:如: public static final String DEFAULT_RUNTIME_PROPERTIES =

"org/apache/velocity/runtime/defaults/velocity.properties";

public static final String RUNTIME_LOG = "runtime.log";

public static final String FILE_RESOURCE_LOADER_PATH = "file.resource.loader.path";

public static final String FILE_RESOURCE_LOADER_CACHE = "file.resource.loader.cache";

public static final String RUNTIME_LOG_LOGSYSTEM = "runtime.log.logsystem";

public static final String RUNTIME_LOG_LOGSYSTEM_CLASS = "runtime.log.logsystem.class";

public static final String COUNTER_NAME = "https://www.docsj.com/doc/9f15330728.html,";

public static final String COUNTER_INITIAL_VALUE = "directive.foreach.counter.initial.value";

public static final String MAX_NUMBER_LOOPS = "directive.foreach.maxloops";

public static final String SET_NULL_ALLOWED = "directive.set.null.allowed";

public static final String ERRORMSG_START = "directive.include.output.errormsg.start";

public static final String ERRORMSG_END = "directive.include.output.errormsg.end";

public static final String PARSE_DIRECTIVE_MAXDEPTH = "directive.parse.max.depth";

public static final String RESOURCE_MANAGER_CLASS = "resource.manager.class";

public static final String RESOURCE_MANAGER_CACHE_CLASS = "resource.manager.cache.class";

public static final String RESOURCE_MANAGER_DEFAULTCACHE_SIZE = "resource.manager.defaultcache.size"; public static final String RESOURCE_MANAGER_LOGWHENFOUND = "resource.manager.logwhenfound";

public static final String RESOURCE_LOADER = "resource.loader";

public static final String EVENTHANDLER_REFERENCEINSERTION = "eventhandler.referenceinsertion.class"; public static final String EVENTHANDLER_NULLSET = "eventhandler.nullset.class";

public static final String EVENTHANDLER_METHODEXCEPTION = "eventhandler.methodexception.class";

public static final String EVENTHANDLER_INCLUDE = "eventhandler.include.class";

public static final String EVENTHANDLER_INVALIDREFERENCES = "eventhandler.invalidreferences.class"; public static final String VM_LIBRARY = "velocimacro.library";

public static final String VM_LIBRARY_DEFAULT = "VM_global_library.vm";

public static final String VM_LIBRARY_AUTORELOAD = "velocimacro.library.autoreload";

public static final String VM_PERM_ALLOW_INLINE = "velocimacro.permissions.allow.inline";

public static final String VM_PERM_ALLOW_INLINE_REPLACE_GLOBAL =

"velocimacro.permissions.allow.inline.to.replace.global";

public static final String VM_PERM_INLINE_LOCAL = "velocimacro.permissions.allow.inline.local.scope"; public static final String VM_MESSAGES_ON = "velocimacro.messages.on";

public static final String VM_CONTEXT_LOCALSCOPE = "velocimacro.context.localscope";

public static final String VM_ARGUMENTS_STRICT = "velocimacro.arguments.strict";

public static final String INTERPOLATE_STRINGLITERALS = "runtime.interpolate.string.literals";

public static final String INPUT_ENCODING = "input.encoding";

public static final String OUTPUT_ENCODING = "output.encoding";

public static final String ENCODING_DEFAULT = "ISO-8859-1";

public static final String UBERSPECT_CLASSNAME = "runtime.introspector.uberspect";

public static final String INTROSPECTOR_RESTRICT_PACKAGES = "introspector.restrict.packages";

public static final String INTROSPECTOR_RESTRICT_CLASSES = "introspector.restrict.classes";

public static final String PARSER_POOL_CLASS = "parser.pool.class";

public static final String PARSER_POOL_SIZE = "parser.pool.size";

public static final String DEFAULT_RUNTIME_DIRECTIVES =

"org/apache/velocity/runtime/defaults/directive.properties";

public static final int NUMBER_OF_PARSERS = 20;

2、Velocity 的初始化

(a)通过 Velocity 的init方法实现 参数的设定。

//使用配置文件中的参数

public void init(String propsFilename)

//将需要要设定的参数入Properties对象

public void init(Properties p)

(b)通过 Velocity 的参数修改方法进行设定。

//修改已经有的参数

public void setProperty(String key, Object value)

//新增加的参数

public void addProperty(String key, Object value)

3、将需要的传递的变量,加入 VelocityContext 类对象中。

context.put("name", "Liang");

4、构建替换后,输出变量写入字符流(java.io.writer),加入 VelocityContext 类对象中。

Writer writer = new OutputStreamWriter( System.out);

5、 Velocity 方法mergeTemplate(String templateName, String encoding, Context context, Writer writer),实现变量的传递。

Writer writer = new OutputStreamWriter( System.out);

Velocity.mergeTemplate("hellovelocity.vm", "UTF-8",context, writer);

java.io.Reader和java.io.Writer支持Unicode标准字符集(Character Set)(字节流则只支持ISO-Latin-1 8-bit)。在处理流数据时,会根据系统默认的字符编码来进行字符转换,

InputStream、OutputStream与Reader、Writer的区别

一、区别

InputStream、OutputStream直接操作byte数组。

Reader、Writer在操作时会进行decode、encode,会根据你的系统属性编码格式对数据进行编码或解码。但是当文件的编码格式与当前系统的不一致时,就需要做编码的转换。

二、转换

new OutputStreamWriter(FileUtils.openOutputStream(new File(filePath)), "ms932")

new InputStreamReader(FileUtils.openInputStream(new File(filePath)), "ms932")

2.2 Velocity 实例

1、 Velocity 初始化参数文件velocity.properties

该文件定义了Velocity 初始化所需的参数,在velocity.jar或velocity-dep.jar中有样例文件org/apache/velocity/runtime/defaults/velocity.properties,内容如下:

# ----------------------------------------------------------------------------# R U N T I M E L O G

# ----------------------------------------------------------------------------

# ----------------------------------------------------------------------------# default LogChute to use: default: AvalonLogChute, Log4JLogChute, JdkLogChute # ----------------------------------------------------------------------------runtime.log.logsystem.class=

org.apache.velocity.runtime.log.AvalonLogChute,org.apache.velocity.runtime.log.L og4JLogChute,org.apache.velocity.runtime.log.JdkLogChute

# ---------------------------------------------------------------------------

# This is the location of the Velocity Runtime log.

# ----------------------------------------------------------------------------runtime.log=/var/logs/velocity.log

# ----------------------------------------------------------------------------# This controls whether invalid references are logged.

# ----------------------------------------------------------------------------runtime.log.invalid.references=true

# ----------------------------------------------------------------------------# T E M P L A T E E N C O D I N G

# ----------------------------------------------------------------------------

input.encoding=ISO-8859-1

output.encoding=ISO-8859-1

# ----------------------------------------------------------------------------# F O R E A C H P R O P E R T I E S

# ----------------------------------------------------------------------------# These properties control how the counter is accessed in the #foreach

# directive. By default the reference $velocityCount will be available

# in the body of the #foreach directive. The default starting value

# for this reference is 1.

# ----------------------------------------------------------------------------

https://www.docsj.com/doc/9f15330728.html,=velocityCount

directive.foreach.counter.initial.value=1

directive.foreach.maxloops=-1

# ----------------------------------------------------------------------------# S E T P R O P E R T I E S

# ----------------------------------------------------------------------------# These properties control the behavior of #set.

# For compatibility, the default behavior is to disallow setting a reference

# to null. This default may be changed in a future version.

# ----------------------------------------------------------------------------directive.set.null.allowed=false

# ----------------------------------------------------------------------------# I N C L U D E P R O P E R T I E S

# ----------------------------------------------------------------------------# These are the properties that governed the way #include'd content

# is governed.

# ----------------------------------------------------------------------------

directive.include.output.errormsg.start=

# ----------------------------------------------------------------------------# P A R S E P R O P E R T I E S

# ----------------------------------------------------------------------------directive.parse.max.depth=10

# ----------------------------------------------------------------------------# T E M P L A T E L O A D E R S

# ----------------------------------------------------------------------------#

#

# ----------------------------------------------------------------------------resource.loader=file

file.resource.loader.description=Velocity File Resource Loader

file.resource.loader.class=

org.apache.velocity.runtime.resource.loader.FileResourceLoader

#指定模板文件所在的目录

file.resource.loader.path=

/home/caohy/workspace/testServlet/WebContent/templates/vm

file.resource.loader.cache=false

file.resource.loader.modificationCheckInterval=2

# ----------------------------------------------------------------------------# VELOCIMACRO PROPERTIES

# ----------------------------------------------------------------------------# global : name of default global library. It is expected to be in the regular # template path. You may remove it (either the file or this property) if

# you wish with no harm.

# ----------------------------------------------------------------------------# velocimacro.library = VM_global_library.vm

velocimacro.permissions.allow.inline=true

velocimacro.permissions.allow.inline.to.replace.global=false

velocimacro.permissions.allow.inline.local.scope=false

velocimacro.context.localscope=false

# ----------------------------------------------------------------------------# VELOCIMACRO STRICT MODE

# ----------------------------------------------------------------------------# if true, will throw an exception for incorrect number

# of arguments. false by default (for backwards compatibility)

# but this option will eventually be removed and will always

# act as if true

# ----------------------------------------------------------------------------velocimacro.arguments.strict=false

# ----------------------------------------------------------------------------# INTERPOLATION

# ----------------------------------------------------------------------------# turn off and on interpolation of references and directives in string

# literals. ON by default :)

# ----------------------------------------------------------------------------runtime.interpolate.string.literals=true

# ----------------------------------------------------------------------------# RESOURCE MANAGEMENT

# ----------------------------------------------------------------------------# Allows alternative ResourceManager and ResourceCache implementations

# to be plugged in.

# ----------------------------------------------------------------------------resource.manager.class=

org.apache.velocity.runtime.resource.ResourceManagerImpl

resource.manager.cache.class=

org.apache.velocity.runtime.resource.ResourceCacheImpl

# ----------------------------------------------------------------------------# PARSER POOL

# ----------------------------------------------------------------------------# Selects a custom factory class for the parser pool. Must implement

# ParserPool. parser.pool.size is used by the default implementation

# ParserPoolImpl

# ----------------------------------------------------------------------------parser.pool.class=org.apache.velocity.runtime.ParserPoolImpl

parser.pool.size=20

# ----------------------------------------------------------------------------# EVENT HANDLER

# ----------------------------------------------------------------------------# Allows alternative event handlers to be plugged in. Note that each

# class property is actually a comma-separated list of classes (which will

# be called in order).

# ----------------------------------------------------------------------------# eventhandler.referenceinsertion.class =

# eventhandler.nullset.class =

# eventhandler.methodexception.class =

# eventhandler.include.class =

# ----------------------------------------------------------------------------

# PLUGGABLE INTROSPECTOR

# ----------------------------------------------------------------------------# Allows alternative introspection and all that can of worms brings.

# ----------------------------------------------------------------------------

runtime.introspector.uberspect=

org.apache.velocity.util.introspection.UberspectImpl

# ----------------------------------------------------------------------------# SECURE INTROSPECTOR

# ----------------------------------------------------------------------------# If selected, prohibits methods in certain classes and packages from being # accessed.

# ----------------------------------------------------------------------------introspector.restrict.packages=https://www.docsj.com/doc/9f15330728.html,ng.reflect

# The two most dangerous classes

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.Class

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.ClassLoader

# Restrict these for extra safety

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,piler

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.InheritableThreadLocal

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.Package

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.Process

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.Runtime

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.RuntimePermission

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.SecurityManager

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.System

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.Thread

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.ThreadGroup

introspector.restrict.classes=https://www.docsj.com/doc/9f15330728.html,ng.ThreadLocal

2、 Velocity 实例代码

/**

*

* -------------------------------------------------------------------------

* Copyright ? 2013 cao hai yang.

*

* @author :曹海洋

* @version :Version 1.0

* -------------------------------------------------------------------------

*

* 作为是一名软件开发工作和爱好者

* 提供一些常用功能的源代码集合

* 为自己的工作做个备份,也为软件开发的初学者提供一些借鉴

*

* 该源代码供任何个人或组织,免费进行任何非商业行为的借鉴或修改

* 所有权归作者所有

*

*

* 创建时间:2013-5-15

*

*/

package https://www.docsj.com/doc/9f15330728.html,mon.template.vm;

import java.io.IOException;

import java.io.OutputStreamWriter;

import java.io.Writer;

import java.util.Date;

import org.apache.velocity.VelocityContext;

import org.apache.velocity.app.Velocity;

/**

* @ClassName: VelocityApp

*

* @DESCR:

*

* 利用Velocity 进行格式输出a

*

* @author caohy

* @date 2013-5-15 下午01:31:16

*/

public class VelocityApp {

/**

*

* @MethodName: main

* @DESCR: TODO

* @param@param args

* @return void

* @throws IOException

* @throws

* @author caohy

* @date 2013-5-15 下午01:31:16

*/

public static void main(String[] args) throws IOException {

// 初始化

Velocity.init("/home/caohy/workspace/testServlet/conf/velocity.properties");

// 输入变量

VelocityContext context = new VelocityContext();

context.put("name", "Liang");

context.put("date", (new Date()).toString());

// 输出变数

Writer writer = new OutputStreamWriter(System.out);

// 变量替换

Velocity.mergeTemplate("hellovelocity.vm", "UTF-8", context, writer);

// 输出变数处理

String st = writer.toString();

// 资料源关闭

writer.close();

System.out.println("==================" + st);

}

}

3. VelocityServlet

3.1 VelocityServlet 工作流程

为了在Servlet中方便的使用 ,提供了 org.apache.velocity.servlet.VelocityServlet ,该类继承了HttpServlet,并对 Velocity 进行了封装。程序员不用过多的关注 Velocity 现实的过程, VelocityServlet主要的方法是 protected Properties loadConfiguration(ServletConfig config)和protected Template handleRe q uest(Context ctx)。

1、protected Properties loadConfiguration(ServletConfig config)

该方法实现 Velocity 的初始化工作,程序员可以通过重构该方法实现对 Velocity 初始化工作。VelocityServlet类的 loadConfiguration 方法默认是从 web 项目的ServletContext 和servletConfig 读取 org.apache.velocity.properties 参数的值。构建 properties 对象实现 Velocity 初始化工作。

当我们继承 VelocityServlet 类,可以按需求决定是否重构 loadConfiguration ,重构时可以自己的方式构建 Velocity 初始化所需的properties 对象。

2、 protected Template handleRe q uest(HttpServletRe q uest re q uest, HttpServletResponse response, Context ctx)

该方法在 VelocityServlet类并没有具体功能的实现,程序员继承该类时,必须进行重构才能完成实际工作。该方法主要功能有两个,一是将需要替换的变量加入 ctx 参数中;二指定模板文件。

ctx.put("theList", personList);

Template outty = getTemplate("sample.vm");

3.2 VelocityServlet实例

1、创建类

创建一个类并继承VelocityServlet ,重构、protected Properties

loadConfiguration(ServletConfig config)和 protected Template

handleRe q uest(HttpServletRe q uest re q uest, HttpServletResponse response, Context ctx)方法。

/**

*

* ------------------------------------------------------------------------- * Copyright ? 2013 cao hai yang.

*

* @author :曹海洋

* @version :Version 1.0

* ------------------------------------------------------------------------- *

* 作为是一名软件开发工作和爱好者

* 提供一些常用功能的源代码集合

* 为自己的工作做个备份,也为软件开发的初学者提供一些借鉴

*

* 该源代码供任何个人或组织,免费进行任何非商业行为的借鉴或修改

* 所有权归作者所有

*

*

* 创建时间:2013-5-15

*

*/

package https://www.docsj.com/doc/9f15330728.html,mon.template.vm;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.util.Properties;

import java.util.Vector;

import javax.servlet.ServletConfig;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.velocity.Template;

import org.apache.velocity.context.Context;

import org.apache.velocity.servlet.VelocityServlet;

import https://www.docsj.com/doc/9f15330728.html,mon.config.ConfigManager;

/**

* @ClassName: VelocityServ

*

* @DESCR:

*

* 在Servlet中使用Velocity 进行页面的输出

* 继承VelocityServlet 类

* 方法loadConfiguration ,以自己的方式Velocity 初始化

* 方法handleRequest ,实现具体变量的赋值和模板文件的指定

*

* @author caohy

* @date 2013-5-15 下午01:32:58

*/

@SuppressWarnings("deprecation")

public class VelocityServ extends VelocityServlet {

/**

* serialVersionUID 生成

* jdk1.5/bin/serialver -classpath

* ../../../lib/servlet-api.jar:../lib/velocity-1.7-dep.jar:.

* https://www.docsj.com/doc/9f15330728.html,mon.template.vm.VelocityServ

*

* https://www.docsj.com/doc/9f15330728.html,mon.template.vm.VelocityServ:

* static final long serialVersionUID = 1053413255515491210L;

*/

private static final long serialVersionUID = 1053413255515491210L;

@Override

protected Properties loadConfiguration(ServletConfig config) throws IOException, FileNotFoundException {

Properties p = new Properties();

// 以自己的方式Velocity 初始化所需的Properties 对象

p = ConfigManager.velocityConfig.getProperties();

return p;

}

@Override

protected Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx)

throws Exception {

// 将模板数据list 放置到上下文环境context 中去

String p1 = "Bob";

String p2 = "Harold";

Vector personList = new Vector();

personList.addElement(p1);

personList.addElement(p2);

ctx.put("theList", personList);

// 指定模板文件

Template out = getTemplate("hellovelocity.vm");

return out;

}

}

2、配置类 VelocityServ

VelocityServ 类 继承了VelocityServlet类 ,便间接继承了HttpServlet类。需要在web.xml进行配置。

VelocityServ

https://www.docsj.com/doc/9f15330728.html,mon.template.vm.VelocityServ

VelocityServ

/VelocityServ

3、创建模板文件

创建模板文件 使变量以固定格式在页面上显示,如:hellovelocity.vm

Sample velocity page

Hello,welcome to velocity's world!

Here's the list of people

#foreach ($name in $theList)

#end

Names
$name

注:将文件放入 file.resource.loader.path 参数指定的目录

4. Velocity T ools

velocity tools,目前最新版本为2.0。velocity的功能很是强大,velocity仅仅是核心包。 velocity-tools-view-2.0.jar,velocity-1.7-dep.jar, commons-digester-1.8.jar,commons-collections-3.2.jar,commons-beanutils-1.7.0.jar是必须的包。所有包都在velocity tools 压缩包内,需要时可以自行加入。

4.1 Velocity T ools工作流程

Velocity Tools 是 Velocity 模板引擎的一个子项目,用来将 Velocity 与 Web开发环境集成的工具包。可以更简洁的方法在Web项目中使用 Velocity。

org.apache.velocity.tools.view.VelocityViewServlet类继承了HttpServlet,对Velocity的底层进行了封装。

VelocityViewServlet的初始化时实现了Velocity初始化工作,主要加载了 velocity.properties

和 tools.xml两个文件。

1、velocity.properties

该文件定义了Velocity初始化时的参数。VelocityViewServlet默认加载点velocity.properties 的流程:

固定目录下的的文件:

/org/apache/velocity/tools/view/velocity.properties

/WEB-INF/velocity.properties

用户在 web.xml中定义的文件:

org.apache.velocity.properties

/WEB-INF/velocityView.properties

VelocityView

org.apache.velocity.tools.view.VelocityViewServlet

org.apache.velocity.tools

/conf/tools-chy.xml

VelocityView

*.vm

2、 tools.xml

该文件定义了vm模板中使用的变量。VelocityViewServlet默认加载点tools.xml 的流程:

固定目录下的的文件:

/WEB-INF/tools.xml

用户在 web.xml中定义的文件:

org.apache.velocity.tools

/WEB-INF/tools.xml

VelocityView

org.apache.velocity.tools.view.VelocityViewServlet

org.apache.velocity.tools

/conf/tools-chy.xml

VelocityView

*.vm

注:根目录是指以web项目的根目录,不是系统的根目录

4.2 Velocity T ools velocity.properties

Velocity Tools初始化参数文件velocity.properties,该文件定义了Velocity 初始化所需的参数在velocity-tools-2.0/lib/velocity-tools-view-2.0.jar有样例文件

org/apache/velocity/tools/view/velocity.properties,内容如下:

# default to servletlogger, which logs to the servlet engines log

runtime.log.logsystem.class=

org.apache.velocity.runtime.log.ServletLogChute,org.apache.velocity.tools.view.ServletLo gChute

# by default, load resources with webapp resource loader and string resource loader (in that order)

resource.loader=webapp,string

webapp.resource.loader.class=org.apache.velocity.tools.view.WebappResourceLoader string.resource.loader.class=

org.apache.velocity.runtime.resource.loader.StringResourceLoader

#模板文件目录

#webapp.resource.loader.path=/WEB-INF/layout/

# allows getting and setting $request, $session and $application attributes using Velocity syntax,

# like in #set($session.foo = 'bar'), instead of $session.setAttribute('foo','bar') runtime.introspector.uberspect=

org.apache.velocity.util.introspection.UberspectImpl,org.apache.velocity.tools.view.Weba ppUberspector

# Filepath for error template, relative to web application root directory

#tools.view.servlet.error.template = error.vm

#runtime.log = /var/logs/velocity.log

#定义日志

#runtime.log.logsystem.class=org.apache.velocity.runtime.log.Log4JLogChute

#定义日志输出级别

#https://www.docsj.com/doc/9f15330728.html,.apache.velocity=DEBUG

#input.encoding=UTF-8

#output.encoding=UTF-8

4.3 Velocity T ools tools.xml

该文件定义了vm模板中使用的变量 ,可以通过来xml来实现变量的替换工作,利用xml可以不必在代码中进行替换工作。

在velocity-tools-2.0/lib/velocity-tools-view-2.0.jar有样例文件

org/apache/velocity/tools/view/tools.xml,内容如下:

this is foo

this is bar.

restrictTo="/templates/vm/index*"/>

4.4 利用xml 实现velocity

1、在web.xml 文件中进行配置,如:

VelocityView

org.apache.velocity.tools.view.VelocityViewServlet

org.apache.velocity.tools

/conf/tools-chy.xml

VelocityView

*.vm

Velocity 初始化工作利用默认的配置不作修改,通过 org.apache.velocity.tools 参数指定xml文件。

2、在tools-chy.xml 设置参考4.3:

3、在tools-chy.xml 文件中的类

在 tools-chy.xml 指定了

restrictTo="/templates/vm/index*"/> ,可以在替换vm 模板,获取 com.chy.bean.ToyTool 类中的数据。类:

/**

*

* -------------------------------------------------------------------------

* Copyright ? 2013 cao hai yang.

*

* @author :曹海洋

* @version :Version 1.0

* -------------------------------------------------------------------------

* 作为是一名软件开发工作和爱好者

* 提供一些常用功能的源代码集合

* 为自己的工作做个备份,也为软件开发的初学者提供一些借鉴

*

* 该源代码供任何个人或组织,免费进行任何非商业行为的借鉴或修改

* 所有权归作者所有

*

*

* 创建时间:2013-5-22

*

*/

package com.chy.bean;

/**

* @ClassName: ToyTool

* @DESCR:

*

* 该类用于保存数据

*

* @author caohy

* @date 2013-5-22 下午05:07:37

*/

public class ToyTool {

private String message = "Hello from ToyTool!";

public String getMessage() {

return message;

}

public void setMessage(String m) {

message = m;

}

/** To test exception handling in templates. */

public boolean whine() {

throw new IllegalArgumentException();

}

}

4、创建vm 模板文件

I'm a velocity template processed using the VelocityViewServlet. #if( $XHTML )

#set( $br = "
" )

#else

#set( $br = "
" )

#end

$br

$br

Here we use a custom tool: $toytool.message

$br

Here we use a custom tool: $bar

$br

Lets count : #foreach($i in [1..5])$i #end

$br

$br

Let's play with a hashmap:$br

first add foo: $map.put("foo",$foo)$br

then add bar: $map.put("bar",$bar)$br

$br

and that gives us $map

$br

$br

Here we get the date from the DateTool: $date.medium

$br

$br

#if( $isSimple )

This is simple#if( $XHTML ) xhtml#end app version ${version}.

#end

$br

$br

Click here to see the VelocityViewTag handle the same VTL markup.

模板文件放在web项目目录下的任何路径中,只需要在 xml 文件指定即可。

5、测试

只需要在启动服务器,在浏览器中输入vm 模板的路径文件名即可。如:

http://127.0.0.1:8080/testServlet/templates/vm/index.vm

4.5 利用代码实现velocity

不使用xml 而是通过继承 org.apache.velocity.tools.view.VelocityViewServlet 来实现 Velocity 的使用。

1、创建类

创建一个继承 VelocityViewServlet 的类,重构 protected Template

handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx)方法。

/**

*

* -------------------------------------------------------------------------

* Copyright ? 2013 cao hai yang.

*

* @author :曹海洋

* @version :Version 1.0

* -------------------------------------------------------------------------

*

* 作为是一名软件开发工作和爱好者

* 提供一些常用功能的源代码集合

* 为自己的工作做个备份,也为软件开发的初学者提供一些借鉴

*

* 该源代码供任何个人或组织,免费进行任何非商业行为的借鉴或修改

* 所有权归作者所有

*

*

* 创建时间:2013-5-20

*

*/

package https://www.docsj.com/doc/9f15330728.html,mon.template.vm;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.velocity.Template;

import org.apache.velocity.context.Context;

import org.apache.velocity.tools.view.VelocityViewServlet;

import com.chy.bean.ToyTool;

/**

* @ClassName: VelocityViewServ

*

* @DESCR:

*

* 在Servlet中使用Velocity 进行页面的输出

* 继承VelocityViewServlet 类

* 方法handleRequest ,实现具体变量的赋值和模板文件的指定

*

* 比VelocityServlet 方便只处是可以给vm 模板名带路径。

*

* @author caohy

* @date 2013-5-20 上午08:37:47

* @see https://www.docsj.com/doc/9f15330728.html,mon.web.plugin.T

*/

public class VelocityViewServ extends VelocityViewServlet {

/**

* serialVersionUID 生成

* jdk1.5/bin/serialver -classpath

* ../../../lib/servlet-api.jar:

* ../lib/velocity-1.7-dep.jar:

* ../lib/velocity-tools-view-2.0.jar:

* .

* https://www.docsj.com/doc/9f15330728.html,mon.template.vm.VelocityViewServ

*

* https://www.docsj.com/doc/9f15330728.html,mon.template.vm.VelocityViewServ:

* static final long serialVersionUID = -4254322658052837787L;

*/

private static final long serialVersionUID = -4254322658052837787L;

@Override

protected Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx) {

// 将模板数据放置到上下文环境context 中去

ToyTool toytool = new ToyTool();

ctx.put("xhtml", "true");

ctx.put("isSimple", "true");

ctx.put("version", "2.0");

ctx.put("foo", "this is foo");

ctx.put("bar", "this is bar.");

ctx.put("toytool", toytool);

// 指定模板文件

Template out = getTemplate("/templates/vm/index.vm");

return out;

}

}

2、配置类 VelocityViewServ

VelocityViewServ 类间接继承了HttpServlet类。需要在web.xml进行配置。

VelocityViewServ

https://www.docsj.com/doc/9f15330728.html,mon.template.vm.VelocityViewServ

VelocityViewServ

/VelocityViewServ

3、创建模板文件 ,参照4.4.4

新项目开发计划书范本

新项目开发计划书范本 鲜果吧项目开发计划书 什么是新产品开发计划 新产品开发计划是指有目的、有计划、有步骤地发展新产品的计划。新产品开发具有战略决 策性质,是企业的一项重大的经营管理决策。它决定了企业的经营方向。 [编辑] 新产品开发计划的内容 新产品开发计划的内容包括: 1.发展新品种,包括确定新产品的发展方向和系列型谱的制订。 2.老产品的改进和淘汰。 3.重要科学研究项目。在长、中期计划中,主要是针对新产品开发中有关基础研究和应用研 究的一些重大理论问题进行研究。在近期计划中,主要是针对新产品开发中有关新产品结构、加 工工艺和生产组织中的某些具体问题进行研究。 [编辑] 制定新产品开发计划应考虑的因素 制定新产品开发计划应考虑的因素有: 1.国家计划和上级下达的任务; 2.企业今后的发展方向; 3.用户和市场需求; 4.企业现有生产技术条件;

5.国家有关政策和法规等。 [编辑] [1]新产品开发计划的特点 1.创新性是新产品开发计划的主要特点,也是开发的宗旨。创新,首先要满足用户的需要。它包括:新的花色款式、新的质量水平、新的性能、新的功能、新的原理和结构、新的价格水平,等等。一切都是根据用户的新需要,作为创新的宗旨。 2.技术性强是另一主要特点。新产品从创意开始,中间经过设计、试制,直至开发后朗的售后技术服务,要克服一系列技术上的障碍和难题。所以,产品开发工作实质上是一项技术知识密集的智力开发工作。 3.重复性极小。新产品开发基本上是一次工程。对一个具体企业来说,很少或者根本没有前例可循,这就大大增加了开发计划工作的难度和复杂性。 4.涉及面广。从外部市场环境、最新技术水平和发展动态、用户的意见和要求、竞争对手情况、价格和原材料来源、环境保护的要求,一直到企业内部的设计、工艺、质量、工装、设备、资金等,都必须统筹兼顾、逐一解决。 5.风险性相对较大。这种风险往往表现为开发的成功率的高低。 [编辑] [1]新产品开发计划的任务 新产品开发计划同企业的经营计划相对应,可以分为长期产品发展规划和年度产品开发计划。但是,由于新产品开发基本上是一次性工程,所以,对重要或复杂的产品,在具体执行计划时,还应按产品分别编制项目开发计划。无论哪种开发计划,它们的共同任务主要有: 1.不断满足整个国民经济发展和社会主义建设以及人民物质文化生活的需要。优先保证国家和行业的产品开发任务。

图书管理系统项目开发计划书

学校代码: 10128 学号:200720205012 200710205008 200710205010 200710205006 课程设计 题目:图书管管理系统 —项目开发计划书 学生姓名:李军霍瑞光 安启超夏文涛 学院:信息工程学院 系别:计算机系 专业:软件工程 班级:软件07-1 指导教师:刘利民教授 马志强讲师 2010年7月16日

目录 1.引言 (1) 1.1编写目的 (1) 1.2项目背景 (1) 1.3定义 (1) 1.4参考资料 (1) 2.项目概述 (1) 2.1工作内容 (1) 2.2条件与限制 (2) 2.3产品 (2) 2.4运行环境 (3) 2.5服务 (3) 2.6验收标准 (3) 3.实施计划 (3) 3.1任务分解 (3) 3.2进度 (3) 3.3预算 (4) 3.4关键问题 (4) 4.人员组织及分工 (4) 5.交付期限 (4) 6.专题计划要点 (5)

1.引言 1.1编写目的 此项目开发计划书的编写主要是为了给开发《图书管理系统》做主要的规划和整合,在开发过程中起到引导作用,以及给使用者提供简要的说明。 1.2项目背景 a.大三第二学期实习内容:图书管理系统 b.项目开发小组成员:李军、霍瑞光、安启超、夏文涛 c.用户:中小学、大中专院校及企事业单位图书馆 d.项目开发环境:集成开发环境 e.软件名字:图书管理系统,版本是1.0。 1.3定义 文档中采用的专门术语的定义及缩略词简要如下: Microsoft SQL Server 1.4参考资料 [1] ftp://https://www.docsj.com/doc/9f15330728.html,/Upload/LLM/ 列出的资料 [2] 软件工程导论(第四版)张海藩主编北京:清华大学出版社2003 [3] 图书管理系统可行性研究报告霍瑞光2010.7 2.项目概述 2.1工作内容 在四周内要为图书馆建立一个图书管理系统,完成软件的开发、测试及试运

2020年新产品设计开发进度计划书

2020年 新产品设计开发进度计划书 编制: 审核: 批准: XXXXXX公司技术质量部 年月日

新产品设计开发进度计划书 项目名称项目类型项目起止日期 设计开发人员职务职能奖金比例 资源配置(包括人员、生产及检测设备、设计经费预算分配及信息交流手段等)要求: 人员:经验丰富的,能独立承担总体或部件设计; 生产及检测设备:能满足试制及大批量生产的要求; 设计经费预算及分配:预算要全面,细节要考虑到;分配时要保证重点设计 信息交流手段:保证技术开发内部及相关各部门之间过程交流顺畅;计算机软/硬配置好,设计任务能顺利完成。

设计开发阶段的划分及主要内容 先期策划阶段负责部门负责人 先期策划阶段 产品开发目标书 依据用户及市场信息,进行市场调研,进行技术经济指标分析及研发能力、生产、检测等能力做出技术可行性评价,编制技术调研报告;制定新产品开发目标书。 方案论证阶段 可行性分析及评审 对上述市场调研报告等进一步进行可行性分析和论证。主要内容有:新产品开发的必要性和市场需求 量;论述产品总体方案设想的正确性、继承性和实现的可能性;产品性能精度、主要技术参数,论述是否 符合使用的产品标准或法规的要求;技术可行性分析;分析提出产品设计周期和生产周期;企业生产能力 和质量保证能力分析;投资经济效果分析(产品成本预测和利润预测等)。通过分析和评审,提出《新产品可行性分析报告》,并进行评审通过。 立项审批 经可行性分析、与产品有关的要求的评审所形成的文件报公司领导决策。由总经理召集公司领导成员 及各部门代表对上报会议的《新产品开发目标书》进行评价分析,最后经公司办公会议审定,总经理批准 签署《新产品立项报告》,列入年度开发计划,下达技术质量部实施。 成立项目组和评审小组 技术质量部根据立项会议的精神,召开成立项目组成立会议,讨论项目的合适人选。会议由技术质量 部主持。确定项目负责人和项目组成员,同时根据业务、专业和职务、职称提名成立新产品设计评审小组,提交总经理批准。

项目开发计划书(模板)

项目开发计划书 文档状态:文档编号: [ ] Draft 编撰: [ √] Released 编撰日期: [ ]Modifying 保密级别: 文档版本: 1.0.0 项目名称 (The English Name ) 项目开发计划书 XXX项目小组

- 1 -

修订表 编号生成版本修订人修订章节与内容修订日期1 2 3 4 5

审批记录 版本审批人审批意见审批日期1.0.0

目录 2 引言 (1) 1 1.1 编写目的 (1) 1.2 项目背景 (1) 1.3 术语和缩写词定义 (1) 1.4 参考资料 (1) 3 2 项目概述 (1) 2.1 工作内容 (1) 2.1.1 项目软件过程定义 (1) 2.1.2 定义生命周期 (2) 2.1.3 任务简述 (2) 2.1.4 软件规模估计 (2) 2.1.5 工作量估算 (2) 2.1.6 关键计算机资源 (2) 2.1.7 软件工程设备和支持工具 (2) 2.1.8 风险估计 (3) 2.2 度量目标 (3) 2.3 条件和限制......................................................................................................................... 错误!未定义书签。 2.4 产品 (5) 2.4.1 软件工作产品 (5) 2.4.2 运行环境 (5) 2.4.3 服务 (5) 2.4.4 验收标准 (5) 4 3 实施计划 (5) 3.1 任务分解和进度安排 (5) 3.2 沟通 (6) 3.3.1 相关组或个人职责 (6) 3.3.2 组间关系 (6) 3.4 预算 (7) 5 4 专题计划要点 (7) 6 附录 (7) 1

软件项目开发计划书

软件项目开发计划书 Company Document number:WUUT-WUUY-WBBGB-BWYTT-1982GT

软件开发计划书 项目名称:图书管理系统 目录

1引言 编写目的 为了保证项目团队按时保质地完成项目目标,便于项目团队成员更好地了解项目情况,使项目工作开展的各个过程合理有序,有必要以文件化的形式,把对于在项目生命周期内的工作任务范围、各项工作的任务分解、项目团队组织结构、各团队成员的工作责任、团队内外沟通协作方式、开发进度、经费预算、项目内外环境条件、风险对策等内容以书面的方式描述出来,作为项目团队成员以及项目干系人之间的共识与约定,项目生命周期内的所有项目活动的行动基础,项目团队开展和检查项目工作的依据。 本项目开发计划用于从总体上指导图书管理系统项目顺利进行并最终得到通过评审的项目产品。本项目开发计划面向项目组全体成员。 背景 山西农业大学图书管理系统是由沈阳师范大学委托我们开发的大型管理系统,主要功能是实现图书馆的信息化管理,包括读者信息管理,书籍信息管理,借阅信息管理,管理者信息管理等功能。项目周期为六个月,项目背景规划如表所示。 表项目背景规划

图书管理系统是学校信息管理系统的一个重要组成部分,它需要学生基本信息系统提供学生的基本资料,因为很多情况下,图书证号和学生的学生证号是一样的,而且在图书管理中,需要知道学生所在的系别和班级等信息;另外,它还需要教职工信息系统提供基本资料,因为教职工当然也能在图书馆借阅图书。因此,在设计时可以和校园信息管理系统的其他系统使用同一个数据库管理系统,以便系统之间的信息交流和管理。 定义 专门术语: SQL SERVER:系统服务器所使用的数据库关系系统(DBMS)。 SQL:一种用于访问查询数据库的语言 事务流:数据进入模块后可能有多种路径进行处理。 主键:数据库表中的关键域。值互不相同。 外部主键:数据库表中与其他表主键关联的域。 ROLLBACK:数据库的错误恢复机制。 缩写: 系统:若未特别指出,统指本图书管理系统。 SQL:Structured Query Language(结构化查询语言)。 ATM:Asynchronous Transfer Mode (异步传输模式)。 UML:统一建模语言、是一套用来设计软件蓝图的标准建模语言,是一种从软件分析、设计到编写程序规范的标准化建模语言。

软件工程项目管理计划书 完整版

储蓄业务项目管理计划书 1.简介 项目概述 本项目要开发一个银行系统,系统一共分为储蓄业务、贷款业务、外汇交易、网上银行、信用卡业务和系统管理六个子系统。本团队负责其中的有关储蓄业务 的子系统。通过团队合作开发整个子系统,使团队成员获得软件工程开发的实际训练。本系统采用目前主流的B/S开发架构,将与整个银行系统一起发布。不单独发布。交付的产品包括可执行的文件、源代码、技术文档与用户使用手册等。本系统的开发过程中的主要工作是子系统需求分析、系统总体设计、子系统源代码开发、子系统测试、交付团长进行最后的集成、整个系统的测试。关键里程碑是制定项目管理计划书、制定需求设计规格说明书初稿、制定系统设计报告的初稿、进行子系统运行情况的检查与测试、进行系统集成后的运行情况的检查与测试。项目所需工具是个人电脑和开发工具。进度为11周,工程量为3人/天。 项目范围说明 (1)提交文档:项目管理计划、需求规格说明,设计报告、测试报告、用户使用手册和项目个人总结。其中项目总结为每人一份,每个小组所有成员的总结装订在一起;其余文档每组提交一份。每个团队可将各小组的文档综合到一起,各小组也可自行分开提交,具体方式由团队内部协商确定。所有文档需要提交电子版和打印稿。 (2)源程序检查:一共两次。第一次检查每个小组的子系统运行情况。第二次检查每个团队内六个小组集成后完整的银行系统运行情况,检查完成后需要提交程序源文件和可执行的系统。程序检查安排在上机时间进行。 软件项目计划书的演化 软件项目计划书在第三周周末前经由小组讨论、共同撰写、汇总整合三步骤形成初稿,第四周以后根据项目的进展可以对其进行修改,需要有组员提出修改意,在全体会上讨论通过,并由组长整理修改意见并作出相应的修改。其余组员同步获得更新稿。 2.项目组织管理 过程模型 表1.过程模型表 团队的分工与合作

java项目部署指南

部署安装手册 1.0

目录第一章、简单安装部署 1、JDK安装和配置 2、Tomcat的安装和配置 A)5.5版的安装 B)6.0版的安装 3、快速设置系统环境变量方法 4、MySQL安装 5、数据库导出和导入 A)数据导出 B)数据导入 6、部署项目程序到Tomcat A)另一种部署 7、启动服务器测试 8、数据库自动备份设置

1.JDK安装和配置 JDK使用版为1.5,目前有安装版和绿色解压版,这里使用的是绿色解压版。首先解压下载的JDK1.5.rar,然后统一放入指定目录下方便日后管理(为了避免跟系统盘符分离,可以在D盘下新建一个文件夹命名为:develop,这里使用C盘): 然后开始设置环境变量。右键我的电脑--属性--高级--环境变量。在这里你可以选在在系统变量中添加,这样这台机器上的所有用户都可以使用这个环境变量。 在系统变量中点击新建按钮添加以下几个变量: JAVA_HOME=c:\develop\jdk1.5 classpath=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jdk1.5\lib\dt.Jar 注意,在最前面有一个“.”,不要忘记了。这里面的路径要换成你自己的安装路径。 然后配置PATH 在变量值的最前面写上%JA V A_HOME%\bin;%JA V A_HOME%\bin\jre; 记得一定用分号隔开

最后点击确定后在运行cmd输入javac出现提示命令符为配置成功!

2.Tomcat的安装和配置 A)5.5版的安装 Tomcat使用的版本为:5.5,这里使用解压版,同样解压到develop目录: 如果选择的是安装版,按照安装提示进行安装就可以了。中途可以选择端口。默认是8080。你可以改成80,这样在以后输入地址的时候比较方便。但是80端口比较容易发生冲突。所以这里就不用改了。(安装之后在配置文件中也可以重新设置端口号,请查阅相关资料)。然后继续配置tomcat系统变量,在环境变量中添加: TOMCAT_HOME=c:\develop\tomcat5.5 CATALINA_HOME=%TOMCAT_HOME% TOMCAT_BASE=%TOMCAT_HOME% 在CLASSPATH最后面添加:;%TOMCAT_HOME%\common\lib\servlet-api.Jar 在所有这一切做完之后,启动tomcat,进入tomcat5.5\bin运行startup.Bat,等待启动完成后,打开你的浏览器,输入 http://localhost:8080 看看是否能看到tomcat菜单页面。

学生选课系统软件项目开发计划书

学生选课系统软件项目开发计划书 1.引言 1.1编写目的 开发基于互联网的学生选课系统,提高管理工作的效率、提高信息的开放性、改善学生和教师对其最新信息查询的准确性。 1.2项目背景 某校在校生近50000人,每学期在期末都要进行一次对学生的学习质量测评,要求所有学生都要参加。以前测评的方式都是手工考核操作,由教务处发出试卷,每个同学填写完成后交回到教务处。然后教务处再使用手工的方法对试卷进行统计汇总,最后得出学生的成绩。 建议进行《学生成绩考核系统》的开发。 我院计算机系具备进行该软件系统开发的能力并承担本软件系统的开发与维护工作。该软件系统由我院教务处使用。 1.3定义 《学生成绩考核系统》以下简称《考核系统》。 1.4 参考资料 (1)” 学生成绩考核系统系统定义报告” (2) ” 学生成绩考核系统可行性研究报告” 2. 主要内容 2.1 工作内容 系统所需要的基础数据来源: “考核系统”需要实现的功能包括两大部分: 一是前台的数据采集,具体包括:德育测试页面、体育测试页面、智力测试页面、数据存储页面。 二是后台的数据管理部分:包括测试设置、德育测试、体育测试与智力测试的数据统计及查询。 2.2条件和限制 使用SQL SERVER 2005作为数据库的建设工具,相关的管理程序开发主要使用SQL SERVER 2005及NET等。 2.3 产品 2.3.1 程序 可运行的程序包括:SQL SERVER 2005,Microsoft Visual Studio 2005 2.3.2 文档 可行性研究报告,项目开发计划书,软件需求说明书,概要设计说明书,详细设计说明书,数据库设计说明书,操作手册,测试计划,测试分析报告,项目开发总结报告。 2.4 运行环境 《学生成绩考核系统》应该运行在Windows 7 以及以上版本的平台上。 2.5 验收标准《学生成绩考核系统》能让学生能成绩考核和查看成绩,教师能管理成绩。 2.6本计划的批准者和批准日期:批准者张树明批准日期2015年4月27日 3. 实施计划

项目开发计划书模板

1、引言 1.1、编写目的 为了更好地完成东北电力大学校友录管理信息系统项目,为项目的进一步开发工作作出计划,同时确定出工程实施计划与进度,并以此作为分项详细设计与具体实施的依据,编写本报告。本报告应提交给东北电力大学信息工程学院一份以共同协商并配合下一步工作,也作为进行下一步项目开发工作的依据。 1.2、背景 待开发的软件系统为校友录管理信息系统。本项目任务由东北电力大学信息工程学院提出,东北电力大学挑战者工作室负责开发,用户为东北电力大学历届毕业生以及信息工程学院。 1.3、定义 列出本文件中用到的专门术语的定义和外文首字母词的原词组。 项目开发计划 MIS 管理信息系统 C/S 客户机/服务器 B/S 浏览器/服务器 1.4、参考资料 1.4.1 《校友录管理信息系统可行性分析报告》 1.4.2 双方开发合同及技术附件 1.4.3 《中华人民共和国计算机信息系统安全保护条例》 1.4.4 《计算机软件开发规范(GB8566-88)》 1.4.5 《计算机软件产品开发文件编制指南(GB8567-88)》 1.4.6 中华人民共和国身份证标准代码表 2、项目概述 2.1、工作内容 主要工作内容:

1、到东北电力大学信息工程学院、东北电力大学校友信息管理办公 室进行业务调研; 2、整理用户需求,生成用户需求分析报告; 3、对系统进行详细设计,提供详细设计方案报告; 4、进行校友录管理信息系统进行编码; 5、进行内部测试; 6、进行系统应用调试; 7、进行系统后期维护。 2.2、主要参加人员 专家组成员: 项目组成员:

9 刘洋 10 刘晓 测试员 11 胡云飞 12 美工何鑫、衣秀文 13 文档录入员刘洋 2.3、产品 2.3.1、程序 DBMS选用微软公司的Access2000,前台开发工具选用Adobe公司的网页开发工具Dreamweaver、Firework和JavaScript。 2.3.2、各子系统功能简介 2.3.2.1前台服务系统: 用户的注册、登陆、密码找回、密码修改、个人信息修改、个人消息信箱管理、对网站服务意见的发送。 班级的注册、登陆、信息修改、成员管理、论坛的使用与管理、其他附加服务(投票、点歌等)。 2.3.2.1前台服务系统: 供系统管理员进行班级注册批准、班级信息管理、用户信息管理等操作。 2.3.2、文件 用户操作指南 开发工具安装与使用指南 数据库开发指南 应用软件手册 2.3.3、服务 东北电力大学挑战者工作室为校友录系统的建设与开通提供全面的技术支持与服务:

银行管理系统 项目开发计划书

软件工程课程设计 项目计划书 项目名称:银行管理系统 学院:计算机科学与技术学院 专业:计算机科学与技术专业 班级: 姓名: 指导教师: 2011 年11 月03 日

目录 软件工程课程设计 (1) 项目计划书 (1) 1 系统主题 (4) 1.1引言 (4) 1.2背景/选题动机/目的 (4) 1.3系统与“创新杯”的主题关系(2) (5) 1.4市场调查过程和结论(3) (5) 2 需求分析 (6) 2.1概要 (6) 2.2使用场景 (6) 2.3可行性分析报告 (7) 2.4 应用领域/实用性分析 (8) 2.5未来发展方向 (8) 3 团队组成和分工 (8) 4 系统功能概述 (9) 4.1功能需求分析 (9) 4.2 系统性能要求 (9) 4.3功能点列表 (10) 4.4性能点列表 (10) 4.5数据描述 (11) 5 系统设计概要 (11) 5.1实现系统所采用的技术方案和技术亮点 (11) 5.2系统构架 (12) 5.3功能模块描述 (12) 5.4 E-R图 (17) 5.5用例图 (19) 5.6概念数据模型图 (20) 5.7业务模型 (21) 5.8 界面 (22) 6 系统环境 (27)

6.1开发平台 (27) 6.2 Client运行环境 (27) 6.3 Server运行环境 (28) 7 项目时间进度表 (28) 7.1总体进度表 (28) 7.2软件工作产品规模和工作量估计 (28) 8 风险分析 (29)

1系统主题 1.1引言 在现代化的银行管理中,银行管理系统有着十分重要的作用,然而,用大型软件系统对于小型的企事业单位,不啻于“杀鸡用牛刀”,因此小型软件对于这种单位自然有十分重要作用。某小型企业出与这种目的制作了这银行账户管理系统。 1.2背景/选题动机/目的 随着社会经济的发展,信息化程度的不断深入,银行的传统业务己愈来愈不能满足银行客户的需要。 现今,人们的金融意识、科技意识己经有了很大的提高,在紧张忙碌的生活中,己越来越来不习惯每月奔忙于各银行营业柜台之问去排队缴各种各样的费用了;同时,各种经营单位如电信、移动、供电、煤气、自来水、证券等等一是为了提高服务质量、方便客户,二是为了减轻自己日趋繁重的工作量,纷纷委托银行为其开展代收代付业务:同时,随着我国加入世贸组织的日益临近,我国的银行业将面临更加激烈的同业竞争,如何提供更多的金融产品和更优质的服务,如何吸引更多的客户,如何利用计算机技术加强银行帐户信息管理、进行银行业务再造,提高银行的工作效率和业务竟争能力是摆在各家银行面前的一个迫切需要解诀的问题。 近几年来,各商业银行加快了与社会各业的合作,利用自身的网点优势和业务特点,为其提供各种高效、快捷的代收代付业务,也就是中间代理业务,目前以与广大人民群众生活密切相关的各项缴费业务如水电费、电话费、手机费等代收业务为主,这些业务开展方式多种多样,但一般都离不开计算机的高效管理支持。 随着代理业务不断发展,业务品种越来越多,各项业务做法互有差异,这就对银行的电子化水平和相应的管理水平提出了更高的要求。如何利用电子化的手段构建一个高效统一的、通用灵活的系统来管理各种各样的业务,是每个商业银行所要研究的课题。支持决策系统的,需要在数据库的基础上,进行联机分析处理,每次处理的数据量大,响应时间长。 特别是银行每天要处理大量的存取款事件,做好存取款是银行工作重要的环节,然而要有效处理必须要有良好的程序和数据管理系统来建立一个良好的软件系统来实现快速、有效、准确、安全的处理银行事物。

新产品开发项目计划书

新产品开发项目计划书 目录 一.产品介绍……………………………………… 2~4页 二.市场分析……………………………………… 4~7页 三.生产条件……………………………………… 7~11页 四.项目团队……………………………………… 11~13页 五.财务规划……………………………………… 13~14页 六.公关与决策…………………………………… 14~16页 七.附录……………………………………………17~26页 一.产品介绍 1.产品的概念。 新型健康长寿食品系列—低糖糕点甜品 ◇低能量食品:低能量食品是当今国际食品工业的发展方向,它与功能性食品既有联系又有区别。是指对人体健康,并可以长期食用,而且没有不利负面作用的食品。 ◇无糖/蔗糖食品:按照欧洲国家的通用概念,无糖食品不能含有蔗糖和来自于淀粉水解物的糖,包括葡萄糖、麦芽糖、果糖、淀粉糖浆、葡萄糖浆、果葡糖浆等。但是,它必须含有相当于糖的替代物,一般采用糖醇或低聚糖等不升高血糖的甜味剂品种。 ◇低糖食品:面包、糕点、饼干、八宝粥、膨化食品等,即使不加入单糖或双糖,它们使用的主要原料面粉、谷物中,都含有大量的淀粉,这些淀粉会被体的酶还原分解为葡萄糖,最终吸收入血成为血糖。因此,无论是无糖食品还是无蔗糖食品,其严格意义上说,应该称为低糖食品。

2.相关产品或被替代品正处于什么样的发展阶段? ◇被替代品—成熟期 ◇相关产品—开发/成长期 3.本产品的差异性或独特性怎样? ◇差异性:口感上可能与传统产品(添加蔗糖的食品)存在细微差别 ◇独特性:新型蔗糖替代品使本身高甜度的食品能量大幅度降低 [附] 产品优势:1、AA牌低糖糕点甜品系列食品,口感好、能量低(相对)、品种全、价格适中,是健康长寿型食品,符合人们的消费心理和饮食习惯; 2、AA牌传统系列食品已具有的品牌力量,可以从入世初期提高新产品的市场认知度; 3、企业原有的成熟生产线,可以从规模经济上控制成本,提高新产品核心竞争力; 4、由于无蔗糖/低糖糕点甜品类食品市场份额很小,相对而言同种类食品竞争优势不明显; 5、可以自主开发出传统产品+新产品的精包装礼盒食品,以同时满足消费者不同的消费心理和消费口味; 6、坚持正确的概念宣传和消费引导,坚守品质承诺,建立良好的口碑和企业形象。 4.企业将本产品推向市场方法或渠道是什么? 经销商、直销商。如大型综合性超市、批发市场;长寿食品专卖店、糖尿病食品专卖店;社区老年服务性超市、食品店(可与老年服务中心合作)等。 5.谁会使用本产品,为什么? 每一个喜欢吃甜食的人:忠爱本企业产品的健康人(传统忠实客户群);喜欢吃而又不敢多吃甜食的健康人—健康意识强和/或爱美之人(传统散在客户群);喜欢吃又不能吃甜食的人—不同年龄层次的老年病患者和特殊人群如妊娠期妇女(新客户群)。

java项目安装及部署步骤

JDK的安装和配置 1.双击准备好的jdk安装文件,双击直接进行安装,可以点击【更改】,将JDK安装到自己指定的路径,这里没有更改,选择了默认路径,直接点击【下一步】 2.安装过程中,会出现安装jre的界面,依旧选择默认路径,直接【下一步】继续安装

3.最后安装结束界面的按钮是【继续】,点击进入到JavaFxSDK的设置界面,JDK安装结束 4.JDK安装结束后,进入环境变量的配置,右键计算机属性,进入高级系统设置

5. 进入环境变量的配置界面,点击新建系统变量,变量名为JAVA_HOME,变量值是java的安装路径jdk的路径(打开安装的目 录,复制对应的路径即可)。

6.添加完JAVA_HOME系统变量后,需要添加两个包文件,在系统变量中,选中classpath,点击编辑,在classpath后边添加.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;(.;一定不能少,因为它代表当前路径), 添加path变量,没有path则新建path类似JAVA_HOME的配置,

path的配置如下:path=%JAVA_HOME%\bin 配置完成后jdk的安装就已经完成。 TOMCAT的安装和配置 1.tomcat解压或安装 将下载好的tomcat进行解压(如果是安装版的则点击exe文件进行安装),安装完成后对应的目录如下 2. 部署文件放在D:\ddd\apache-tomcat-7.0.10\webapps下面端口在D:\ddd\apache-tomcat-7.0.10\conf下对应的server.xml配置

超市管理系统项目开发计划书

超市管理系统项目开发计划书

1.引言 1.1目旳` (1)大大提高超市旳`运作效率; (2)通过全面旳`信息采集和处理,辅助提高超市旳`决策水平; (3)使用本系统,可以迅速提升超市旳`管理水平,为降低经营成本,提高效益,增强超市扩张力,提供有效旳`技术保障. 1.2范围 由于这是一个较小旳`软件项目(开发人数少,并且开发时间短)适应于各种小型旳`超市. 1.3 定义术语 对软件组织内部和外部有关旳`行业术语、专用名词进行定义. (1)、软件架构:软件系统旳`总体逻辑结果.按照不同旳`设计方法,有不同旳`总体逻辑结构.采用面向功能或面向数据旳`设计方法,总体逻辑结构为一树形旳`功能 模块结构图.采用面向对象或面向部件(构件)旳`设计方法,总体逻辑结构为 部件(结构)旳`组装图. (2)、数据结构:数据结构包括:数据库表旳`结构、其他数据结构等. (3)、子系统:具有相对独立功能旳`小系统叫做子系统.一个大旳`软件系统可以划分为多个子系统,每个子系统可由多个模块或多个不见组成. (4)、模块:具有功能独立、能被调用旳`信息单元叫做模块.模块是结构化设计中旳`概念. (5)、内部接口:软件系统内部各子系统之间、各部件之间、各模块之间旳`接口,叫做内部接口.接口描述包括:调用方式、入口信息、出口信息等.

(6)、参考数据:参考数据是指文件书写时用到旳`其他数据. (7)、相关文档:相关文档是指当本文档内容变 1.4 参考质料 【1】、《软件需求分析》Swapna Kishore编机械工业出版社【2】、《软件工程技术概论》朱三元等编着 【3】、《SQL Server 2000 编程员指南》李香敏编北京希望电子出版社【4】《数据库原理及设计》陶宏才编清华大学出版社 【5】《超市管理软件资料》. 【6】《开发要求说明》. 【7】《软件需求说明书》. 【8】《概要设计说明书》. 1.5相关文档 【1】超市管理系统立项建议书 【2】超市管理系统需求书 1.6 版本更新记录 版本更新记录

XXX项目部署文档

XXX项目部署文档 一、安装数据库软件并建立实例 1、安装数据库软(win32_11gR1_database.rar) 2、单独搭建实例(XXDB) 二、建对应的表空间、用户 1、搭建必要的表空间 CREA TE TABLESPACE TBS_XXX1 DA TAFILE 'F:\app\oradata\ TBS_XXX1.DBF' SIZE 1024M AUTOEXTEND ON; CREA TE TABLESPACE TBS_XXX2 DA TAFILE 'E:\app\oradata\ TBS_XXX2.DBF' SIZE 1024M AUTOEXTEND ON; CREA TE TABLESPACE TBS_XXX3 DA TAFILE 'F:\app\oradata\PLM_TEST1.DBF' SIZE 2048M AUTOEXTEND ON; CREA TE TEMPORARY TABLESPACE TBS_XXX4 TEMPFILE 'E:\app\oradata\ TBS_XXX3.dbf' SIZE 500M AUTOEXTEND ON; 2、建立用户 CREA TE USER USER_XXX1 IDENTIFIED BY USER_XXX1 DEFAULT TABLESPACE TBS_XXX1 temporary tablespace TEMP; Grant Dba To USER_XXX1; -- Create the user create user USER_XXX2 identified by USER_XXX2 default tablespace TBS_XXX2 temporary tablespace TEMP; grant dba to USER_XXX1; grant unlimited tablespace to USER_XXX1; create user USER_XXX3 identified by USER_XXX3 default tablespace TBS_XXX2 temporary tablespace TEMP; grant create session to USER_XXX3 with USER_XXX1 option; create user USER_XXX4 identified By USER_XXX4 default tablespace TBS_XXX2

(完整版)软件项目开发计划书

软件项目开发计划书 项目名称:基于Android平台跑步运动软件的设计与实现

目录 1引言--------------------------------------------------------------------------------------------------------------------- 4 1.1编写目的 ----------------------------------------------------------------------------------------------------- 4 1.2背景------------------------------------------------------------------------------------------------------------ 4 1.3定义------------------------------------------------------------------------------------------------------------ 5 1.4参考资料 ----------------------------------------------------------------------------------------------------- 5 1.5 系统动机----------------------------------------------------------------------------------------------------- 6 1.6标准、条件和约定 ---------------------------------------------------------------------------------------- 6 1.7编写文档的WBS ------------------------------------------------------------------------------------------- 6 2项目概述 -------------------------------------------------------------------------------------------------------------- 7 2.1工作内容 ----------------------------------------------------------------------------------------------------- 7 2.2主要参加人员 ----------------------------------------------------------------------------------------------- 8 2.3产品及成果 -------------------------------------------------------------------------------------------------- 9 2.3.1程序 --------------------------------------------------------------------------------------------------- 9 2.3.2文件 --------------------------------------------------------------------------------------------------- 9 2.3.3服务 --------------------------------------------------------------------------------------------------- 9 2.3.4非移交产品 ----------------------------------------------------------------------------------------- 9 2.4验收标准--------------------------------------------------------------------------------------------------- 10 2.4.1代码的验收 --------------------------------------------------------------------------------------- 10 2.4.2 文档验收------------------------------------------------------------------------------------------ 10 2.4.3 服务验收------------------------------------------------------------------------------------------ 11 2.5完成项目的最迟期限 ---------------------------------------------------------------------------------- 11 2.6本计划的日期 --------------------------------------------------------------------------------------------- 11 3实施总计划 --------------------------------------------------------------------------------------------------------- 12 3.1开发过程 --------------------------------------------------------------------------------------------------- 12 3.1.1 需求分析------------------------------------------------------------------------------------------ 12 3.1.2 系统设计------------------------------------------------------------------------------------------ 12 3.1.3 编码及测试阶段 -------------------------------------------------------------------------------- 12 3.1.4 文档、产品部署 -------------------------------------------------------------------------------- 12 3.1.5 项目总结------------------------------------------------------------------------------------------ 12 3.2工作任务的分解------------------------------------------------------------------------------------------ 13 3.3接口人员 --------------------------------------------------------------------------------------------------- 14 3.4进度---------------------------------------------------------------------------------------------------------- 14 3.5预算---------------------------------------------------------------------------------------------------------- 15 3.6关键问题 --------------------------------------------------------------------------------------------------- 15 4支持条件 ------------------------------------------------------------------------------------------------------------ 16 4.1计算机系统支持------------------------------------------------------------------------------------------ 16 4.2需要用户承担的工作 ----------------------------------------------------------------------------------- 17 4.3需由外单位提供的条件 -------------------------------------------------------------------------------- 17 5专题计划要点------------------------------------------------------------------------------------------------------ 18

工程项目计划书

工程项目计划书

————————————————————————————————作者:————————————————————————————————日期:

GET/QP/16-01V1.2 No.: 200_____ 项目计划书 工程名称: 工程地点: 施工单位: 编制单位: 编制人: 编制日期:年月日 审批负责人: 审批日期:年月日

项目计划书编写提纲 一、项目提出的背景和必要性 包括国内外现状、知识产权状况和发展趋势;技术突破对产业技术进步的重要意义和作用;项目可能形成的产业规模和市场前景。 二、项目主要开发和建设内容 包括项目的主要科技攻关内容、项目目标及开发任务。 三、项目实施的技术方案 包括项目的技术路线、工艺的合理性和成熟性,关键技术的先进性和创新点;产品技术性能水平与国内外同类产品的比较;项目承担单位在实施本项目的优势。 四、项目组织机构和人员安排 包括项目的组织形式、产学研联盟运作机制及分工安排;项目的实施地点;项目承担单位负责人、项目领军人物主要情况;项目开发的人员安排。 五、项目实施进度计划 包括项目阶段考核指标(含主要技术经济指标,可能取得的专利尤其是发明专利和国外专利情况)及时间节点安排;项目的验收指标。 六、项目资金需求及来源 包括项目新增总投资估算、资金筹措方案(含自有资金、银行贷款、科教兴市专项资金、推进部门配套资金等)、投资使用计划。 七、项目经济和社会效益分析 包括项目未来三年或五年生产成本、销售收入和利税估算;财务内部收益率、投资回收期、投资利润率、财务净现值等指标的动态财务分析;社会效益分析。 八、项目风险分析及应对措施 包括项目技术、市场、资金等风险分析及应对措施。 九、其它需要说明的事项

相关文档
相关文档 最新文档