??xml version="1.0" encoding="utf-8" standalone="yes"?>浙江快乐12开奖结果:BlogJava - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/本站不再更新,欢迎光? <a >java开发技术网</a>zh-cnMon, 15 Oct 2018 08:58:03 GMTMon, 15 Oct 2018 08:58:03 GMT60 blackberry 日志 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2010/09/05/331088.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Sun, 05 Sep 2010 08:55:00 GMT//www.ot7t.com.cn/pdw2009/archive/2010/09/05/331088.html//www.ot7t.com.cn/pdw2009/comments/331088.html//www.ot7t.com.cn/pdw2009/archive/2010/09/05/331088.html#Feedback0//www.ot7t.com.cn/pdw2009/comments/commentRss/331088.html//www.ot7t.com.cn/pdw2009/services/trackbacks/331088.htmlpackage com.ff.utils;

import java.util.Date;

import net.rim.device.api.system.EventLogger;

/**
 * 日志?br />  * @author   2010-09-04
 *
 */
public class Logger {

 private static final String SEPARATOR = "   ";
 private static final long GUID = 0x4c9d3452d880a2f1L;
 private static final String APP_NAME = "xxxc ";

 private Logger() {
  EventLogger.register(GUID, APP_NAME, EventLogger.VIEWER_STRING);
 }

 private static Logger logger = new Logger();

 public static Logger getLogger() {
  return logger;
 }

 /**
  * Log the information.
  *
  * @param message
  *            The message you will log
  */
 public void info(String message) {
  if (message == null || message.trim().equals(""))
   return;
  String log = "INFO: " + new Date().toString() + SEPARATOR + message;
  try {
   log = new String(log.getBytes(), "UTF-8");
   byte[] msg_bytes = log.getBytes();
   EventLogger.logEvent(GUID, msg_bytes, EventLogger.ALWAYS_LOG);
  } catch (Exception ex) {
   System.err.println(ex);
  }
 }

 public void error(Exception e) {
  StringBuffer log = new StringBuffer();
  log.append("ERROR: " + new Date().toString() + SEPARATOR);
  log.append(e.getMessage() + " \r\n ");

  try {
   byte[] msg_bytes = new String(log.toString().getBytes(), "UTF-8").getBytes();
   EventLogger.logEvent(GUID, msg_bytes);
  } catch (Exception ex) {
   System.err.println(ex);
  }
 }
 
 public void error(String message, Exception e) {
  StringBuffer log = new StringBuffer();
  log.append("ERROR: " + new Date().toString() + SEPARATOR);
  if (message != null || !message.trim().equals("")) {
   log.append("message: " + message + " \r\n ");
  }
  log.append("error: " + e.getMessage() + " \r\n ");

  try {
   byte[] msg_bytes = new String(log.toString().getBytes(), "UTF-8").getBytes();
   EventLogger.logEvent(GUID, msg_bytes);
  } catch (Exception ex) {
   System.err.println(ex);
  }
 }
}


不管是在模拟器还是真机,日志还是必须?.....如果该文对你有用,为了表示对作者的支持,麻烦你单击一下下面的广告,谢?br />



]]>
libxml中使用xpath解析xml文件 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2010/08/23/329638.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Mon, 23 Aug 2010 04:06:00 GMT//www.ot7t.com.cn/pdw2009/archive/2010/08/23/329638.html//www.ot7t.com.cn/pdw2009/comments/329638.html//www.ot7t.com.cn/pdw2009/archive/2010/08/23/329638.html#Feedback2//www.ot7t.com.cn/pdw2009/comments/commentRss/329638.html//www.ot7t.com.cn/pdw2009/services/trackbacks/329638.html #include <libxml/xpath.h>                                                            
#include <stdio.h>                                                                   
                                                                                     
xmlDocPtr  getdoc (char *docname) {                                                  
 xmlDocPtr doc;                                                                     
 doc = xmlParseFile(docname);                                                       
                                                                                    
 if (doc == NULL ) {                                                                
  fprintf(stderr,"Document not parsed successfully. \n");                          
  return NULL;                                                                     
 }                                                                                  
                                                                                     
 return doc;                                                                        
}                                                                                    
                                                                                     
