`

velocity servlet 开发

 
阅读更多

velocity开发eclipse插件  http://code.google.com/p/veloeclipse/

目录结构


 
俩实体类不用说了
看CustomerVelocityServlet类

package com.velocity.servlet;

import java.util.ArrayList;
import java.util.List;

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.servlet.VelocityViewServlet;

import com.velocity.bean.Department;
import com.velocity.bean.Employee;

@SuppressWarnings(
"serial")
public class CustomerVelocityServlet extends VelocityViewServlet{

    
    
//设置返回视图为text/html编码为gbk
    @Override
    
protected void setContentType(HttpServletRequest request,
            HttpServletResponse response) {
        response.setContentType(
"text/html;charset=gbk");
    }
    
    
//处理请求
    @Override
    
protected Template handleRequest(HttpServletRequest request,
            HttpServletResponse response, Context ctx) 
throws Exception {
        ctx.put(
"username""张三");
        ctx.put(
"password""123456789");
        ctx.put(
"age""20");
        ctx.put(
"address""陕西西安"); 
        ctx.put(
"blog""http://blogjava.net/sxyx2008");
        
        List
<Employee> list=new ArrayList<Employee>();
        list.add(
new Employee(1,"张三","陕西西安",18,new Department(1,"软件研发部1")));
        list.add(
new Employee(2,"张三","陕西西安",19,new Department(2,"软件研发部2")));
        list.add(
new Employee(3,"张三","陕西西安",20,new Department(3,"软件研发部3")));
        list.add(
new Employee(4,"张三","陕西西安",21,new Department(4,"软件研发部4")));
        list.add(
new Employee(5,"张三","陕西西安",22,new Department(5,"软件研发部5")));
        list.add(
new Employee(6,"张三","陕西西安",23,new Department(6,"软件研发部6")));
        list.add(
new Employee(7,"张三","陕西西安",24,new Department(7,"软件研发部7")));
        list.add(
new Employee(8,"张三","陕西西安",25,new Department(8,"软件研发部8")));
        list.add(
new Employee(9,"张三","陕西西安",26,new Department(9,"软件研发部9")));
        list.add(
new Employee(10,"张三","陕西西安",27,new Department(10,"软件研发部10")));
        
        ctx.put(
"list", list);
        
//调用父类的方法getTemplate()
        return getTemplate("demo.vm""gbk");
    }
    
}

继承org.apache.velocity.tools.view.servlet.VelocityViewServlet,覆写setContentType和handleRequest方法,其中setContentType用于设置浏览器的响应,handleRequest处理用户的请求,返回Template,我们调用父类中的getTemplate()方法返回
在WEB-INF目录下创建一vm目录,用于存放模板文件
在WEB-INF目录下创建velocity.properties(名字可以任意取)
内容为

resource.loader = webapp  
webapp.resource.loader.
class = org.apache.velocity.tools.view.servlet.WebappLoader
webapp.resource.loader.path
=/WEB-INF/vm/  
input.encoding
="gbk"
output.encoding
="gbk"

resource.loader = webapp 加载方式为webapp
webapp.resource.loader.class = org.apache.velocity.tools.view.servlet.WebappLoader    webapp方式加载处理类
webapp.resource.loader.path=/WEB-INF/vm/   模板文件目录
input.encoding="gbk"  输入字符编码
output.encoding="gbk"  输出字符编码

配置web.xml

<servlet>
        
<servlet-name>customerVelocityServlet</servlet-name>
        
<servlet-class>com.velocity.servlet.CustomerVelocityServlet</servlet-class>
        
<init-param>
            
<param-name>org.apache.velocity.properties</param-name>
            
<param-value>/WEB-INF/velocity.properties</param-value>
        
</init-param>
    
</servlet>
    
<servlet-mapping>
        
<servlet-name>customerVelocityServlet</servlet-name>
        
<url-pattern>/customerVelocityServlet</url-pattern>
    
</servlet-mapping>


<init-param>
   <param-name>org.apache.velocity.properties</param-name>
   <param-value>/WEB-INF/velocity.properties</param-value>
</init-param>
加载自定义的velocity.properties

demo.vm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 
<HEAD>
  
<TITLE> velocity </TITLE>
 
</HEAD>

##嘿嘿,我是velocity中的注释噢
#*
    嘿嘿,我也是velocity中的注释噢
*#

 
<BODY>
    
<h1>hehe,这是经过由servlet返回的velocity视图</h1>
    hello ${username},这是你的信息
    
<ul>
        
<li>用户密码为:${password}</li>
        
<li>年龄为:${age}</li>
        
<li>出生地址为:${address}</li>
        
<li>个人主页为:<href='${blog}'>${blog}</a></li>
    
</ul>
    
    
<br/>
    
    #foreach($emp in $!{list})
        $!{velocityCount}
&nbsp;&nbsp;&nbsp;&nbsp;
        $!{emp.id} 
&nbsp;&nbsp;&nbsp;&nbsp;
        $!{emp.ename} 
&nbsp;&nbsp;&nbsp;&nbsp;
        $!{emp.eaddress} 
&nbsp;&nbsp;&nbsp;&nbsp;
        $!{emp.age} 
&nbsp;&nbsp;&nbsp;&nbsp;
        $!{emp.department.id} 
&nbsp;&nbsp;&nbsp;&nbsp;
        $!{emp.department.deptname} 
<hr/>
    #end
    
 
</BODY>
</HTML>


http://localhost:8080/velocityweb/customerVelocityServlet

效果图


 
工程代码在下面

  • 大小: 42.1 KB
  • 大小: 69.7 KB
分享到:
评论

相关推荐

    Velocity+servlet简单工程例子

    这个"Velocity + Servlet简单工程例子"是为了帮助那些正在学习Velocity的爱好者们更好地理解和应用Velocity模板语言到实际的Web开发中。Velocity通过将表现层(视图)与业务逻辑层(控制器)分离,实现了MVC(Model-...

    velocity+servlet的初学者demo

    这个"velocity+servlet的初学者demo"是为那些希望了解如何将Velocity与Servlet结合使用的初学者准备的。 Velocity的工作原理是通过模板语言来分离内容、表现和逻辑。它的模板文件包含静态文本和Velocity指令,这些...

    velocity Java开发指南中文版

    ### Velocity Java开发指南知识点概述 #### 一、简介与背景 **Velocity** 是一个基于 Java 的模板引擎,它能够将模型数据与表示层分离,从而让开发者能够更加专注于业务逻辑的编写,而让设计师能够专注于界面的...

    《Velocity1.4 java开发指南》中文版

    《Velocity1.4 Java开发指南》是一本专为Java开发者准备的详细教程,它涵盖了Velocity模板语言(VTL)的使用、配置以及在各种应用场景下的实践。Velocity是Apache软件基金会的一个开源项目,它是一个用于Java应用...

    Velocity java开发指南

    ### Velocity Java 开发指南知识点详解 #### 一、Velocity简介 **Velocity** 是一款基于 Java 的模板引擎,它能够高效地将数据模型与界面展示分离,使得开发人员能够轻松地生成动态网页或者其他任何形式的文本输出...

    Velocity Java开发指南中文版

    Velocity 是一处基于java 语言的模板引擎, 使用这个简单、功能强大的开发工具,可以很容易的将数据对象灵活的 ...希望本文能指引使用velocity 在开发基于servlet 或一般java 应用程序的应用上快速起步。

    《Velocity java开发指南》中文版

    《Velocity Java开发指南》中文版是一本为Java开发者提供关于Velocity框架详细指导的文档。Velocity是Apache软件基金会的一个开源项目,它是一个简单、快速且强大的模板引擎,主要用于生成动态Web内容。Velocity通过...

    Velocity Web应用开发

    ### Velocity Web应用开发知识点详解 #### 一、Velocity概述及应用场景 Velocity 是一款基于 Java 的模板引擎,主要用于生成动态内容,特别是在 Web 开发领域。它能够帮助开发者快速地构建出可读性强、易于维护的 ...

    Velocity_java开发指南

    ### Velocity Java 开发指南知识点概览 #### 一、Velocity简介 - **定义**:Velocity是一种基于Java的模板引擎,其主要用途在于将数据模型与显示逻辑分离,从而简化前端页面的开发工作。 - **特点**:易于学习、...

    Java Web项目开发案例精粹--Velocity简单实例

    【Java Web项目开发案例精粹--Velocity简单实例】 在Java Web开发中,Velocity是一个非常流行的模板引擎,它允许开发者将HTML页面设计与业务逻辑相分离,使得开发者可以专注于后端逻辑,而设计师则可以自由地设计...

    velocity经典4pdf中文教程

    3. **《Velocity Web应用开发指南中文版》**:本书专为Web开发人员设计,详细阐述了如何将Velocity集成到Servlet容器中,如Tomcat,以及如何与Spring、Struts等Web框架协同工作。它还探讨了模板的组织结构、如何处理...

    velocity入门使用教程

    本部分将展示如何在Servlet环境中集成Velocity,并通过实例介绍如何将Velocity应用于Web开发。 1. 搭建Java Web工程,这里直接使用Maven的maven-archetype-webapp生成项目骨架。 2. 添加Tomcat运行环境,通过Maven...

    《Velocity Web应用开发指南中文版》.doc

    下载并使用VelocityTools(Velocity的一个子项目)中的VelocityViewServlet,这是一个易于配置和部署的Servlet。只需要设置一个模板目录,并简单修改配置文件即可。 2. **VelocityTools/VelocityStruts**:对于...

    JAVAEE Velocity例子工程

    在JAVAEE环境中,Velocity通常与Servlet容器(如Tomcat)配合使用。开发者会创建一个VelocityViewServlet,该Servlet负责解析模板并将其呈现为HTTP响应。在例子工程中,可能会有一个Servlet配置,指示服务器在接收到...

    Velocity资料

    文件中提到了一些中文资料,如《VelocityJava开发指南中文版》、《Velocity模板使用指南中文版》等,这表明Velocity社区提供了相当完善的中文资料,有助于Java开发者更快速地学习和掌握Velocity的使用方法。...

    velocity-1.7.jar

    2. **VelocityViewServlet**:一个Servlet,可以直接处理Velocity模板,作为Web应用的视图层。 3. **Resource Loader**:扩展了Velocity的资源加载机制,使其能够从多种来源(如文件系统、数据库等)加载模板。 4. *...

    基于jsp和Servlet开发的新闻发布系统

    【基于jsp和Servlet开发的新闻发布系统】是一种常见的Web应用程序,用于发布、管理和更新网站上的新闻内容。这个系统的核心是利用Java技术栈,包括JavaServer Pages(JSP)和Servlet,来构建动态网页和处理服务器端...

    struts_hibernate_velocity_mysql 开发实例

    Struts、Hibernate、Velocity 和 MySQL 是四个在Java Web开发中常用的开源框架和技术。这个"struts_hibernate_velocity_mysql 开发实例"很可能是提供了一个实际应用的案例,帮助开发者理解如何将这些技术集成到一个...

Global site tag (gtag.js) - Google Analytics