摘要:j2ee frameworkspring 1.1.4, ofbiz 3.0.0
persistence frameworkhibernate 2.1.8 , ibatis 2.0.9
web frameworkstruts 1.2.4 , tapestry 3.0.1 , webwork2 2.1.7 , echo 1.1.4
riaflex 1.5(商业) , laszlo ......
摘要:
谈谈j2se中的序列化(二)
作者:favo yang
favoyang@yahoo.com
当序列化遇到继承…
当一个父类实现serializable接口后,他的子类都将自动的实现序列化。
以下验证了这一点:
package serial;
import java.io.serializable;
public class superc impl......
Hibernate+Struts应用程序的JavaWebStudio 2005下快速、可视化开发
如何实现hibernate_struts
v\:* { behavior: url(#default#vml) }
o\:* { behavior: url(#default#vml) }
.shape { behavior: url(#default#vml) }
hibernate+struts应用程序的javawebstudio 2005下快速.可视化开发
javawebstudio.com>struts中文论坛:http://www.javawebstudio.com/
【程序编程相关:
谈谈J2SE中的序列化
】 【推荐阅读:
用java实现外部调用exe文件
】
【扩展信息:
jboss4+ejb3下使用JAAS
】
javawebstudio.com/bbs/dispbbs.asp?boardid=5&id=3&page=1>javawebstudio 2005下载地址:http://www.javawebstudio.com/bbs/dispbbs.asp?boardid=5&id=3&page=1
[目标]
本例的目标是实现一个简单的struts
数据库应用程序.其功能是从sql server
2000中读取数据,并以表格的形式在输出页中显示出来.
定义一个名为“test”表的字段:
录入一些测试数据:
[效果]
(1)全部显示:
输入页面:
输出页面:
(2)查询显示:
[背景知识]
[步骤]
1.打开visual
struts开发环境:
从桌面javawebstudio快揵或bin目录下的javawebstudio.exe文件启动javawebstudio的visual
struts开发环境.
2.建立一个“空的hibernate_struts项目模板”应用程序:
选择菜单“文件”—“新建”—“新建项目”,弹出新建项目对话框,如图3-1所示:
在对话框中选择“空的struts数据库应用模板”,在项目名称中输入“myhibernate”,package
(包名)与位置(项目的路径)采用默认的值就行,当然也可以根据需要改变.最后点击“确定”按钮完成新项目的建立.
从文件管理器中可看出myhibernate项目的文件结构如下:
在myhibernate项目根目录下包含四个子目录与两个文件,这是javawebstudio项目的标准结构,最好不要改变它们默认的名称,否则会出现问题.
3.利用struts数据库应用文件向导建立新的应用:
在javawebstudio文件管理器内点击鼠标右键,在弹出的菜单中选择“hibernate”—“hibernate_struts文件向导”进入struts文件向导对话框,也可以选择菜单“文件向导”—“
hibernate_struts文件向导”进入hibernate文件向导对话框.如下图所示:
(1)输入文件名:
(2)从数据源中导入sql语句及数据表的字段信息(字段名与字段类型):
(3)从数据据表中选择所需的表“test”.
需要特别注意的是,这里的“从数据源中导入sql语句及数据表的字段信息”及“从数据据表中选择所需的表”仅仅是为了自动生成sql语句及读取字段信息,这里完成可以直接手工输入,与该项目的数据库连接池的配置无关,下面第(4)点将另行配置数据库连接池.
dao文件.输入jsp文件.actionform文件.action文件等选择默认就行了,主要是设置一下jspout文件,让它自动分页.每页显示4条记录,选择删除.编辑.链接与添加新记录功能.
接下来配置数据库连接池,其它属性页可采用默认的就行了,下面直接转去数据连接配置属性页即可.
(4)配置数据库连接池:
这里要特别注意的是hibernate的数据库连接池配置文件是hibernate.properties,并且dialect类名是org.hibernate.dialect.sqlserverdialect.
4.项目文件结构
项目目录结构分析见«如何实现最简单的struts程序»,这次hibernate文件向导自动生成了八个文件,其中web目录下是输入.输出两个jsp文件,src目录下是java文件.除了文件名是我们输入之外,所有程序源代码都是文件向导自动生成的,所有的配置也是自动完成的.
刷新javawebstudio文件管理器,这时发现web目录下自动生成了两个文件,分别是test.jsp.jsp.testinsert.jsp与testout.jsp.jsp,分别是查询条件输入jsp文件.新记录添加jsp文件与表格输出jsp文件;src\emptyprj目录下自动生成了五个文件,分别是testaction.java与testform.java,前者是action文件,后者是formaction文件;还有是数据库操作文件test.java与testdao.java,前者用于保存数据表记录的bean,后者是数据库操作dao文件;还要特别注意的是还有一个xml文件,就是test.hbm.xml,用于hibernate对象与数据库的映射.
test.jsp文件:
testinsert.jsp文件:
testout.jsp文件:
服务器.运行:">5.编译.启动服务器.运行:
通过工具条上的按键分别编译项目及启动服务器,然后把开test.jsp并通过工具条上的“运行”按键运行test.jsp.
这里将采用调试状态下的运行方式:
(1)
显示调试工具条:
注:单步执行可跟踪进原函数执行;单过程执行按语句跟踪,一般选择单过程执行即可.
(2)选择调试状态下的“编译”:
输出栏中输出如下提示信息:
c:\documents and settings\administrator\桌面>f:
f:\>cd
f:\javawebstudio\javawebstudioworkdir\myhibernate
f:\javawebstudio\javawebstudioworkdir\myhibernate>ant -buildfile build.xml
buildfile:
build.xml
prepare:
[copy]
copying 1 file to
f:\javawebstudio\jakarta-tomcat-5.5.4\webapps\myhibernate\web-inf\classes
compile:
[javac]
compiling 5 source files to
f:\javawebstudio\jakarta-tomcat-5.5.4\webapps\myhibernate\web-inf\classes
[javac]
f:\javawebstudio\javawebstudioworkdir\myhibernate\src\emptyprj\testaction.java:68:
setuserid(int) in emptyprj.test cannot be applied to (java.lang.string)
[javac] m_test.setuserid(expression);
[javac] ^
[javac]
1 error
build
failed
f:\javawebstudio\javawebstudioworkdir\myhibernate\build.xml:34: compile failed;
see the compiler error output for details.
total time:
9 seconds
出现一个错误,原因是因为前面我们设置userid为整数类型,而这里的expression是字符串类型,所以要修改一下testaction.java文件:
package
emptyprj;
import
emptyprj.testdao;
import
java.lang.reflect.invocationtargetexception;
import
java.util.locale;
import
javax.servlet.servletexception;
import
javax.servlet.http.httpsession;
import
javax.servlet.http.httpservletrequest;
import
javax.servlet.http.httpservletresponse;
import
org.apache.commons.beanutils.propertyutils;
import
org.apache.commons.logging.log;
import
org.apache.commons.logging.logfactory;
import
org.apache.struts.action.action;
import
org.apache.struts.action.actionerror;
import
org.apache.struts.action.actionerrors;
import
org.apache.struts.action.actionform;
import
org.apache.struts.action.actionforward;
import
org.apache.struts.action.actionmapping;
import
org.apache.struts.action.actionservlet;
import
org.apache.struts.util.moduleexception;
import
org.apache.struts.util.messageresources;
import
java.io.ioexception;
import
java.sql.connection;
import
java.sql.sqlexception;
import
java.util.collection;
public
final class testaction extends action
{
//
变量定义:
private
log log = logfactory.getlog("org.apache.struts.webapp.example");
public
testaction() {
}
//函数定义:
public
actionforward execute(actionmapping mapping,
actionform form,
httpservletrequest request,
httpservletresponse response)
throws exception
{
//
extract attributes and parameters we will need
locale locale = getlocale(request);
messageresources messages = getresources(request);
httpsession session = request.getsession();
testform m_testform = (testform) form;
testdao m_testdao = testdao.getinstance(); //定义hibernate__dao对象,用于实现数据库的各种操作
string action=request.getparameter("action"); //动作类型
string search=request.getparameter("search"); //数据库查找方式
string expression=request.getparameter("expression"); //参数,这里用于保存记录(行)的id数据
if(action==null)action="find";
if(search==null)search="unsearch";
if(expression==null)expression="";
expression=tochinese(expression); //处理中文问题,实现编码转换
/////////
if("delete".equals(action)) //删除记录操作
{
test m_test= new test();
//<delete>
m_test.setuserid(expression);
//</delete>
m_testdao.removeid(m_test);
}
////////////
if("update".equals(action)||"insert".equals(action)) //更新.添加记录操作
{
test m_test= new test();
//<update>
m_test.setuserid(m_testform.getuserid());
m_test.setusername(m_testform.getusername());
m_test.setpassword(m_testform.getpassword());
m_test.setrole(m_testform.getrole());...
下一页 摘要:我的shark的版本为:shark-1.0-1
一、用户及组管理
1、涉及的模块:
用户与组管理及对内部开放,也对外部开放,涉及的模块为sharkapi、sharkkernel、sharkusergroup
2、相关的数据库表:
如果用户与组信息存储到数据库,使用到的表为:usertable、grouptable、usergrouptable、groupgrouptable
3、实现说......