xmlXPathObjectPtr  getnodeset (xmlDocPtr doc, xmlChar *xpath){                       
                                                                                    
 xmlXPathContextPtr context;                                                        
 xmlXPathObjectPtr result;                                                          
                                                                                     
 context = xmlXPathNewContext(doc);                                                 
 if (context == NULL) {                                                             
  printf("Error in xmlXPathNewContext\n");                                         
  return NULL;                                                                     
 }                                                                                  
 result = xmlXPathEvalExpression(xpath, context);                                   
 xmlXPathFreeContext(context);                                                      
 if (result == NULL) {                                                              
  printf("Error in xmlXPathEvalExpression\n");                                     
  return NULL;                                                                     
 }                                                                                  
 if(xmlXPathNodeSetIsEmpty(result->nodesetval)){                                    
  xmlXPathFreeObject(result);                                                      
    printf("No result\n");                                                           
  return NULL;                                                                     
 }                                                                                  
 return result;                                                                     
}                                                                                    
                                                                                     
                                                                                     
                                                                                     
                                                                                     
                                                                                     
int main(int argc, char **argv) {                                                    
                                                                                     
 char *docname;                                                                     
 xmlDocPtr doc;                                                                     
 xmlChar *xpath = (xmlChar*) "//keyword";                                           
 xmlNodeSetPtr nodeset;                                                             
 xmlXPathObjectPtr result;                                                          
 int i;                                                                             
 xmlChar *keyword;                                                                  
                                                                                   
 if (argc <= 1) {                                                                   
  printf("Usage: %s docname\n", argv[0]);                                          
  return(0);                                                                       
 }                                                                                  
                                                                                     
 docname = argv[1];                                                                 
 doc = getdoc(docname);                                                             
 result = getnodeset (doc, xpath);                                                  
 if (result) {                                                                      
  nodeset = result->nodesetval;                                                    
  for (i=0; i < nodeset->nodeNr; i++) {                                            
   keyword = xmlNodeListGetString(doc, nodeset->nodeTab[i]->xmlChildrenNode, 1);  
    printf("keyword: %s\n", keyword);                                              
    xmlFree(keyword);                                                              
  }                                                                                
  xmlXPathFreeObject (result);                                                     
 }                                                                                  
 xmlFreeDoc(doc);                                                                   
 xmlCleanupParser();                                                                
 return (1);                                                                        
}                                                                                

demo.xml

 <?xml version="1.0" encoding="UTF-8"?>                 
<story>                                                
  <storyinfo>                                          
    <author>John Fleck</author>                        
    <datewritten>June 2, 2002</datewritten>            
    <keyword>example keyword?lt;/keyword>                
  </storyinfo>                                         
  <body>                                               
    <headline>This is the headline</headline>          
    <para>This is the body text.</para>                
  </body>                                              
</story>                                                
    
                                                                                     

恳请帮单击一下广?


]]>
SessionBean ejb入门例子 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2010/04/15/318414.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Thu, 15 Apr 2010 06:29:00 GMT//www.ot7t.com.cn/pdw2009/archive/2010/04/15/318414.html//www.ot7t.com.cn/pdw2009/comments/318414.html//www.ot7t.com.cn/pdw2009/archive/2010/04/15/318414.html#Feedback0//www.ot7t.com.cn/pdw2009/comments/commentRss/318414.html//www.ot7t.com.cn/pdw2009/services/trackbacks/318414.html 

