全是前几天的笔记,因为不想一次发那么多文章,就放到一篇里了:)
一.cloudscape网络配置
准备工作:
1)在classpath中加入derby.jar,derby.client.jar,derbynet.jar
2)在tomcat里的web目录中的web-inf的lib中加入以上3个文件.
使用:
打开服务器命令:
java org.apache.derby.drda.NetworkServerControl start -p 1527
连接:
cd E:\Program Files\IBM\Cloudscape_10.1\frameworks\NetworkServer\bin
ij>connect 'jdbc:derby://localhost:1527/mydb; create=true;traceFile=trace.out;user=user1;password=secret4me';
ij>connect 'jdbc:derby://localhost:1527/myDB;create=true;user=admin; password=12345';
ij>create table app.bloguser (id int not null generated always as identity,username varchar(255) not null,password varchar(255) not null,emailaddress varchar(255) not null,datecreated timestamp not null);
ij>quit;
二.roller服务器安装
1.我的电脑->属性->高级->环境变量
系统变量那里,新建->变量名为:CATALINA_HOME,变量值为:d:\programs\apache\tomcat(按你装的位置写)
2.把roller-1.0解压缩后的文件夹roller全部一起复制到$CATALINA_HOME\webapps里去.
3.我的电脑->属性->高级->环境变量
点Path变量那里,在值后面加上E:\Program Files\MySQL\MySQL Server 5.0\bin(按你装mysql的位置写)
4.C> cd %CATALINA_HOME%\webapps\roller\WEB-INF\dbscripts\mysql
C> mysql -u root -p
password: *****
mysql> create database roller;
mysql> grant all on roller.* to scott@'%' identified by 'tiger';
mysql> grant all on roller.* to scott@'localhost' identified by 'tiger';
mysql> use roller;
mysql> source createdb.sql
mysql> quit
5:mysql roller -h 127.0.0.1 -u scott -ptiger
6把mysql的jdbc驱动(mysql-connector.jar)copy到%CATALINA_HOME%\common\lib文件夹里.
7按照install guide上的step5 把那个xml文件保存为roller.xml,放到CATALINA_HOME/conf/Catalina/localhost文件夹里.(看你的tomcat是5。0还是5。5)
注意替换里面的用户名和密码(scott 和 tiger)
8然后启动tomcat,再到浏览器里输入http://localhost:8080/roller
就应该能看见了.
ps:开始我装好roller后只能打开主页,不能注册用户.原因是sql connect用的是3.0的,换一个3.1的就ok了.
三.一些小技巧和我犯的低级错误:
1)
<sql:dateParam/>非常方便.
如果不指定特别的类型,则自动把一个Date对象转换为java.sql.Timestamp对象.
具体代码如下:
<jsp:useBean id="now" class="java.util.Date"/>
<c:choose>
<c:when test="${userInfo.valid}">
<sql:update>
insert into app.bloguser
(username, password, emailaddress, datecreated)
values (?,?,?,?)
<sql:param value="${userInfo.userName}"/>
<sql:param value="${userInfo.password1}"/>
<sql:param value="${userInfo.emailAddr}"/>
<sql:dateParam value="${now}"/>
</sql:update>
<jsp:forward page="RegisterSucceed"/>
</c:when>
<c:otherwise>
<jsp:forward page="Register.jsp"/>
</c:otherwise>
</c:choose>
2)
我坚持用MVC写代码,最基本的原则就是:不在任何jsp页面里产生JavaBean对象,所有bean全部在Servlet里面生成.
<jsp:usebean/>里的class属性是指:如果是第一次调用,那么创建bean对象;type属性是指:jsp页面不会生成对象,只是使用已经存在的bean.(当然,如果不存在会报错)
具体代码象这样:
<jsp:useBean id="userInfo" scope="session" type="beans.UserInfoBean"/>
3)
当在Servlet里调用request的属性时,我有一次写成了:
request.getAttibute("title");是错误的,花了好久才发现是这个低级错误.
正确方法是:
request.getParameter("title")
4)
如果用到哪些标签库,记得在第一行加入相应的声明代码,我经常会忘记...
象这样的语句:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
5)
如果是表单元素,在jsp中调用应使用${param.xxx},
如果是request.setAttribute("xx",yyy),那么应使用${xx}
6)
有时候明明是post请求,但是Serlet只写了doGet()方法,又是低级错误,所以我现在一般产生一个Servlet时,首先就是补全方法.
7)
我竟然有一次是想从一个Servlet转移到另外一个Servlet,这样好象不行..直接把事务放到原来的Servlet就ok了.