如何在javaWeb/javaEE环境中使用JDiy
2013-05-26 14:20
295 查看
一、配置JDiy运行环境
1. 下载得到JDiy最新版的压缩包,在压缩包根目录下有一个名为"JDiy-n.n.jar"的文件(其中n.n代表版本号),这个文件是JDiy框架的核心类库文件,请先将其放到WEB-INF/lib目录中;
2. 将下面列出的这些JDiy框架所依赖的类库文件也一并放到WEB-INF/lib目录中。
(注:您可以从JDiy下载的压缩包的depend-jars目录中找到这些文件)
ant.jar;
dom4j-1.6.1.jar;
jaxen-1.1.3.jar;
log4j-1.2.15;
mail.jar;
slf4j-api-1.5.6.jar;
slf4j-log4j12-1.5.6.jar
3. 再看您使用的是什么数据库,从JDiy下载的压缩包的databases目录中找到对应的数据库驱动,一并添加到WEB-INF/lib目录。例如我们以MySQL为例,则将databases/MySQL/mysql-connector-java-5.1.15-bin.jar这个文件放到项目的lib目录下。
另外值得在此提示一下,如果您有很多个WEB项目都用到了JDiy,您也可以将上述文件直接放到JSP容器(例如Tomcat)的lib库目录中去,这样您就无需在每个WEB项目的/WEB-INF/lib/目录下放置这些文件了.这将有利于后期系统的升级,同时也会节省Tomcat的内存资源.(这样做,JDiy会针对多个项目进行统一管理和优化.)
4. 将JDiy的XML配置文件(即下载的JDiy压缩包根目录下的jdiy.xml)放到项目的WEB-INF/classes/类路径下.并修改jdiy.xml配置文件中的数据库连接信息.例如下面的配置代码段(请修改下面红色的数据库连接信息部分):
......前面的省略
<databases default="def" showSql="true">
<database name="def">
<type>MYSQL</type> <!-- database type -->
<host>127.0.0.1</host>
<!-- database hostname -->
<port>3306</port>
<!--port number-->
<name>jdiy_db</name>
<!-- database name -->
<uid>root</uid>
<!--database username-->
<pwd>123456</pwd>
<!--database password-->
<maxPools>32</maxPools>
<maxed>WAIT</maxed>
</database>
......后面的省略
5. 配置JDiy的装载器, 修改WEB-INF/web.xml文件,在web-app节点下面新增如下代码:
<filter>
<filter-name>JDiyLoader</filter-name>
<filter-class>net.jdiy.core.JDiyLoadFilter</filter-class>
<!--下面定义JDiy配置文件位置,默认值为jdiy.xml(相对于WEB-INF/classes/目录).
如要修改配置文件位置,请修改param-value里面的值并取消注释.-->
<!-- <init-param>
<param-name>xmlLocation</param-name>
<param-value>subdir1/subdir2/jdiy.xml</param-value>
</init-param> -->
</filter>
<filter-mapping>
<filter-name>JDiyLoader</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
上面代码的注释部分可以去掉,从上面代码可以看出,其实JDiy的装载器,就是一个Filter而已.添加上这个Filter,就可以在您的代码中使用JDiy啦.
特别注意:如果您还使用了Servlet, 或其它的java框架(例如Struts), 要在这些Servlet或者Struts Action中使用JDiy,您必须将这个Filter置于其它框架的配置代码段之前(这一点非常重要)! 另外,上面的配置中,<url-pattern>/*</url-pattern>这一行,请保持不变,不要去修改,以使JDiy的装载器作用于整个项目.
二. 使用JDiy操作数据库
经过上面的配置,如果不是因为您配置错误的话,您已经可以在您的WEB项目中使用JDiy了(无论是Struts-Action, Servlet还是JSP页面中都可以使用).
假设您有一个用于测试的数据表(表名为test, 有三个字段, id, name, age, 您可以在mysql中通过下面的DDL建表语句创建一个这样的数据表):
create table test (
id int(11) primary key not null auto_increment,
name varchar(50),
age int(11)
)
下面的代码演示了如何在JSP页面中使用JDiy操作数据库:
test.jsp 示例代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="net.jdiy.core.*" %>
<html>
<head><title>JDiy demo</title></head>
<body>
<%
//Web环境下用App类来获取JDiy上下文(它是JDiyContext的子类),注意用的是静态方法,因此无论是Servlet, 还是Struts Action中都可以这样写.
App app = App.get();
//下面获取默认的数据库操作DAO
Dao dao = app.getDao();
//下面创建一个Rs对象(即对应数据库中的记录)
Rs rs = new Rs("test");
rs.set("name", "张三");
rs.set("age", 18);
dao.save(rs);//写入数据库
out.println(rs.get("id"));//写入数据库后可直接从rs中取到自增的主键ID值
//再来创建一个,设置数据库字段的值时,可以连着写喔~~
Rs rs1 = new Rs("test").set("name", "李四").set("age", 27);
dao.save(rs1);//写入数据库
//把test表中的数据全查出来
Ls ls = dao.ls(new Args("test"));
//循环输出看一下:
for (Rs item : ls.getItems()) {
out.print("姓名:" + item.get("name") + "; 年龄:" + item.get("age") + "<br/>");
//输出之后把这条记从数据库中删除:
dao.del(item);
out.print("已经删除了!<br />");
}
%>
</body>
</html>
1. 下载得到JDiy最新版的压缩包,在压缩包根目录下有一个名为"JDiy-n.n.jar"的文件(其中n.n代表版本号),这个文件是JDiy框架的核心类库文件,请先将其放到WEB-INF/lib目录中;
2. 将下面列出的这些JDiy框架所依赖的类库文件也一并放到WEB-INF/lib目录中。
(注:您可以从JDiy下载的压缩包的depend-jars目录中找到这些文件)
ant.jar;
dom4j-1.6.1.jar;
jaxen-1.1.3.jar;
log4j-1.2.15;
mail.jar;
slf4j-api-1.5.6.jar;
slf4j-log4j12-1.5.6.jar
3. 再看您使用的是什么数据库,从JDiy下载的压缩包的databases目录中找到对应的数据库驱动,一并添加到WEB-INF/lib目录。例如我们以MySQL为例,则将databases/MySQL/mysql-connector-java-5.1.15-bin.jar这个文件放到项目的lib目录下。
另外值得在此提示一下,如果您有很多个WEB项目都用到了JDiy,您也可以将上述文件直接放到JSP容器(例如Tomcat)的lib库目录中去,这样您就无需在每个WEB项目的/WEB-INF/lib/目录下放置这些文件了.这将有利于后期系统的升级,同时也会节省Tomcat的内存资源.(这样做,JDiy会针对多个项目进行统一管理和优化.)
4. 将JDiy的XML配置文件(即下载的JDiy压缩包根目录下的jdiy.xml)放到项目的WEB-INF/classes/类路径下.并修改jdiy.xml配置文件中的数据库连接信息.例如下面的配置代码段(请修改下面红色的数据库连接信息部分):
......前面的省略
<databases default="def" showSql="true">
<database name="def">
<type>MYSQL</type> <!-- database type -->
<host>127.0.0.1</host>
<!-- database hostname -->
<port>3306</port>
<!--port number-->
<name>jdiy_db</name>
<!-- database name -->
<uid>root</uid>
<!--database username-->
<pwd>123456</pwd>
<!--database password-->
<maxPools>32</maxPools>
<maxed>WAIT</maxed>
</database>
......后面的省略
5. 配置JDiy的装载器, 修改WEB-INF/web.xml文件,在web-app节点下面新增如下代码:
<filter>
<filter-name>JDiyLoader</filter-name>
<filter-class>net.jdiy.core.JDiyLoadFilter</filter-class>
<!--下面定义JDiy配置文件位置,默认值为jdiy.xml(相对于WEB-INF/classes/目录).
如要修改配置文件位置,请修改param-value里面的值并取消注释.-->
<!-- <init-param>
<param-name>xmlLocation</param-name>
<param-value>subdir1/subdir2/jdiy.xml</param-value>
</init-param> -->
</filter>
<filter-mapping>
<filter-name>JDiyLoader</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
上面代码的注释部分可以去掉,从上面代码可以看出,其实JDiy的装载器,就是一个Filter而已.添加上这个Filter,就可以在您的代码中使用JDiy啦.
特别注意:如果您还使用了Servlet, 或其它的java框架(例如Struts), 要在这些Servlet或者Struts Action中使用JDiy,您必须将这个Filter置于其它框架的配置代码段之前(这一点非常重要)! 另外,上面的配置中,<url-pattern>/*</url-pattern>这一行,请保持不变,不要去修改,以使JDiy的装载器作用于整个项目.
二. 使用JDiy操作数据库
经过上面的配置,如果不是因为您配置错误的话,您已经可以在您的WEB项目中使用JDiy了(无论是Struts-Action, Servlet还是JSP页面中都可以使用).
假设您有一个用于测试的数据表(表名为test, 有三个字段, id, name, age, 您可以在mysql中通过下面的DDL建表语句创建一个这样的数据表):
create table test (
id int(11) primary key not null auto_increment,
name varchar(50),
age int(11)
)
下面的代码演示了如何在JSP页面中使用JDiy操作数据库:
test.jsp 示例代码如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="net.jdiy.core.*" %>
<html>
<head><title>JDiy demo</title></head>
<body>
<%
//Web环境下用App类来获取JDiy上下文(它是JDiyContext的子类),注意用的是静态方法,因此无论是Servlet, 还是Struts Action中都可以这样写.
App app = App.get();
//下面获取默认的数据库操作DAO
Dao dao = app.getDao();
//下面创建一个Rs对象(即对应数据库中的记录)
Rs rs = new Rs("test");
rs.set("name", "张三");
rs.set("age", 18);
dao.save(rs);//写入数据库
out.println(rs.get("id"));//写入数据库后可直接从rs中取到自增的主键ID值
//再来创建一个,设置数据库字段的值时,可以连着写喔~~
Rs rs1 = new Rs("test").set("name", "李四").set("age", 27);
dao.save(rs1);//写入数据库
//把test表中的数据全查出来
Ls ls = dao.ls(new Args("test"));
//循环输出看一下:
for (Rs item : ls.getItems()) {
out.print("姓名:" + item.get("name") + "; 年龄:" + item.get("age") + "<br/>");
//输出之后把这条记从数据库中删除:
dao.del(item);
out.print("已经删除了!<br />");
}
%>
</body>
</html>
相关文章推荐
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- Web企业实训(java、tomcat、eclipse安装、环境配置及使用)
- Eclipse Java EE IDE for Web Developers集成的Maven 3 如何应用?
- 在web和非web环境都可以使用的属性文件属性读取java代码
- Java_Web Project_如何使用Annotation配置Servlet?
- Create a Java Web Application using Embedded Tomcat (如何使用Embedded 创建一个基于Tomcat的Web 应用))
- 在Java EE+eclipse中使用tomcat7.0 开发环境搭建
- 【原创】eclipse的JavaEE web工程中存在WebContent目录如何导入MyEclipse问题的解决
- 转:使用 Docker 搭建 Java Web 运行环境
- Jenkins的配置从节点中默认没有Launch agent via Java Web Start,该如何配置使用
- javaee web.xml中如何设置配置文件的加载路径实例详解
- 使用Eclipse EE(汉化版) 创建一个JavaWeb工程
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件
- 如何建立Java Web开发环境(1)
- 关于JAVA EE项目在WEB-INF目录下的jsp页面如何访问WebRoot中的CSS和JS文件(转载)
- javaEE如何处理字符串在java-script-html环境之间的转换使用
- 使用 Docker 搭建 Java Web 运行环境
- 使用 Docker 搭建 Java Web 运行环境
- ImportNew 首页所有文章资讯Web架构基础技术书籍教程我要投稿更多频道 » 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例