做这么多年java第一次写ejb的例子,还需要继续努?br /> 下载地址



]]>
mysql字符串函数使用笔?/title><link>//www.ot7t.com.cn/pdw2009/archive/2009/05/19/271603.html</link><dc:creator>有猫相伴的日?/dc:creator><author>有猫相伴的日?/author><pubDate>Tue, 19 May 2009 14:50:00 GMT</pubDate><guid>//www.ot7t.com.cn/pdw2009/archive/2009/05/19/271603.html</guid><wfw:comment>//www.ot7t.com.cn/pdw2009/comments/271603.html</wfw:comment><comments>//www.ot7t.com.cn/pdw2009/archive/2009/05/19/271603.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/pdw2009/comments/commentRss/271603.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/pdw2009/services/trackbacks/271603.html</trackback:ping><description><![CDATA[<br /> <br /> 最近要开始使用MySQL记点笔记?br /> <br /> select left("//www.webmasterclub.org/&id=1310",instr("//www.webmasterclub.org/&id=1310",'&')-1 )<br /> <br /> left函数,返回左边特定长度的字符串函数?br /> <br /> instr(str,substr)返回substr字符串在str字符串中的位置?br /> <dt><code><font face="新宋?><strong class="yibqv">LOCATE(substr,str)</strong></font></code> locate也是返回字符串的位置,但locate函数,子字符串在前面?br /> <br /> substring(str,2,9),返回str字符串中从第2个位置开始的9个字符。用法与mid相同<br /> <br /> insert(str,startpos,len,substr) 字符串替换函数,把str字符串startpos开始,len结束的字符串用substr替换 <dt><br /> select replace ('aaBBC','aB',"PPPPPP") 字符串规? <dt><br /> 注意:mysql处理字符位置时是?为序列启始?br /> </dt><img src ="//www.ot7t.com.cn/pdw2009/aggbug/271603.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/pdw2009/" target="_blank">有猫相伴的日?/a> 2009-05-19 22:50 <a href="//www.ot7t.com.cn/pdw2009/archive/2009/05/19/271603.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android 弹出?/title><link>//www.ot7t.com.cn/pdw2009/archive/2009/04/22/267053.html</link><dc:creator>有猫相伴的日?/dc:creator><author>有猫相伴的日?/author><pubDate>Wed, 22 Apr 2009 14:31:00 GMT</pubDate><guid>//www.ot7t.com.cn/pdw2009/archive/2009/04/22/267053.html</guid><wfw:comment>//www.ot7t.com.cn/pdw2009/comments/267053.html</wfw:comment><comments>//www.ot7t.com.cn/pdw2009/archive/2009/04/22/267053.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>//www.ot7t.com.cn/pdw2009/comments/commentRss/267053.html</wfw:commentRss><trackback:ping>//www.ot7t.com.cn/pdw2009/services/trackbacks/267053.html</trackback:ping><description><![CDATA[<br /> <br /> 代码片段<br /> <div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">    </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> QuitApp() {<br />         </span><span style="color: #0000ff">new</span><span style="color: #000000"> AlertDialog.Builder(Frm_Addbills.</span><span style="color: #0000ff">this</span><span style="color: #000000">).setTitle(</span><span style="color: #000000">"</span><span style="color: #000000">提示</span><span style="color: #000000">"</span><span style="color: #000000">).setMessage(<br />                 </span><span style="color: #000000">"</span><span style="color: #000000">确定退?</span><span style="color: #000000">"</span><span style="color: #000000">).setIcon(R.drawable.quit).setPositiveButton(</span><span style="color: #000000">"</span><span style="color: #000000">确定</span><span style="color: #000000">"</span><span style="color: #000000">,<br />                 </span><span style="color: #0000ff">new</span><span style="color: #000000"> DialogInterface.OnClickListener() {<br />                     </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> onClick(DialogInterface dialog, </span><span style="color: #0000ff">int</span><span style="color: #000000"> whichButton) {    <br />                         billdb.close();<br />                         finish();<br />                     }<br />                 }).setNegativeButton(</span><span style="color: #000000">"</span><span style="color: #000000">取消</span><span style="color: #000000">"</span><span style="color: #000000">,<br />                 </span><span style="color: #0000ff">new</span><span style="color: #000000"> DialogInterface.OnClickListener() {<br />                     </span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> onClick(DialogInterface dialog, </span><span style="color: #0000ff">int</span><span style="color: #000000"> whichButton) {<br />                     }<br />                 }).show();<br /> <br />     }</span></div> <br /> copy from ColaBox_source  未完待续..<br /> <br /><img src ="//www.ot7t.com.cn/pdw2009/aggbug/267053.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="//www.ot7t.com.cn/pdw2009/" target="_blank">有猫相伴的日?/a> 2009-04-22 22:31 <a href="//www.ot7t.com.cn/pdw2009/archive/2009/04/22/267053.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>android 中使用sqLite例子 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2009/04/19/266460.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Sun, 19 Apr 2009 14:20:00 GMT//www.ot7t.com.cn/pdw2009/archive/2009/04/19/266460.html//www.ot7t.com.cn/pdw2009/comments/266460.html//www.ot7t.com.cn/pdw2009/archive/2009/04/19/266460.html#Feedback4//www.ot7t.com.cn/pdw2009/comments/commentRss/266460.html//www.ot7t.com.cn/pdw2009/services/trackbacks/266460.html今晚写了个sqLite的应用例子,粘一下代码,就不详细详述了?br />

