http://subclipse.tigris.org/update //SVN插件
eclipse/configuration/.settings目录下,
有一个“org.eclipse.ui.ide.prefs”文件,用记事本打开,
里面有一个“SHOW_WORKSPACE_SELECTION_DIALOG”,
如果你之前有打勾的话后面的值是false,你把它改成true就好了,
下次再开就出现那个“Workspace Launcher”框了。
在Eclipse使用SVN的过程中大多数人往往习惯把访问SVN的用户名密码自动保存起来
以便下次自动使用,不要再次手工输入,但是有些时候需要变更密码或者用户名,
这时候怎么办?在网上查找后发现如下方法:
1. 查看你的Eclipse中使用的是什么SVN Interface
windows > preference > Team > SVN #SVN Interface
2. 如果是用的JavaHL, 找到以下目录并删除auth目录下的文件.
C:"Documents and Settings"[YourUserName]"Application Data"Subversion"
3. 如果你用的SVNKit, 找到以下目录并删除.keyring文件.
[eclipse]"configuration"org.eclipse.core.runtime
主要有两种方法,一种是删除SVN客户端的账号配置文件;另外一种就是去SVN服务端将账号设置成不可用。
具体步骤:
1、通过删除SVN客户端的账号配置文件
(1)找到我们使用的客户端配置文件,在window xp下面他们的位置在系统盘的 Documents and Settings/alex/Application Data/Subversion/auth/文件夹中,把里面的所有文件删除。
(2)使用SVN更新或提交,使得客户端与服务端进行通讯,这样就会SVN客户端就要求我们输入新的用户名密码,输入我们的用户名密码就可以替换掉旧的用户名密码。
2、通过修改SVN服务端账号配置文件,这部分需要SVN的管理员配合
(1)找到服务端账号配置文件,这个文件位于SVN服务器的安装路径 config文件夹,打开并编辑passwd文件,删除或注释需要被替换的账号
(2)在客户端使用SVN更新或提交,使得客户端与服务端进行通讯,这样就会SVN客户端就要求我们输入新的用户名密码,输入我们的用户名密码就可以替换掉旧的用户名密码。
sendTo = new String(sendTo.getBytes("ISO-8859-1"), "utf-8");
MYSQL
public static String sDriverName = "com.mysql.jdbc.Driver";
public static String sUrl = "jdbc:mysql://localhost/ydsdb?useUnicode=true&characterEncoding=utf-8";
//url=jdbc:mysql://192.168.0.101:3306/news?Unicode=true&characterEncoding=true&characterEncoding=utf-8
public static String sUserName = "root";
public static String sPassWord = "mysql";
SQL2000
// public static String sDriverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
// public static String sUrl = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs";
// public static String sUserName = "sa";
// public static String sPassWord = "sa";
oracle
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@218.24.136.16:1521:slytship
ship
ship
SQL2005
public static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
public static String url = "jdbc:sqlserver://198.1.1.17:1433; DatabaseName=slytship";
public static String userName = "sa";
public static String passWord = "123456";
function trim(str){ //删除左右两端的空格
return str.replace(/(^/s*)|(/s*$)/g, "");
}
function ltrim(str){ //删除左边的空格
return str.replace(/(^/s*)/g,"");
}
function rtrim(str){ //删除右边的空格
return str.replace(/(/s*$)/g,"");
}
1.tomcat5下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法在tomcat5下jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),
没有妥善处理好的原因。
具体的原因就是
在tomcat中jsp编译成servlet之后在函数_jspService(HttpServletRequest request, HttpServletResponse response)的最后
有一段这样的代码
finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
这里是在释放在jsp中使用的对象,会调用response.getWriter(),因为这个方法是和
response.getOutputStream()相冲突的!所以会出现以上这个异常。
然后当然是要提出解决的办法,其实挺简单的(并不是和某些朋友说的那样--
将jsp内的所有空格和回车符号所有都删除掉),
在使用完输出流以后调用以下两行代码即可:
out.clear();
out = pageContext.pushBody();
INSERT INTO FLOOR VALUES ( to_date ( '2007-12-20 18:31:34' , 'YYYY-MM-DD HH24:MI:SS' ) ) ;
查询显示:2007-12-20 18:31:34.0
-------------------
INSERT INTO FLOOR VALUES ( to_date ( '2007-12-14 14:10' , 'YYYY-MM-DD HH24:MI' ) );
查询显示:2007-12-14 14:10:00.0
-------------------
INSERT INTO FLOOR VALUES ( to_date ( '2007-12-14 14' , 'YYYY-MM-DD HH24' ) );
查询显示:2007-12-14 14:00:00.0
-------------------
INSERT INTO FLOOR VALUES ( to_date ( '2007-11-15' , 'YYYY-MM-DD' ) );
查询显示:2007-11-15 00:00:00.0
-------------------
INSERT INTO FLOOR VALUES ( to_date ( '2007-09' , 'YYYY-MM' ) );
查询显示:2007-09-01 00:00:00.0
-------------------
INSERT INTO FLOOR VALUES ( to_date ( '2007' , 'YYYY' ) );
查询显示:2007-05-01 00:00:00.0
从数据库获取完整时间
java.util.Date date = new java.util.Date(rs.getTimestamp("eta").getTime());
select senderCode,sendStaCode,oilCode,revStaCode,reciverCode,zoneCode,transModeCode,originalQty,adjustQty,afterQty from dpo
union
select '','','','','','','',sum(originalQty),sum(adjustQty),sum(afterQty) from dpo;
//在导入jxl包前提下
循环。。。
if (cell.getType() == CellType.NUMBER)----------------1
strdataint = ( (NumberCell) cell).getValue();
else if (cell.getType() == CellType.DATE)--------------------2
strdatastr = ( ( (DateCell) cell).getDate().toString());
else----------------------------------------------------------3
strdatastr = cell.getContents();
例:
while (rs.next()) {
Vector vector = new Vector();
vector.add(rs.getString("ID"));
vector.add(rs.getString("NAME"));
vector.add(rs.getTimestamp("FORECASTTIME"));
vector.add(rs.getDouble("LAT"));
vector.add(rs.getDouble("LON"));
vector.add(rs.getDouble("LAT24"));
vector.add(rs.getDouble("LON24"));
vector.add(rs.getDouble("LAT48"));
vector.add(rs.getDouble("LON48"));
vector.add(rs.getDouble("LAT72"));
vector.add(rs.getDouble("LON72"));
vector.add(rs.getDouble("WINDPOWER"));
vector.add(rs.getDouble("AIRPRESSURE"));
vector.add(rs.getDouble("DIRECTION"));
vector.add(rs.getDouble("SPEED"));
vector.add(rs.getDouble("RADIUS7"));
vector.add(rs.getDouble("RADIUS10"));
list.add(vector);
}
Vector inner = null;
String value = "";// 存放在cell中的文本值
OutputStream os = new FileOutputStream(path);
workbook = Workbook.createWorkbook(os); // 创建第一个工作表,name:工作表名称
worksheet = workbook.createSheet("record", 0); // 创建第一个工作表,name:工作表名称
Label label = null;// 用于写入文本内容到工作表中去
jxl.write.Number nmb = null;// 用于写入数值到工作表中去
WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10, WritableFont.BOLD);
WritableCellFormat format = new WritableCellFormat(font);
format.setAlignment(jxl.format.Alignment.CENTRE);
jxl.write.DateFormat df = new jxl.write.DateFormat("yyyy-mm-dd");
for (int i = 0; i < title.length; i++) {
label = new Label(i, 0, title[i], format);// 参数依次代表列数、行数、内容
worksheet.addCell(label);// 写入单元格
}
// 开始写入内容
for (int i = 0; i < list.size(); i++) {
inner = (Vector) list.get(i);// 获取一条记录
for (int j = 0; j < inner.size(); j++) {
if(inner.get(j) == null || inner.get(j).equals("")){
continue;
}else{
if(j == 0 || j == 1){
value = (String) inner.get(j);
label = new Label(j, i + 1, value);
worksheet.addCell(label);
}else if(j == 2){
format = new WritableCellFormat(df);
Date date = (Date)inner.get(j);
jxl.write.DateTime dt = new jxl.write.DateTime(j, i + 1, date, format);
worksheet.addCell(dt);
}else{
Double d = (Double)inner.get(j);
label = new Label(j, i + 1, d.toString());
worksheet.addCell(label);
}
}
}
}
--------------------------------------------------------------------------------
**区劳动... 张小为....男...1963年9月 //原始数据
(DateCell)读时分秒问题+8
public static Date getLocalTime(Date date){
long Time=(date.getTime()/1000)-60*60*8;
date.setTime(Time*1000);
return date;
}
path应为:C:/Java/jdk1.5.0/bin;C:/Java/jdk1.5.0/jre/bin
java-home应为:C:/Java/jdk1.5.0
classpatch为:.;C:/Java/jdk1.5.0/lib;C:/Java/jdk1.5.0/lib/tools.jar
String sDate = "2100-01-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");
Date date = new Date();
date = sdf.parse(sDate);
Date date;
String time = sdf.format(date);
select case when SMALLITEMNAME= '比例' then (qoil+coil+moil)/3 else qoil+coil+moil end as 合计,qoil as 汽油,coil as 柴油,moil as 煤油 from test where bigitemname = '累计出厂完成总量' group by qoil,coil,moil,SMALLITEMNAME
tomcat连接池
1、将.jar文件放到tomcat lib下
2、conf->context.xml 加上
<Resource name="jdbc/oracle_shipping" auth="Container" type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@218.24.136.16:1521:shscshipping" username="shipping" password="shipping" maxActive="500" maxIdle="50" maxWait="-1" />
3、程序web.xml里面<resource-ref>
<description>Oracle Datasource</description>
<res-ref-name>jdbc/oracle_shipping</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4、public static Connection getCon(){
Connection con = null;
try{
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/oracle_manage");
con = ds.getConnection();
}catch(Exception e){
e.printStackTrace();
return null;
}
return con;
}
tomcat编码
server.xml下 <Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
// Cookie cookies[]=request.getCookies();
// Cookie sCookie = null;
// String svalue = null;
// String sname = null;
// for(int i=0; i<cookies.length; i++){
// sCookie = cookies[i];
// if(sCookie.getName().equals("userName")){
// svalue = sCookie.getValue();
// }
// }
/*cookie相关*************************************************************************************/
function setCookie(name,value,expireHours) {
var exp = new Date();
exp.setTime(exp.getTime() + expireHours * 3600 * 1000);
document.cookie = name + "=" + escape(codeCookie(value)) + " ; expires=" + exp.toGMTString() + " ; path=/";
}
//获取某键
function getCookie(name) {
var strArg = name + "=";
var nArgLen = strArg.length;
var nCookieLen = document.cookie.length;
var nEnd;
var i = 0;
var j;
while (i < nCookieLen) {
j = i + nArgLen;
if (document.cookie.substring(i,j) == strArg) {
nEnd = document.cookie.indexOf (";",j);
if (nEnd == -1) nEnd = document.cookie.length;
return decodeCookie(unescape(document.cookie.substring(j,nEnd)));
}
i = document.cookie.indexOf(" ",i) + 1;
if (i == 0) break;
}
return null;
}
//删除某键
function delCookie(name){
/*
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = getCookie(name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
*/
var exp = new Date();
exp.setTime(exp.getTime()-(86400*1000));
setCookie(name, "", exp);
}
//编码
function codeCookie(str) {
var strRtn="";
for(var i=str.length-1;i>=0;i--) {
strRtn+=str.charCodeAt(i);
if(i) strRtn+="a"; //用a作分隔符
}
return strRtn;
}
//解码
function decodeCookie(str) {
var strArr;
var strRtn="";
strArr=str.split("a");
for(var i=strArr.length-1;i>=0;i--)
strRtn+=String.fromCharCode(eval(strArr[i]));
return strRtn;
}
jsp上写
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/";
String basePath1 = application.getRealPath("") + "/" + "/export/";
关键字: dwr 错误:org.directwebremoting.util.CommonsLogging
dwr遇到这种错误:
org.directwebremoting.util.CommonsLoggingOutput error
严重: A request has been denied as a potential CSRF attack.
主要原因是因为:
页面URL被跨站了的服务所调用.
解决办法:
在web.xml里dwr的servlet部分加上一个参数:
Java代码
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
corssDomainSessionSecurity这个参数是在dwr版本2.0才有的.默认值为true,也就是禁止其他域发送请求,corssDomainSessionSecurity:设置成false能够从其他域进行请求,但是这样做会在安全性上有一些冒险.
//检查是否为任意数(实数)
function isNumeric(strNumber) {
var newPar=/^(-|/+)?/d+(/./d+)?$/
alert(newPar.test(strNumber));}
//检查是否为正数
function isUnsignedNumeric(strNumber) {
var newPar=/^/d+(/./d+)?$/
alert(newPar.test(strNumber)); }
//检查是否为整数
function isInteger(strInteger) {
var newPar=/^(-|/+)?/d+$/
alert(newPar.test(strInteger)); }
//检查是否为正整数
function isUnsignedInteger(strInteger) {
var newPar=/^/d+$/
alert(newPar.test(strInteger));}
xmlHttp.readyState
0 - (未初始化)还没有调用send()方法
1 - (载入)已调用send()方法,正在发送请求
2 - (载入完成)send()方法执行完成,已经接收到全部响应内容
3 - (交互)正在解析响应内容
4 - (完成)响应内容解析完成,可以在客户端调用了
xmlHttp.status
100 Continue
101 Switching protocols
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information
204 No Content
205 Reset Content
206 Partial Content
300 Multiple Choices
301 Moved Permanently
302 Found
303 See Other
304 Not Modified
305 Use Proxy
307 Temporary Redirect
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Timeout
409 Conflict
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
414 Request-URI Too Long
415 Unsupported Media Type
416 Requested Range Not Suitable
417 Expectation Failed
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
抽象类, 再抽象也还属于类的范畴, 它能包含一个类能包含的任何东西;
而接口已经不属于类了, 它是类的抽象.
除了直接实例化以外, 可以像使用普通类一样使用抽象类.
而对于接口, 几乎没有直接与之通信的可能性, 因为它几乎不提供具象的东西, 它是一种极端的抽象.
.接口可以多重继承 ,抽象类不可以
2.接口定义方法,不给实现;而抽象类可以实现部分方法
3.接口中基本数据类型的数据成员,都默认为static和final,抽象类则不是
如果事先知道某种东西会成为基础类,
那么第一个选择就是把它变成一个接口。
只有在必须使用方法定义或者成员变量的时候,才应考虑采用抽象类。