??xml version="1.0" encoding="utf-8" standalone="yes"?> 首先在官方网站下载fckeditor,注意有两个包Q一个是LӞ一个是jsp整合包的?/p>
1?/strong>解压FCKeditor_2.2.zip,(FCKeditorL?Q将FCKeditor目录复制到网站根目录下, 2?/strong>解压FCKeditor-2.3.zip,(jsp,FCKeditor整合?Q作用:This is the JSP Integration Pack for using FCKeditor inside a java server page without the complexity of using a Java scriptlets or the javascript api. 3?/strong>FCKeditor-2.3/web/WEB-INF/web.xml中的两个servlet,servlet-mapping定义复制到自已项目的web.xml文g?br />
修改 5?/strong>在需使用FCKeditor的jsp界面中加入: 1?/strong>FCKeditor目录下及子目录下所有以”_”下划U开头的文g夹删?br />
2.FCKeditor根目录下只保留fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml其余全部删除 完成Q现在看是不是清爽了很多Q?br />
安全问题Q?/strong> 到此安装FCKeditor完成了Q相兌l配|你可以看FCKeditor-2.3.zip,(jsp,FCKeditor整合?文g夹中web/_samples目录下的例子?br />
转蝲自:http://homepage.yesky.com/253/2615753.shtml 解决问题二:
]]>
]]>
]]>public class test {
public void func(int i){
System.out.println("invoke int");
}
public void func(String i){
System.out.println("invoke String");
}
public void func(byte i){
System.out.println("invoke byte");
}
public static void main(String []arg){
test test1=new test();
char a='a';
test1.func(a);
}
}
]]><servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>
?br />
<servlet-mapping>
<servlet-name>Connector</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/browser/default/connectors/jsp/connector</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SimpleUploader</servlet-name>
<url-pattern>/FCKeditor/editor/filemanager/upload/simpleuploader</url-pattern>
</servlet-mapping>
4?/strong>FCKeditor-2.3/web/WEB-INF/lib目录下文件复制到自已目的lib文g夹中
// 文g开头处加入
<%@ taglib uri="http://fckeditor.net/tags-fckeditor" prefix="FCK" %>
//要用的地方加入
<FCK:editor id="content" basePath="/FCKeditor/"
imageBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connectors/jsp/connector"
linkBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Connector=connectors/jsp/connector"
flashBrowserURL="/FCKeditor/editor/filemanager/browser/default/browser.html?Type=Flash&Connector=connectors/jsp/connector"
imageUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Image"
linkUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=File"
flashUploadURL="/FCKeditor/editor/filemanager/upload/simpleuploader?Type=Flash">
this is default content :)
</FCK:editor>
启动服务器测试。。。。成功后Q来lFCKeditor瘦瘦w?
3.editor/filemanager/upload目录下文件及文gҎI?
4.q可以将editor/skins目录下的皮肤文g删除Q只留下default一套皮肤(如果你不需要换皮肤的话Q?br />
5.q可以将editor/lang目录下文件删除,只保留en.js, fcklanguagemanager.js, zh-cn.js, zh.js文gQ英文,体中文,J体中文一般应该够用了:) Q?/p>
其它问题Q?/strong>
在struts+spring+hibernate中用,上传囑փ功能中可能会出现报:
The output format must have a ‘{http://xml.apache.org/xalan}content-handler’ property!
错的情况Q将WEB-INF/lib目录下xalan*.jar删除试试
假如在前台让普通用户也能用FCKEditor,要注意相兛_全问?在前C用时,不要使用默认的ToolBarQ?br />
要将d囑փQflashQ图像域按钮L
在fckconfig.js中大U?8行配|?nbsp; 那些数组中的值就像当于界面上的一个功能,你可以强行把每组D出来代表什么?/p>
]]>
问题描述Q?br />
一Q通过xwindows或telnet{远E方式启动weblogicӞweblogic服务q不是做为后台程序运行的Q而是和终端服务联pd一赗比如通过telnetQ启动weblogic后无法返回到命o行,xtelnet的同时weblogic服务同时也关闭。通过xwindow启动weblogicQxwindow关闭后weblogic服务同时也关闭了?br />
二:启动weblogic后,应用中无法识别中文字W?br />
解决问题一Q?br />
我的目标是通过q程的方式让weblogic作ؓ后台服务启动Q查询了一些资料后发现有两U方式,W一U测试通过Q第二种q未试Q时间不够了Q呵呵)
方式一Q?br />
1.在我们徏的域文g夹下新徏一个boot.properties文gQ比如我的域路径Q?#8220;c:/bea/user_projects/file_domain/”Q打开ơ文件ƈdd用户的用户名和密码等内容Qweblogic的生产模式)Q如下所C?br />
username=weblogic
password=weblogic
2.打开q程l端Q定位到weblogic的启动目录,输入
nohup ./startWebLogic.sh
方式二:修改shell文gQ不安全Q?br />
1:定ؓ到startWebLogic.sh文gQ编辑此文g
WLS_USER="weblogic"
WLS_PW="weblogic"
2:定ؓ到weblogic启动目录Q在l端输入 nohup ./startWebLogic.sh?br />
问题虽然解决了,但原因说不清楚?br />
1Q用xwindowdsolaris10Qƈ选择中文字符集?br />
2Q用l端启动weblogic服务Q此时的weblogic服务可以识别中文字符。而其它的方式包括telnet方式启动weblogic 服务都无法识别中文?/p>
2、在JSP|页中获取页面的名称Q?
request.getRequestURI() ;//文g?
request.getRequestURL() ;//全部url
3?面不保留缓存:
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", 0);
4、日期时_服务器端Q?
String datestr ;
java.text.DateFormat df = new java.text.SimpleDateFormat("MM月dd?HH:mm E"); //q里格式?
datestr = df.format(new java.util.Date()) ;
out.println(datestr);
或?
Q? java.util.Date shijian= new java.util.Date();%Q?br>Q?=shijian.getYear()+1900%Q<%=shijian.getMonth()+1%Q<%=shijian.getDate()%Q?br>Q?=shijian.getHour()%Q<%=shijian.getMinute()%Q?/p>
5、java中运用正则。jdk需?.4以上 import="java.util.regex.*
6、点后退昄|页q期
在里面加以下代码
QMETA http-equiv=Pragma content=no-cache>
QMETA http-equiv=Cache-Control content=no-cache>
QMETA http-equiv=Expires content=0>
?3 原理一栗?
7、计执行所p的时?
代码开始取旉Q结束后取时_相减
long t1 = System.currentTimeMillis();
///////////////// your code
long t2 = System.currentTimeMillis() ;
long time = t2-t1;
8、四舍五入,保留数点后两位数Q?
import java.text.*;
NumberFormat nf=NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
nf.setMinimumFractionDigits(2);
nf.format(numb);
或?+0.005 - 0.01)再取.后两?
9、form的默认方法是get.
post方式是向服务器传送大定w数据时用的Ҏ。(再打开一个socket.?Q?
10?防止用户直接输入urlq去面Q?
一 是在要访问的面中加入控?q个一般用session?
?是从web服务器控?Ҏ一目录的所有访问要通过验证.Q有把jsp攑ֈweb-inf下)
11、数据库是datetime ?Q插入当前时间到数据库:
java.sql.Date sqlDate = new java.sql.Date();
PreparedStatement pstmt = conn.prepareStatement("insert into foo(time) values(?)");
pstmt.setDate(1,sqlDate);
pstmt.executeUpdate();
其实一般数据库都有自己的系l时间函数?
insert into foo(time) values(sysdate)
12?session存取intcd的变量:
session.setAttribute("int", i+""); //注意q里i+""
int i = Integer.parseInt(session.getAttribute("int"));
session的一些概c?
用户在浏览网|Q由于Http 协议是一U无状态的协议Q往往在不同的面之间存在数据交换的问题,q就需要在q些不同的页面之间共享数据。常见的实现Ҏ是把要共享的数据保存到Session 中。比如在用户d的页面中把一些用L信息保存到Session 之中Q然后在其他的页面中d用户的信息。这些共享的数据可以是字W串或者与Java 的原始数据类型相关的对象Q也可以是一个Java 对象?
Session 只能保存对象Q不能保存原始的数据cdQ比如:
session.setAttribute(“count”,10)
是非法的语句Q如果要把gؓ10 的整C存到Session 中,需要用以下的ҎQ?/p>
session.setAttribute(“count”,new Integer(10));
然后在另一个页面中使用Q?
(Integer)session.getAttribute(“count”)
来把q个整数d出来?
was中设|可以把session攑֜pȝ的数据库中,但这样媄响效率。session大小最好不要太?/p>
13、把字符转化成ASCII?
int a='A'; out.println(a);
14、String s = new String("xyz");创徏了两个String Object对象Q一个是“xyx”,一个是指向“xyx”的引用对象s?
q有典型的equals() ?== q个参考在堆栈原理?
15、swtich不能作用在long上和String上:
switchQexpr1Q中Qexpr1是一个整数表辑ּ。传递给 switch ?case 语句的参数应该是
int?short?char 或?byte。long,string 都不能作用于swtich?
16、Hashtable和HashMap
Hashtablel承自Dictionaryc,而HashMap是Java1.2引进的Map interface的一个实现HashMap允许null作ؓ一个entry的key或者valueQ而Hashtable不允许Hashtable的方法是Synchronize的,而HashMap不是Q在多个U程讉KHashtableӞ不需要自׃ؓ它的Ҏ实现同步Q而HashMap必Mؓ之提供外同步?nbsp;
interface关键字用来声明一个接口,它可以生一个完全抽象的c,q且不提供Q何具体实现?/span>interface的特性整理如下:
1. 接口中的Ҏ可以有参数列表和q回cdQ但不能有Q何方法体?/span>
2. 接口中可以包含字D,但是会被隐式的声明ؓstatic?/span>final?/span>
3. 接口中的字段只是被存储在该接口的静态存储区域内Q而不属于该接口?/span>
4. 接口中的Ҏ可以被声明ؓpublic或不声明Q但l果都会按照publiccd处理?/span>
5. 当实C个接口时Q需要将被定义的Ҏ声明?/span>publiccd的,否则为默认访问类型,Java~译器不允许q种情况?/span>
6. 如果没有实现接口中所有方法,那么创徏的仍然是一个接口?/span>
7. 扩展一个接口来生成新的接口应用关键字extendsQ实C个接口?/span>implements?/span>
interface在某些地方和abstract有相似的地方Q但是采用哪U方式来声明cM要参照以下两点:
1. 如果要创Z带Q何方法定义和成员变量的基c,那么应该选择接口而不是抽象类?/span>
2. 如果知道某个cd该是基类Q那么第一个选择的应该是让它成ؓ一个接口,只有在必要有方法定义和成员变量的时候,才应该选择抽象cR因为抽象类中允许存在一个或多个被具体实现的ҎQ只要方法没有被全部实现该类׃是抽象类?/span>
以上是接口的基本特性和应用的领域,但是接口l不仅仅如此Q在Java语法l构中,接口可以被嵌套,既可以被某个cd套,也可以被接口嵌套。这在实际开发中可能应用的不多,但也是它的特性之一。需要注意的是,在实现某个接口时Qƈ不需要实现嵌套在其内部的M接口Q而且Q?/span>private接口不能在定义它的类之外被实现?/span>
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
/**
* 计算L2个日期内的工作日Q没有考虑到固定假日)
* @author blw
*
*/
public class DateCal {
/**
* @param args
*/
/*
*
主要思\Q?
对于L2个日期比如:date_start=2006-10-1、date_end=2006-10-14 Q?br>首先计算q连个日期之间的旉间隔Q天敎ͼQ然后分别对date_start 和date_end 取得它们下一个星期一的日期,
q样可以得C个新的可以整?的完整日期间隔(q个新的日期间隔已经把星期几的问题剔出掉了)Q?br>换一U说法就是我们可以得刎ͼq两个新的日期之间的周数Q拿q个周数乘以5是工作日期了(tmpWorkingDaysQ?br>但是q个日期q不是我们所要的日期Q接下来我们要做的就是计date_start,date_endq两个日期对于根据它们所产生的新的日期之间的旉偏移量,
date_start的偏U量Qdate_start_changeQ是需要加的,而date_end的这个偏U量Qdate_end_changeQ是需要减ȝ?
最后我们只要用tmpWorkingDays+date_start_change-date_end_change是我们所要求的实际工作日了?br>以下是所有实C码(两个日期跨年也没有问题)?nbsp;
*
*/
public static void main(String[] args) {
try {
String strDateStart = "2007-8-1";
String strDateEnd = "2007-8-21";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date_start = sdf.parse(strDateStart);
Date date_end = sdf.parse(strDateEnd);
DateCal app = new DateCal();
Calendar cal_start = Calendar.getInstance();
Calendar cal_end = Calendar.getInstance();
cal_start.setTime(date_start);
cal_end.setTime(date_end);
System.out.println("星期-->" + app.getChineseWeek(cal_start)
+ " 日期-->" + cal_start.get(Calendar.YEAR) + "-"
+ (cal_start.get(Calendar.MONTH) + 1) + "-"
+ cal_start.get(Calendar.DAY_OF_MONTH));
System.out.println("星期-->" + app.getChineseWeek(cal_end) + " 日期-->"
+ cal_end.get(Calendar.YEAR) + "-"
+ (cal_end.get(Calendar.MONTH) + 1) + "-"
+ cal_end.get(Calendar.DAY_OF_MONTH));
System.out.println("工作日ؓ-->"
+ app.getWorkingDay(cal_start, cal_end));
System.out.println("休息?->"+app.getHolidays(cal_start, cal_end));
} catch (Exception e) {
// TODO: handle exception
}
}
public int getDaysBetween(java.util.Calendar d1, java.util.Calendar d2) {
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int days = d2.get(java.util.Calendar.DAY_OF_YEAR)
- d1.get(java.util.Calendar.DAY_OF_YEAR);
int y2 = d2.get(java.util.Calendar.YEAR);
if (d1.get(java.util.Calendar.YEAR) != y2) {
d1 = (java.util.Calendar) d1.clone();
do {
days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);
d1.add(java.util.Calendar.YEAR, 1);
} while (d1.get(java.util.Calendar.YEAR) != y2);
}
return days;
}
/**
* 计算2个日期之间的盔R天数
* @param d1
* @param d2
* @return
*/
public int getWorkingDay(java.util.Calendar d1, java.util.Calendar d2) {
int result = -1;
if (d1.after(d2)) { // swap dates so that d1 is start and d2 is end
java.util.Calendar swap = d1;
d1 = d2;
d2 = swap;
}
int betweendays = getDaysBetween(d1, d2);
int charge_date = 0;
int charge_start_date = 0;//开始日期的日期偏移?br> int charge_end_date = 0;//l束日期的日期偏U量
// 日期不在同一个日期内
int stmp;
int etmp;
stmp = 7 - d1.get(Calendar.DAY_OF_WEEK);
etmp = 7 - d2.get(Calendar.DAY_OF_WEEK);
if (stmp != 0 && stmp != 6) {// 开始日期ؓ星期六和星期日时偏移量ؓ0
charge_start_date = stmp - 1;
}
if (etmp != 0 && etmp != 6) {// l束日期为星期六和星期日时偏U量?
charge_end_date = etmp - 1;
}
// }
result = (getDaysBetween(this.getNextMonday(d1), this.getNextMonday(d2)) / 7)
* 5 + charge_start_date - charge_end_date;
//System.out.println("charge_start_date>" + charge_start_date);
//System.out.println("charge_end_date>" + charge_end_date);
//System.out.println("between day is-->" + betweendays);
return result;
}
public String getChineseWeek(Calendar date) {
final String dayNames[] = { "星期?, "星期一", "星期?, "星期?, "星期?, "星期?,
"星期? };
int dayOfWeek = date.get(Calendar.DAY_OF_WEEK);
// System.out.println(dayNames[dayOfWeek - 1]);
return dayNames[dayOfWeek - 1];
}
/**
* 获得日期的下一个星期一的日?br> *
* @param date
* @return
*/
public Calendar getNextMonday(Calendar date) {
Calendar result = null;
result = date;
do {
result = (Calendar) result.clone();
result.add(Calendar.DATE, 1);
} while (result.get(Calendar.DAY_OF_WEEK) != 2);
return result;
}
/**
*
* @param d1
* @param d2
* @return
*/
public int getHolidays(Calendar d1,Calendar d2){
return this.getDaysBetween(d1, d2)-this.getWorkingDay(d1, d2);
}
}