package com.peidw.demo;

import java.io.FileNotFoundException;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log;

/**
 * 数据库操?br />  * 
@author peidw 2009-04-06
 *
 
*/
public class DatabaseHelper extends SQLiteOpenHelper{
    
private Context ctx = null;
    
    
public DatabaseHelper(Context context, String name, CursorFactory factory, int version) {
        
super(context, name, factory, version);

    }
    

    @Override
    
public void onCreate(SQLiteDatabase arg0) {
        
    }
    @Override
    
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
        
    }

    

}
package com.peidw.demo;

import java.util.*;
import android.app.*;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.os.*;
import android.util.*;

/**
 * 操作数据库例?br />  * 
@author peidw 2009-04-19
 *
 
*/
public class ConnectionProvider {
    
    
private static  SQLiteDatabase db=null;
    
    
    
public  ConnectionProvider(Context ctx) {
        
if (db==null){
            Log.v(
"ConnectionProvider","ctx="+ctx.toString());
            DatabaseHelper dbHelper
=new DatabaseHelper(ctx,"StudDB"null,1);
            db
= dbHelper.getWritableDatabase();
        }
    }
    
    
public SQLiteDatabase getConnection (){
        
return db;
    }
    
    
public void closeConnection (){
        db.close();
    }
    
/**
     * 判断表是否存?br />      * 
@param tablename
     * 
@return
     
*/
    
public boolean isTableExits(String tablename){
        
boolean result=false;//表示不存?/span>
        String str="select count(*) xcount  from sqlite_master where table='"+tablename+"'";
        Cursor c 
= db.rawQuery(str,null);
        
int xcount=c.getColumnIndex("xcount");
        
if(xcount!=0){
            result
=true//表存?/span>
        }
        
return result;
    }
}

在程序中操作数所的代码片?br />

 ConnectionProvider cp
=new ConnectionProvider(this.getBaseContext());
        
// if(cp.isTableExits(TABLE_NAME)){//表已存在
             createTable(cp);
            queryTable(cp);
        
// }else{//表不存在
        
//     createTable();
        
// }



public void createTable( ConnectionProvider cp){
        

        SQLiteDatabase db
= cp.getConnection();
        db.execSQL(
"CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ("
                
+ "stud_no" + " TEXT,"
                
+ "stud_name" + " TEXT"
                
+ ");");
    
        String sql_1 
= "insert into "+ TABLE_NAME +" (stud_no, stud_name) values('S777', 'Lily Chang');";
        String sql_2 
= "insert into " + TABLE_NAME +" (stud_no, stud_name) values('S888', 'Linda Lin');";
        String sql_3 
= "insert into " + TABLE_NAME +" (stud_no, stud_name) values('S999', 'Bruce Wang');";
        db.execSQL(sql_1); db.execSQL(sql_2); db.execSQL(sql_3);
    }
    
public void queryTable(ConnectionProvider cp){
        String str
="select * from "+TABLE_NAME;
        Cursor c 
=cp.getConnection().rawQuery(str,null);
        Log.v(
"loginactive","查询记录");
        Log.v(
"loginactive",String.valueOf(c.getCount()) );
        
if(c!=null){
            c.moveToFirst();
            
while(!c.isLast()){
                Log.v(
"loginactive","outp.");
                String stud_no
=c.getString(0);
                String stud_name
=c.getString(1);
                System.out.println(stud_no
+"---------------"+stud_name);
                Log.v(
"loginactive",stud_no+"---------------"+stud_name);
                c.moveToNext();
            }
        }

    }
