Velocity+Java较全教程
一.安装myEclipse
二.安装velocity的eclipse插件:
http://www.oschina.net/p/veloeclipse(介绍)
方法1(现在基本上非常慢)http://propsorter.sourceforge.net/veloeclipse/(在eclipse的安装插件那里输入这个网址,然后去掉“group items……”那个勾,就会出现一个velocity,安装它)
方法2(本地安装)http://blog.csdn.net/dannor2010/article/details/8457188
三.把velocity-1.7.jar放在项目的\WebRoot\WEB-INF\lib\下
去http://velocity.apache.org/download.cgi下载velocity-tools,然后把里头所有jar放到刚刚的lib下
http://www.cnblogs.com/dodohua/archive/2011/01/28/1946867.html
四.测试工程(重点!)
1.创建Web Project(不是Web Service Project),名为HelloWebProject
2.在WebRoot目录下新建hello.vm,内容如下:
<html>
<body>
<p>Hello, $var !</p>
</body>
</html>
3.在src目录下新建Hello.java(这个.java名字和.vm名字不需要相同),内容如下:
package com.turtle.homework; 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; public class Hello extends VelocityViewServlet {
protected Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context ctx) {
ctx.put("var","Turtle");//给$var变量赋值为"Turtle"
return getTemplate("hello.vm");//模板名称
}
}
4.编辑WebRoot/WEB-INF/web.xml,改成(或新建)如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="WebApp_ID" version="3.1"> <display-name>Hello</display-name>
<welcome-file-list>
<welcome-file>hello.html</welcome-file>
</welcome-file-list> <servlet>
<servlet-name>HelloName</servlet-name> <!-- 这个servlet-name要和下面那个servlet-name相同,但不一定和class相同 -->
<servlet-class>Hello</servlet-class> <!-- 如果你有包名就是com.a.Hello -->
<init-param>
<param-name>org.apache.velocity.properties</param-name>
<param-value>/WEB-INF/velocity.properties</param-value> <!-- velocity配置文件 -->
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloName</servlet-name>
<url-pattern>/hello.html</url-pattern> <!-- 当你访问hello.html时就运行Hello.java这个类,所以你可以改成其它文件即可 -->
</servlet-mapping>
</web-app>
(重点在于<servlet>到</servlet-mapping>一段
5.编辑WebRoot/WEB-INF/velocity.properties文件(这段代码是为了将编码改成UTF-8)
input.encoding=utf-8
output.encoding=utf-8
default.contenttype=text/html;charset\=utf-8
6.如果出现乱码,请看这篇文章:http://www.cnblogs.com/turtlegood/articles/3884170.html
7.运行工程,访问http://localhost:8080/HelloWebProject/hello.html,即可看到效果
(如果有任何错误的地方欢迎指出!)
Velocity+Java较全教程的更多相关文章
- [转] java书籍(给Java程序猿们推荐一些值得一看的好书 + 7本免费的Java电子书和教程 )
7本免费的Java电子书和教程 1. Thinking in Java (Third Edition) 本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书.这本书可以帮助你系统的 ...
- 学习笔记之Java程序设计实用教程
Java程序设计实用教程 by 朱战立 & 沈伟 学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html) 国庆休假前学习了 ...
- Docker最全教程
摘自雪雁大佬的博客,地址:https://www.cnblogs.com/codelove/default.html 目录: Docker最全教程——从理论到实战(一) Docker最全教程——从理论 ...
- Docker最全教程之使用Node.js搭建团队技术文档站(二十三)
前言 各种编程语言均有其优势和生态,有兴趣的朋友完全可以涉猎多门语言.在平常的工作之中,也可以尝试选择相对适合的编程语言来完成相关的工作. 在团队技术文档站搭建这块,笔者尝试了许多框架,最终还是选择了 ...
- Java log4j详细教程
Java log4j详细教程 http://www.jb51.net/article/74475.htm
- java去全半角空格,trim(), replaceAll(" +",""),replaceAll("\\s*", ""), replaceAll(" | ", "")
JAVA中去掉空格 . String.trim() trim()是去掉首尾空格 .str.replace(" ", ""); 去掉所有空格,包括首尾.中间 St ...
- 阿里 Java 手册系列教程:为啥强制子类、父类变量名不同?
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 目录 父子类变量名相同会咋样? 为啥强制子类.父类变量名不同? ...
- Docker最全教程之使用Tencent Hub来完成CI(九)
使用Tencent Hub来完成CI 关于Tencent Hub Tencent Hub是腾讯出品的DevOps服务.主要提供多存储格式的版本管理,支持Docker Image.Binary.Helm ...
- Docker最全教程——从理论到实战(八)
在本系列教程中,笔者希望将必要的知识点围绕理论.流程(工作流程).方法.实践来进行讲解,而不是单纯的为讲解知识点而进行讲解.也就是说,笔者希望能够让大家将理论.知识.思想和指导应用到工作的实际场景和实 ...
随机推荐
- 获取手机的UUID
获取手机的UUID 01 连接手机到电脑 02 - 在XCOde中,选择Window->Devices
- iOS 开发--添加工程
文/Bison(简书作者)原文链接:http://www.jianshu.com/p/dd71e15df5d0著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 第一部分,配置项目 在此只 ...
- iOS 库文件制作
一.静态库和动态库的介绍 一.什么是库? 库是共享程序代码的方式,一般分为静态库和动态库. 二.静态库与动态库的区别? 静态库:链接时完整地拷贝至可执行文件中,被多次使用就有多份冗余拷贝. 动态库:链 ...
- MyBatis学习总结_19_Mybatis传多个参数(三种解决方案)
据我目前接触到的传多个参数的方案有三种. 第一种方案 DAO层的函数方法 Public User selectUser(String name,String area); 对应的Mapper.xm ...
- PowerDesigner如何自定义报表模板
PowerDesigner如何自定义报表模板 帅宏军 使用PowerDesigner设计数据库非常方便,但是它自带的报表模板一般不符合中国的使用情况.如何设计一个自己的报表模板,并在做项目的数据库设计 ...
- Spring Loaded is a JVM agent for reloading class file changes
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot ...
- js中indexOF和lastIndexOf
indexOFindexOf() 方法返回某个指定的字符串值在字符串中首次出现的位置(从左向右).没有匹配的则返回-1,否则返回首次出现位置的字符串的下标值. var src="images ...
- php关于static关键字
静态属性与方法可以在不实例化类的情况下调用,直接使用类名::方法名的方式进行调用.静态属性不允许对象使用->操作符调用.静态方法中,$this伪变量不允许使用.可以使用self,parent,s ...
- 51nod1437 迈克步
傻叉单调栈 #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> ...
- 51nod1556 计算
ans[n]=ans[n-1]*3-m[n-2];YY一下可以懂的.减掉的就是往下走的情况不符合正整数的情况.m是默慈金数. #include<cstdio> #include<cs ...