麻烦帮单击一次广告了 !!?



]]>
Android布局(Layout) - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2009/04/15/265850.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Wed, 15 Apr 2009 13:53:00 GMT//www.ot7t.com.cn/pdw2009/archive/2009/04/15/265850.html//www.ot7t.com.cn/pdw2009/comments/265850.html//www.ot7t.com.cn/pdw2009/archive/2009/04/15/265850.html#Feedback0//www.ot7t.com.cn/pdw2009/comments/commentRss/265850.html//www.ot7t.com.cn/pdw2009/services/trackbacks/265850.html <LinearLayout xmlns:android="//schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
节点作为开头。一个布局容器里可以包?或多个布局容器。LinearLayout线性的布局方式,要么上下,要么左右的添加控件,很常?br />

      AbsoluteLayout可以让子元素指定准确的x/y坐标值,并显示在屏幕上?0, 0)为左上角,当向下或向右移动时,坐标值将变大。AbsoluteLayout没有页边框,允许元素之间互相重叠(尽管不推荐)。我们通常不推荐使用AbsoluteLayout,除非你有正当理由要使用它,因为它使界面代码太过刚性,以至于在不同的设备上可能不能很好地工作?nbsp;


     RelativeLayout允许子元素指定他们相对于其它元素或父元素的位置(通过ID指定)。因此,你可以以右对齐,或上下,或置于屏幕中央的形式来排列两个元素。元素按顺序排列,因此如果第一个元素在屏幕的中央,那么相对于这个元素的其它元素将以屏幕中央的相对位置来排列。如果使用XML来指定这个layout,在你定义它之前,被关联的元素必须定义?
这是一个计数器的例子?br />
  FrameLayout是最简单的一个布局对象。它被定制为你屏幕上的一个空白备用区域,之后你可以在其中填充一个单一对象 ?比如,一张你要发布的图片。所有的子元素将会固定在屏幕的左上角;你不能为FrameLayout中的一个子元素指定一个位置。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)?

//blog.chinaunix.net/u2/86463/showart_1674836.html




]]>
Android实现不同Active页面间的跳转 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2009/04/13/265195.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Sun, 12 Apr 2009 16:40:00 GMT//www.ot7t.com.cn/pdw2009/archive/2009/04/13/265195.html//www.ot7t.com.cn/pdw2009/comments/265195.html//www.ot7t.com.cn/pdw2009/archive/2009/04/13/265195.html#Feedback1//www.ot7t.com.cn/pdw2009/comments/commentRss/265195.html//www.ot7t.com.cn/pdw2009/services/trackbacks/265195.html              intent.setClass(ErrorPageActive.this, LoginActive.class);   
             startActivity(intent);  

就这么简单,如果要把一个页面的参数带到另一个页面,则需?br />  Bundle bundle = new Bundle();   
 bundle.putString("USERNAME", et_username.getText().toString());   
intent.putExtras(bundle);

通过以上三行代码现实,带参数跳转?

]]>
Android应用程序四大组件 - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2009/04/13/265193.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Sun, 12 Apr 2009 16:04:00 GMT//www.ot7t.com.cn/pdw2009/archive/2009/04/13/265193.html//www.ot7t.com.cn/pdw2009/comments/265193.html//www.ot7t.com.cn/pdw2009/archive/2009/04/13/265193.html#Feedback2//www.ot7t.com.cn/pdw2009/comments/commentRss/265193.html//www.ot7t.com.cn/pdw2009/services/trackbacks/265193.html对于一个Android应用程序来说,是由四种构造块组织而成的,这四种构造块如下?/span>

    Activity

    Intent Receiver

    Service

    Content Provider


  但是,并不是每一个Android应用程序都需要这四种构造块,这不是必须的,某些时候,我们只需要这四种中的几种组合成我们的应用?

    当我们明确了我们的应用需要哪些构造块后,我们就需要在AndroidManifest.xml中登记这些构造块的清单。这是一个XML配置文件,这个配置文件用于定义我们的应用程序的组件、组件的功能及必要条件等。这个配置文件是每个Android应用必需的。对于AndroidMainfest.xml的Schema,参考SDK包附带的文。以下,我们对四种构造块做一些说明:

一、Activity

    Activity是Android构造块中最基本的一种,在应用中,一个activity通常就是一个单独的屏幕。每一个activity都被实现为一个独立的类,并且继承于Activity这个基类。这个activity类将会显示由几个Views控件组成的用户接口,并对事件做出响应。大部份的应用都会包含多个的屏幕。例如,一个短消息应用程序将会有一个屏幕用于显示联系人列表,第二个屏幕用于写短消息,同时还会有用于浏览旧短消息及进行系统设置的屏幕。每一个这样的屏幕,就是一个activity。从一个屏幕导航到另一个屏幕是很简单的。在一些应用中,一个屏幕甚至会返回值给前一个屏幕?/span>

    当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个屏幕。当屏幕不再使用时,还可以从历史堆栈中删除。默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕?/span>

    Android使用了Intent这个特殊类,实现在屏幕与屏幕之间移动。Intent类用于描述一个应用将会做什么事。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:MAIN(activity的门户)、VIEW、PICK、EDIT等。而动作对应的数据则以URI的形式进行表示。例如:要查看一个人的联系方式,你需要创建一个动作类型为VIEW的intent,以及一个表示这个人的URI?/span>

    与之有关系的一个类叫IntentFilter。相对于intent是一个有效的做某事的请求,一个intent filter则用于描述一个activity(或者Intent Receiver)能够操作哪些intent。一个activity如果要显示一个人的联系方式时,需要声明一个IntentFilter,这个IntentFilter要知道怎么去处理VIEW动作和表示一个人的URI。IntentFilter需要在AndroidManifest.xml中定义?/span>

   通过解析各种intent,从一个屏幕导航到另一个屏幕是很简单的。当向前导航时,activity将会调用startActivity(Intent myIntent)方法。然后,系统会在所有安装的应用程序中定义的IntentFilter中查找,找到最匹配myIntent的Intent对应的activity。新的activity接收到myIntent的通知后,开始运行。当startActivity方法被调用将触发解析myIntent的动作,这个机制提供了两个关键好处:

    A、Activities能够重复利用从其它组件中以Intent的形式产生的一个请求;

    B、Activities可以在任何时候被一个具有相同IntentFilter的新的Activity取代?/span>

二、Intent Receiver

    当你希望你的应用能够对一个外部的事件(如当电话呼入时,或者数据网络可用时,或者到了晚上时)做出响应,你可以使用一个Intent Receiver。虽然Intent Receiver在感兴趣的事件发生时,会使用NotificationManager通知用户,但它并不能生成一个UI。Intent Receiver在AndroidManifest.xml中注册,但也可以在代码中使用Context.registerReceiver()进行注册。当一个intent receiver被触发时,你的应用不必对请求调用intent receiver,系统会在需要的时候启动你的应用。各种应用还可以通过使用Context.broadcastIntent()将它们自己的intent receiver广播给其它应用程序?/span>

三、Service

    一个Service是一段长生命周期的,没有用户界面的程序。比较好的一个例子就是一个正在从播放列表中播放歌曲的媒体播放器。在一个媒体播放器的应用中,应该会有多个activity,让使用者可以选择歌曲并播放歌曲。然而,音乐重放这个功能并没有对应的activity,因为使用者当然会认为在导航到其它屏幕时音乐应该还在播放的。在这个例子中,媒体播放器这个activity会使用Context.startService()来启动一个service,从而可以在后台保持音乐的播放。同时,系统也将保持这个service一直执行,直到这个service运行结束。另外,我们还可以通过使用Context.bindService()方法,连接到一个service上(如果这个service还没有运行将启动它)。当连接到一个service之后,我们还可以service提供的接口与它进行通讯。拿媒体播放器这个例子来说,我们还可以进行暂停、重播等操作?/span>

四、Content Provider

    应用程序能够将它们的数据保存到文件中、SQL数据库中,甚至是任何有效的设备中。当你想将你的应用数据与其它的应用共享时,Content Provider将会很有用。一个Content Provider类实现了一组标准的方法,从而能够让其它的应用保存或读取此Content Provider处理的各种数据类型?/span>

    更详细的Content Provider资料,可以参考附带文?中的Accessing Content Providers?br />
五、Intent?br />     Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,?Intent传递给调用的组件,并完成组件的调用。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调 用者之间的解耦?br />



]]>
让tomcat支持ssi - 四川福利彩票快乐12快乐12开奖直播快乐12开奖辽宁福彩快乐12快乐彩12选5走势图//www.ot7t.com.cn/pdw2009/archive/2009/03/06/258270.html有猫相伴的日?/dc:creator>有猫相伴的日?/author>Fri, 06 Mar 2009 09:24:00 GMT//www.ot7t.com.cn/pdw2009/archive/2009/03/06/258270.html//www.ot7t.com.cn/pdw2009/comments/258270.html//www.ot7t.com.cn/pdw2009/archive/2009/03/06/258270.html#Feedback0//www.ot7t.com.cn/pdw2009/comments/commentRss/258270.html//www.ot7t.com.cn/pdw2009/services/trackbacks/258270.html1.把文?CATALINA_HOME/server/lib/servlets-ssi.renametojar重新命名?CATALINA_HOME/server/lib/servlets-ssi.jar.

2.在文?CATALINA_HOME/conf/web.xml中,你需要把两个地方的注释去掉,servlet 声明和servlet mapping?servlet 声明看起来类似于下面?

<servlet>
<servlet-name>ssi</servlet-name>
...
</servlet>


而servlet mapping看起来类似于下面?

<servlet-mapping>
<servlet-name>ssi</servlet-name>
<url-pattern>*.shtml</url-pattern>
</servlet-mapping>


这些servlet 声明和mapping可以交替地加入到你的Web 应用程序部署描述符中?br />
SSI基本指令

        1?span class="hilite2">SSI指令的语法格式如下:
            <!--#element [attribute=value] [attribute=value] ... -->
               这些指令以HTML注释的形式出现,所以如果你没有正确设置SSI,浏览器会忽略这些指令。如果你正确设置?span class="hilite2">SSI,这些指令会被相应的结果替换?
        2、config
            <!--#config timefmt="%B %Y" -->
            config用来指定返回给客户端浏览器的错误信息、日期和文件大小的格式?
         常用指令?
            <!--#config errmsg="自定义错误信?-->
            <!--#config sizefmt="显示单位"-->
            <!--#config timefmt="显示格式"-->
         参数?
             errmsg 自定?span class="hilite2">SSI执行错误信息,可以为任何你喜欢的方式?
             sizefmt 文件大小显示方式,默认为字节方式("bytes")可以改为千字节方?"abbrev")
             timefmt 时间显示方式,最灵活的配置属性?
         Eg:
             <!--#config errmsg="服务器执行错误,请联系管理员 yiho@126.com,谢谢!"-->
             <!--#fsize file="不存在的文件.htm"-->

             以千字节方式显示文件大小
             <!--#config sizefmt="abbrev"-->
             <!--#fsizefile="news.htm"-->
            以特定的时间格式显示时间
    <!--#config timefmt="%Y?%m?d?星期%W 北京时间%H:%M:%s?Y年已过去?j?今天?Y年的?U个星?-->
    <!--#echo var="DATE_LOCAL"--> 显示今天是星期几,几月,时区
    <!--#config timefmt="今天%A, %B ,服务器时区是 %z,是"-->
    <!--#echo var="DATE_LOCAL"-->   
3、echo
    echo用来输出变量的值?
     <!--#echo var="VARIABLE_NAME" -->
     <!--#echo var="变量名称"-->
    本文?名称:程序代?
     <!--#echo var="DOCUMENT_NAME"-->
    现在时间:程序代?
     <!--#echo var="DATE_LOCAL"-->
    你的IP地址是程序代?
     <!--#echo var="REMOTE_ADDR"-->
4、exec
   <!--#exec cmd="COMMOND" -->
   exec用来执行命令?将某一外部程序的输出插入到页面中。可插入CGI程序或者是常规应用程序的输入,这取决于使用的参数是cmd还是cgi?
    <!--#exec cmd="文件名称"-->
    <!--#exec cgi="文件名称"-->
    <!--#exec cmd="文件名称"-->
    <!--#exec cgi="文件名称"-->
   参数?
    cmd 常规应用程序
    cgi CGI脚本程序
   Eg?
    <!--#exec cmd="cat /etc/passwd"-->将会显示密码文件
    <!--#exec cmd="dir /b"-->将会显示当前目录下文件列?
    <!--#exec cgi="/cgi-bin/gb.cgi"-->将会执行CGI程序gb.cgi?
    <!--#exec cgi="/cgi-bin/access_log.cgi"-->将会执行CGI程序access_log.cgi?
   注意?
    从上面的示例可以看出,这个指令相当方便,但是也存在安全问题?
   禁止方法?
    .Apache,将access.conf中的"Options Includes ExecCGI"这行代码删除?
    .在IIS中,要禁?#exec 命令,可修改 SSIExecDisable 元数据库?
5、flastmod
   <!--#flastmod file="FILE_NAME" -->
   flastmod返回FILE_NAME所代表的文件的最后修改时间?
   Eg:
    <!--#flastmod file="news.htm"-->
     将当前目录下news.htm文件的最近更新日期插插入到当前页?
6、fsize
   <!--#fsize file="FILE_NAME" -->
   fsize返回FILE_NAME所代表的文件的大小?
   <!--#flastmod file="文件名称"-->
   <!--#fsize file="文件名称"-->
   参数?
    file 指定包含文件相对于本文的位??info.txt 表示当前目录下的的info.txt文
    virtual 指定相对于服务器文根目录的位置 ?/hoyi/info.txt 表示
   注意?
    文件名称必须带有扩展名?
   Eg:
    <!--#fsize file="news.htm"-->
     将当前目录下news.htm的文件大小入到当前页?
7、include
   <!--#include file="文件名称"-->
   <!--#include virtual="文件名称"-->
   include插入FILE_NAME所代表的文件的内容?
   file 文件名是一个相对路径,该路径相对于使用 #include 指令的文?所在的目录。被包含文件可以在同一级目录或其子目录中,但不能在上一级目录中。如表示当前?nbsp;  录下的的nav_head.htm文,则为file="nav_head.htm"?
   virtual 文件名是 Web 站点上的虚拟目录的完整路径。如表示相对于服务器文根目录下hoyi目录下的nav_head.htm文件;则为file="/hoyi/nav_head.htm"
   参数?
    file 指定包含文件相对于本文的位?
    virtual 指定相对于服务器文根目录的位置
   注意?
    1、文件名称必须带有扩展名?
    2、被包含的文件可以具有任何文件扩展名,我觉得直接使用htm扩展名最方便
8、printenv
   <!--#printenv -->
    printenv返回所有定义的变量的列表?
9、set
   <!--#set var="VARIABLE_NAME" value="VARIABLE_VALUE" -->
   set用来自定义变量。在SSI中有许多标准的变?如DATE_LOCAL),其中也包括对于CGI程序有效的环境变量?
10、if elif endif else
   if elif endif else用来条件选择?
   #if
   作用?创建可以改变数据的页面,这些数据根据使用if语句时计算的要求予以显示?
     语法?程序代码:
    <!--#if expr="$变量?"变量值A""-->
    显示内容
     <!--#elif expr="$变量?"变量值B""-->
    显示内容
     <!--#else-->
    显示内容
     <!--#endif"-->
    Eg:
     <!--#if expr="$SERVER_NAME="hoyi.zb169.net""-->
      中华E搜网//www.eshoo.com.cn
     <!--#elif expr="$SERVER_NAME="linux.cqi.com.cn"" -->
      中华E搜网//www.eshoo.com.cn/bbs
     <!--#else-->
      中华E搜网//www.eshoo.com.cn
     <!--#endif"-->
注意?用于前面指令中的反斜杠,是用来代换内部的引号,以便它们不会被解释为结束表达式。不可省略?
 
六、普通用?
1、下面是一些比较常规的SSI的用法:
   最后修改时?
    有两种方法:
    This file last modified <!--#flastmod file="ssi.shtml" -->
    This file last modified <!--#echo var="LAST_MODIFIED" -->
   包含一个footer
    <!--#include virtual="/footer.html" -->
   设置errmsg
    <!--#config errmsg="[error message!]" -->
   设置sizefmt
    <!--#config sizefmt="bytes|abbrev" -->
   执行命令
   <!--#exec cmd="dir" -->
2、高?span class="hilite2">SSI
   XSSI(Extended SSI)是一组高?span class="hilite2">SSI指令,内置于Apache 1.2或更高版本的mod-include模块之中?
    其中可利用的的指令有?
    <!--#printenv-->
    <!--#printenv-->
    <!--#printenv-->
    <!--#printenv-->
   作用?显示当前存在于WEB服务器环境中的所有环境变量?
   ??set
    作用:可给变量赋值,以用于后面的if语句?
    语法:程序代?
      <!--#set var="变量?value="变量?-->
    参数:无
    示例?程序代码:
     <!--#set var="color"value="红色"-->
     SSI允许自定义变量,这些变量可以用来进行比较和条件判断?
    定义变量
     <!--#set var="date" value="${DATE_LOCAL}_${DATE_GMT}" -->
    条件表达?
     <!--#if expr="test_condition" -->
     <!--#elif expr="test_condition" -->
      <!--#else -->
     <!--#endif -->





]]>