posts - 119, comments - 62, trackbacks - 0, articles - 0

          這是進行上傳

          import?java.sql.*;
          import?java.io.*;
          import?java.util.*;
          import?javax.servlet.*;
          import?javax.servlet.http.*;
          import?com.jspsmart.upload.*;

          public?class?UpLoad?extends?HttpServlet?{

          ????private?ServletConfig?config;
          ????/**
          ?????*?Init?the?servlet
          ?????*/
          ????final?public?void?init(ServletConfig?config)?throws?ServletException?{
          ????????this.config?=?config;
          ????}

          ????final?public?ServletConfig?getServletConfig()?{
          ????????return?config;
          ????}

          ????public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{
          ????????doPost(request,?response);
          ????}

          ????public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)?throws?ServletException,?IOException?{
          ????????System.out.println("============UpLoad?begin?ddd=============");
          ????????String?id?=?null;
          ????????SmartUpload?mySmartUpload?=?new?SmartUpload();
          ????????PrintWriter?out?=?response.getWriter();
          ????????java.io.File?file=null;
          ????????try?{
          ????????????Class.forName("oracle.jdbc.driver.OracleDriver");
          ????????}?catch?(java.lang.ClassNotFoundException?e)?{
          ????????????System.err.print("ClassNotFoundException:?"?+?e.getMessage());
          ????????}

          ????????try?{
          ????????????//Class.forName("oracle.jdbc.driver.OracleDriver");
          ????????????Connection?conn?=?DriverManager.getConnection("jdbc:oracle:thin:@10.216.0.2:1521:ORCL",?"test",?"test");

          ????????????conn.setAutoCommit(false);?//設置手動提交,以提高性能。
          ????????????Statement?stmt?=?conn.createStatement();
          ????????????//?Initialization
          ????????????mySmartUpload.initialize(config,?request,?response);

          ????????????mySmartUpload.setMaxFileSize(500?*?1024);

          ????????????//?Upload
          ????????????mySmartUpload.upload();

          ????????????//取得text框中的數據
          ????????????id?=?mySmartUpload.getRequest().getParameter("id");

          ????????????//取得文件和文件名
          ????????????com.jspsmart.upload.File?myFile?=?mySmartUpload.getFiles().getFile(0);
          ????????????String?fileName?=?myFile.getFileName();

          ????????????if?(!myFile.isMissing())?{
          ????????????????//save?data
          ????????????????myFile.saveAs(fileName,?mySmartUpload.SAVE_PHYSICAL);
          ????????????????System.out.println("============fileName="?+?fileName?+?"====");
          ????????????????file?=?new?java.io.File(fileName);

          ????????????????java.io.InputStream?inStream?=?new?java.io.FileInputStream(file);

          ????????????????int?fileSize?=?myFile.getSize();
          ????????????????byte[]?bytes?=?new?byte[fileSize];
          ????????????????System.out.println("============fileSize="?+?fileSize?+?"====");

          ????????????????//將數據插入到表中
          ????????????????String?strSql?=?"insert?into?test(id,name,content)?values(’"?+?id?+?"’,’"?+?fileName?+?"’,empty_blob())";
          ????????????????stmt.execute(strSql);

          ????????????????ResultSet?rs?=?stmt.executeQuery("select?content?from?zyw_test?where?id=’"?+?id?+?"’?for?update?");
          ????????????????if?(rs.next())?{
          ????????????????????oracle.sql.BLOB?blob?=?(?(oracle.jdbc.OracleResultSet)?rs).getBLOB("content");
          ????????????????????OutputStream?outStream?=?blob.getBinaryOutputStream();
          ????????????????????inStream.read(bytes);
          ????????????????????outStream.write(bytes);
          ????????????????????outStream.flush();
          ????????????????????stmt.execute("commit");
          ????????????????????outStream.close();
          ????????????????}
          ????????????????inStream.close();
          ????????????????stmt.close();

          ????????????????if(file!=null)//刪除文件
          ????????????????????file.delete();

          ????????????????out.println("upload?sucess");
          ????????????}?else?{
          ????????????????out.println("no?file");
          ????????????}
          ????????}?catch?(Exception?ex)?{
          ????????????if(file!=null)
          ????????????????file.delete();
          ????????????out.println("upload?fail");
          ????????????ex.printStackTrace();
          ????????}

          ????????System.out.println("============UpLoad?end=============");
          ????}
          }

          這是下載,進行顯示圖片


          import?java.sql.*;
          import?java.io.*;
          import?java.util.*;
          import?javax.servlet.*;
          import?javax.servlet.http.*;

          public?class?DownLoad?extends?HttpServlet{
          ????public?void?doGet(HttpServletRequest?request,?HttpServletResponse?response)
          ????????throws?ServletException,?IOException?{
          ????????doPost(request,response);
          ????}
          ????public?void?doPost(HttpServletRequest?request,?HttpServletResponse?response)
          ????????throws?ServletException,?IOException?{
          ????????System.out.println("======DownLoad?begin=====");
          ????????try{
          ????????????Class.forName("oracle.jdbc.driver.OracleDriver");
          ????????????Connection?conn?=?DriverManager.getConnection("jdbc:oracle:thin:@10.216.0.2:1521:ORCL","test","test");
          ????????????Statement?stmt=conn.createStatement();
          ????????????String?id=request.getParameter("id");
          ????????????String?sql="SELECT?id,?name,?content?FROM?test?where?id=’"+id+"’";
          ????????????ResultSet?rs=stmt.executeQuery(sql);
          ????????????if(rs.next()){
          ????????????????Blob?blob?=?rs.getBlob("content");
          ????????????????byte[]?ab?=?blob.getBytes(1,?(int)blob.length());
          ????????????????response.setContentType("image/jpeg");
          ????????????????ServletOutputStream?op?=?response.getOutputStream();
          ????????????????op.write(ab);
          ????????????????op.flush();
          ????????????????op.close();
          ????????????}
          ????????}catch(Exception?ex){
          ????????????ex.printStackTrace();
          ????????}
          ????????System.out.println("======DownLoad?end=====");
          ????}
          }

          posted @ 2006-07-24 23:59 Kevin Meng 閱讀(826) | 評論 (0)編輯 收藏

          我們在寫OA的時候經常遇到的問題就是員工圖片檔案的儲存問題,解決這個問題有兩個方法,

          1.JSP/html頁面里面讀取web服務器上的圖片,也就是把圖片放到(上傳)到web 服務器上,然后用html 語句讀取:

          <img src=" 絕對或相對路徑 " border="0" />

          2.就是上傳到數據庫里面(oracle).關于oracle 數據庫,它支持blob, 和clob, 分別對應著圖片和文本(長字符串)操作

          由于性能原因,我們還是要采用第二種方法,而且存到數據庫里面比較容易管理,是吧?

          ?

          首先,我們要解決上傳問題,這里采用普遍使用的apache commons 組件里面的FileUpload class.

          具體步驟如:

          ?

          DiskFileUpload dfu=new DiskFileUpload();

          ? dfu.setSizeMax(100000000);

          ? dfu.setSizeThreshold(100000);

          ? dfu.setRepositoryPath("f:\\public");

          ?

          ? try{

          ? List fileItems=dfu.parseRequest(request);

          ? Iterator i=fileItems.iterator();

          ?

          ? while(i.hasNext()){

          ? FileItem fi=(FileItem)i.next();

          ? if(!fi.isFormField()){

          ? name=fi.getName();?????????? ?????????

          ? size=fi.getSize();????????????????????

          ? if((name==null||name.equals(""))&&size==0)

          ? continue;

          ??????????????????????? }

          ? name=fi.getName();

          ? size=fi.getSize();

          ? (InputStream)is=fi.getInputStream();

          ?

          ??????????????????? }

          ?????????????? ?????

          上面的代碼是web服務器接受上傳的代碼,參考文件已經在我上篇寫的上傳文本文件里給出,今天,終于想明白了:

          dfu.setRepositoryPath("f:\\public"); 的意思

          原來是轉義字符也就是說\n\t等而要打印反斜杠要用\\,其實這個問題原先已經知道,可是由于經驗沒有寫過圖片上傳處理什么的,覺得很高深,也很可怕,哈哈,心里有點畏懼.看來基礎的東西,那怕一點點小細節也很重要,接著還有下面的java IO 問題.剛才讀core java 的時候突然發現在講io的時候特意提醒了這個問題,可是我沒有注意!

          ?

          通過上面的代碼已經實現文件上傳了.然后,我們要實現JDBC數據源鏈接,目的是要把數據插入到oracle.

          ??????????????????

          ? Context ctx=new InitialContext();

          ? DataSource ds=(DataSource)ctx.lookup("jdbc/asdbCoreDS");

          ? conn=ds.getConnection();

          ? conn.setAutoCommit(false);

          關于要import java.sql.* javax.sql.* java.naming.* 不再詳細敘述了

          接著根據很有用的一篇文章的提示,插入blob類型一定要先1.插入一個空的

          ? String insert=" insert into uploadpicture "+

          ??????????????? " values(?, empty_blob()) "???? ;

          2.然后找到這個blob的oracle 里面的游標:

          String findCursor=" select content "+

          ??????????????????? " from uploadpicture "+

          ??????????????????? " where name=?? for update ";

          注意這個for update(注意!!!必須加for update,這將鎖定該行,直至該行被修改完畢,保證不產生并發沖突。這里還是難以理解,先記下來吧)

          3.然后再修改

          String update=" update uploadpicture? "+

          ??????????????? " set content=? "+

          ??????????????? " where name=? ";

          這里的問號是為PreparedStatement參數處理而寫的!

          ?

          寫這個程序用到了oracle.sql.BLOB class ,這個類是用來操作BLOB數據類型的

          當我們通過ResultSet 對象得到

          blob=(BLOB)rs.getBlob(1);

          的時候我不知道如何處理了,Blob 是什么?String, int ,long? 我現在也不明白!估計CSDN上的人也不明白,否則我發個帖子半天沒有人回答,也許是很爛,也許是太簡單了,大家不屑一顧,看來我還要繼續追趕!

          不發牢騷了,回到程序里(總覺得自己的發散思維很強,看來寫程序的時候不能這樣,多虧java 是純面向對象語言,如果是過程就麻煩了)

          我們如何處理這個blob 呢?回答是,不管它是什么,直接寫入? BufferedOutputStream out1 =new BufferedOutputStream(blob.getBinaryOutputStream());

          這里是建立了緩沖寫如blob 的流(注意getBinaryOutputStream()已經不被贊成使用了,一定有更優秀的方法替代!),說到流,我到現在還有點暈,類很多,不知道究竟用哪個好!

          基礎的東西非常重要,這曾經是我的口頭禪,這里用到了流的讀入寫和寫入,有些流是從文件或其它位置上讀取字節(如, FileInputStream),有寫流是把字節組合成有用的數據(如, DataInputStream).我們讀取數字的時候,需要首先建議一個FileInpuStream, 然后, 再把該類的對象傳遞給DataInputStream

          FileInputStream fin=new FileInputStream(“emp.dat”);

          DataInputStream din=new DataInputStream(fin);//把fin傳遞給din

          double s=din.readDouble();

          默認情況下,流是沒有緩沖的, 如果使用緩沖就是

          DataInputStream din=new DataInputStream(

          new BufferedInputStream(new FileINputStream(“emp.dat”)));

          ?

          有了這點理解也很管用,

          ? BufferedOutputStream out1 =new BufferedOutputStream(blob.getBinaryOutputStream());

          就是建立一個緩沖寫的對象到blob.注意這里的out1 不是out,否則程序運行的時候不能打印了temp 數據了!

          已經準備好如何寫了, 可是如何讀呢?

          BufferedInputStream in=new BufferedInputStream(is);

          在我們上傳的時候? (InputStream)is=fi.getInputStream();

          讀取圖片為輸入的流.保存為is 對象,然后就用到這里了,準備好了讀和寫了,我們開始干活:

          int c;

          ? while((c=in.read())!=-1) {out1.write(c);}

          ? in.close();

          ? out1.close();

          通過緩沖一個個讀數據,然后一個個寫數據.-1 為文件的末尾,

          最后當讀寫完成后我們要關閉讀寫對象!

          程序分析就是這樣,以后還要對此問題進行研究,最后還要注意,

          <%@ page contentType="image/jpeg;charset=GBK"%>

          不是

          <%@ page contentType="text/html;charset=GBK"%>

          否則是以文字顯示圖片---亂碼.

          ?

          這里研究了上傳圖片到oralce 里面的程序,關于顯示還要麻煩一點,借助資料我實現了,明天再研究一下.

          ?

          ?//插入上傳圖片到數據庫
          <%@ page contentType="text/html;charset=GBK"%>
          <%@ page import="java.util.*"%>
          <%@ page import="java.io.*"%>
          <%@ page import="org.apache.commons.*"%>
          <%@ page import="org.apache.commons.fileupload.*"%>
          <%@ page import="java.sql.*"%>
          <%@ page import="javax.sql.*"%>
          <%@ page import="javax.naming.*"%>
          <%@ page import="oracle.sql.*"%>
          <html>
          ?
          ?
          ? <head>
          ??? <meta http-equiv="Content-Type" content="text/html; charset=GBK">
          ??? <title>getPicture.jsp</title>
          ? </head>
          ?
          ?
          ?
          ?
          ? <body>
          ?
          ? <%
          ? request.setCharacterEncoding("GBK");
          ???
          ?
          ? String name=null;
          ? long size=0;
          ?
          ? Connection conn=null;
          ? String insert=" insert into uploadpicture "+
          ??????????????? " values(?, empty_blob()) "???? ;
          ?
          ? String findCursor=" select content "+
          ??????????????????? " from uploadpicture "+
          ??????????????????? " where name=?? for update ";
          ?
          ? String update=" update uploadpicture? "+
          ??????????????? " set content=? "+
          ??????????????? " where name=? ";
          ? BLOB blob=null;
          ??? InputStream is=null;
          ?
          ? DiskFileUpload dfu=new DiskFileUpload();
          ? dfu.setSizeMax(100000000);
          ? dfu.setSizeThreshold(100000);
          ? dfu.setRepositoryPath("f:\\public");
          ?
          ? try{
          ? List fileItems=dfu.parseRequest(request);
          ? Iterator i=fileItems.iterator();
          ?
          ? while(i.hasNext()){
          ? FileItem fi=(FileItem)i.next();
          ? if(!fi.isFormField()){
          ? name=fi.getName();???????????????????
          ? size=fi.getSize();????????????????????
          ? if((name==null||name.equals(""))&&size==0)
          ? continue;
          ??????????????????????? }
          ? name=fi.getName();
          ? size=fi.getSize();
          ? is=fi.getInputStream();
          ?
          ??????????????????? }
          ???????????????????
          ? Context ctx=new InitialContext();
          ? DataSource ds=(DataSource)ctx.lookup("jdbc/asdbCoreDS");
          ? conn=ds.getConnection();
          ? conn.setAutoCommit(false);
          ?
          ? //step 1
          ? PreparedStatement ps=conn.prepareStatement(insert);
          ? ps.setString(1, name);
          ? int a=ps.executeUpdate();
          ? if(a>0)
          ? out.println("insert success!"+"<br>");
          ?
          ? //step 2
          ? ps=conn.prepareStatement(findCursor);
          ? ps.setString(1, name);?
          ? ResultSet rs=ps.executeQuery();
          ? while(rs.next())
          ? {
          ? blob=(BLOB)rs.getBlob(1);
          ?
          ?
          ?? out.println("find cursor success!"+"<br>");
          ?? out.println("cursor??????????? :"+blob+"<br>");
          ? //step 3
          ? ps=conn.prepareStatement(update);
          ? ps.setBlob(1, blob);
          ? ps.setString(2, name);
          ? ps.executeUpdate();
          ? ps.close();
          ? BufferedOutputStream out1 =new BufferedOutputStream(blob.getBinaryOutputStream());
          ? BufferedInputStream in=new BufferedInputStream(is);
          ? int c;
          ? while((c=in.read())!=-1) {out1.write(c);}
          ? in.close();
          ? out1.close();
          ? out.println("update success!"+"<br>");}
          ? conn.commit();
          ? }
          ?
          ? catch(SQLException se)
          ? {se.printStackTrace();}
          ? catch(FileUploadException fue)
          ? {fue.printStackTrace();}
          ? %>
          ?
          ?
          ? </body>

          </html>


          //顯示數據庫里面的圖片

          <%@ page contentType="image/jpeg;charset=GBK"%>
          <%@ page import="java.sql.*"%>
          <%@ page import="javax.sql.*"%>
          <%@ page import="javax.naming.*"%>
          <%@ page import="java.io.*"%>
          <%@ page import="com.sun.image.codec.jpeg.*"%>
          <%@ page import="javax.imageio.*"%>
          <%@ page import="java.util.*"%>
          <%@ page import="java.awt.image.*"%>


          <html>
          ?
          ?
          ?
          ? <head>
          ??? <meta http-equiv="Content-Type" content="image/jpeg; charset=GBK">
          ??? <title>showDBImage.jsp</title>
          ? </head>
          ?
          ?
          ?
          ? <body>
          ? <%
          ? String showImage=" select * "+
          ?????????????????? " from uploadpicture "+
          ?????????????????? " where name=′TXC with snow.JPG′ " ;
          ? Connection conn=null;
          ? BufferedInputStream inputImage=null;
          ?
          ?
          ? try{
          ? Context ctx=new InitialContext();
          ? DataSource ds=(DataSource)ctx.lookup("jdbc/asdbCoreDS");
          ? conn=ds.getConnection();
          ? Statement st=conn.createStatement();
          ? ResultSet rs=st.executeQuery(showImage);
          ? while(rs.next())
          ? {
          ? oracle.sql.BLOB blob=(oracle.sql.BLOB)rs.getBlob("content");
          ? inputImage =new BufferedInputStream(blob.getBinaryStream());
          ? /*String name=rs.getString(1);
          ? String content=rs.getString(2);
          ? out.println(name+"<br>");*/}
          ?
          ? BufferedImage image=null;
          ? image=ImageIO.read(inputImage);
          ?
          ? ServletOutputStream sos=response.getOutputStream();
          ? JPEGImageEncoder encoder=JPEGCodec.createJPEGEncoder(sos);
          ? encoder.encode(image);
          ? inputImage.close();
          ? conn.commit();
          ?
          ? }
          ? catch(SQLException se)
          ? {se.printStackTrace();
          ? conn.rollback();? }
          ? catch(IOException ie)
          ? {ie.printStackTrace();}?
          ? %>
          ?
          ? </body>


          </html>

          posted @ 2006-07-21 16:41 Kevin Meng 閱讀(1227) | 評論 (0)編輯 收藏

          新建立一個名為vb6.exe.manifest的文件,用文本編輯器打開,輸入以下內容:
          <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
          <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
          <assemblyIdentity
          ?? version="1.0.0.0"
          ?? processorArchitecture="X86"
          ?? name="Microsoft.VB6.VBnetStyles"
          ?? type="win32"
          />
          <description>VBnet Manifest for VB6 IDE</description>
          <dependency>
          ?? <dependentAssembly>
          ???? <assemblyIdentity
          ?????? type="win32"
          ?????? name="Microsoft.Windows.Common-Controls"
          ?????? version="6.0.0.0"
          ?????? processorArchitecture="X86"
          ?????? publicKeyToken="6595b64144ccf1df"
          ?????? language="*"
          ???? />
          ?? </dependentAssembly>
          </dependency>
          </assembly>
          然后把該文件放到與vb6.exe相同的目錄,啟動vb6.exe就可以了。

          posted @ 2006-06-15 13:46 Kevin Meng 閱讀(334) | 評論 (0)編輯 收藏

          內容摘要
          在基于ArcIMS的Web GIS的應用開發中,無論是通過HTML Viewer,還是ActiveX Connector 或者 Java Connector,我們經常需要提供圓形選擇的工具,在地圖上任意選擇圓心和半徑,進而查找位于該圓形區域內的某個圖層內的要素。在這種情況下,由于這個圓的圓心并不是來自某個點狀圖層的要素,而這個圓也不是由圖層中的點要素通過緩沖區生成,所以ArcIMS所提供的Buffer緩沖區功能無法直接調用,在這種情況下,我們可以采取其他的變通方式。
          過程描述
          在本文中,我們通過圓的內接多邊形法來實現。原理就是根據提供的圓心位置和半徑,生成一個接近圓形的內接48邊形,然后利用這個多邊形對象再結合Filter進行空間查詢。當然,內接多邊形的邊數越多就越接近圓,查詢結果就越精確。示例代碼如下:

          //Java
          public Polygon createCirlePolygon(Point pnt,double dRadius){
          double sineTheta, cosineTheta, twoPi;
          int numPoints = 48; //內接多邊形的邊數
          Polygon poly=new Polygon();
          Points pnts=new Points();
          twoPi = 3.1415 * 2.0;
          //構造多邊形
          for(int i=0;i<numPoints;i++){
          Point cpt = new Point();
          sineTheta = Math.sin(twoPi * (i*1.0/ numPoints));
          cosineTheta = Math.cos(twoPi * (i*1.0 / numPoints));
          cpt.setX(pnt.getX() + dRadius * cosineTheta);
          cpt.setY(pnt.getY() + dRadius * sineTheta);
          pnts.addPointObject(cpt);
          }
          pnts.addPointObject(pnts.getPointObject(0));
          Ring ring=new Ring();
          ring.setPoints(pnts);
          poly.addRing(ring);
          return poly;
          }

          //ASP.NET
          public IMSPolygon createCirlePolygon(IMSPoint pnt,double dRadius)
          {
          IMSPolygon poly=new IMSPolygon();
          double sineTheta, cosineTheta, twoPi;
          int numPoints = 48; //內接多邊形的邊數

          IMSPoints pnts=new IMSPoints();
          twoPi = 3.1415 * 2.0;

          //構造多邊形
          for(int i=0;i<numPoints;i++)
          {
          IMSPoint cpt = new IMSPoint();
          sineTheta = Math.Sin(twoPi * (i*1.0/ numPoints));
          cosineTheta = Math.Cos(twoPi * (i*1.0 / numPoints));
          cpt.X=(pnt.X + dRadius * cosineTheta);
          cpt.Y=(pnt.Y + dRadius * sineTheta);
          pnts.Add(cpt);
          }
          pnts.Add(pnts[0]);
          IMSParts parts=new IMSParts();
          parts.Add(pnts);
          poly.Parts=parts;
          return poly;
          }

          posted @ 2006-06-08 09:59 Kevin Meng 閱讀(186) | 評論 (0)編輯 收藏

          在oracle中用prepareStatement時,如果SQL語句寫成:
          select distinct(mpfullname) from suzhou.menpaipoint where mpfullname like '%?%'
          運行時就會出現ORA-01006錯誤,解決辦法是把SQL語句改成:
          select distinct(mpfullname) from suzhou.menpaipoint where mpfullname like ?
          而用
          stmt.setObject(1, "%關鍵字%");
          來付值就可以了。

          posted @ 2006-06-05 15:50 Kevin Meng 閱讀(9267) | 評論 (3)編輯 收藏

          (1)安裝Subversion;
          (2)安裝TortoiseSVN;
          (3)新建一個儲存庫目錄,例如d:\svn\suzhou;
          (4)進入d:\svn\suzhou,點擊鼠標右鍵盤TortoiseSVN->create reposity here...會生成一大堆目錄和文件;
          (5)進入d:\svn\suzhou\config,打開svnserve.conf文件,吧#password-db = passwd前面的"#"去掉;
          (6)進入d:\svn\suzhou\config,打開passwd文件,添加新用戶如:
          ameng=ameng
          test=test
          (7)進入DOS,運行命令:D:\Subversion\bin>svnserve -d -r d:\svn\suzhou,啟動服務;也可以把這個命令寫成一個runservice.bat,每次運行一下這個文件就可以了。
          (8)在Eclipse中選中一個項目文件夾,如d:\eclipse3.1\workspace\suzhou,選擇TortoiseSVN->Import把這個項目導到svn中。此刻要求輸入用戶名和密碼,輸入ameng密碼ameng就可以了。

          (9)在另一臺機器上安裝TortoiseSVN,作為客戶端,安裝完后,新建立一個空的文件夾,如d:\eclispe3.1\workspace\suzhou,進入該文件夾,點鼠標右鍵,選擇SVN Checkout...,URL of? Repository為:svn://servername/svn/suzhou,點OK就可以下載數據了。

          其他內容請看subversion和TortoiseSVN的幫助文檔

          posted @ 2006-06-04 13:17 Kevin Meng 閱讀(520) | 評論 (0)編輯 收藏

          以前作web開發,從來不用關心界面設計,現在不一樣了,當爹又當娘,玩起界面設計來了,談談心得吧。
          作為面向用戶的窗口,站點的主界面是最重要的,主界面的好壞,直接決定著界面設計的成功與否。而且主界面的風格決定著別的次要界面的風格,只有主界面定下來以后,才有可能開發出別的次要界面。
          web界面設計要用到兩個關鍵的軟件,即Dreamwaever和大名鼎鼎的PS。
          建議看兩本書:《Dreamweaver MX 2004完全自學手冊》中國青年出版社 強力推薦
          ????????????????????????????《PS CS中文版基礎與應用》海洋出版社 簡單,實用,便宜:) 當然PS的書還有很多
          步驟
          (1)用PS 設計總的界面框架;
          (2)用PS的切片工具把圖片切割,然后選擇文件->儲存為web所用格式。PS幫我們生成一個*.html文件和一個images文件夾;
          (3)用Deamweaver打開PS生成的html文件,看到了沒有,PS已經幫我們排版了!適當修改一下,就OK了。
          (4)把html文件和images文件夾拷貝到網站下面就可以了。

          posted @ 2006-05-31 17:18 Kevin Meng 閱讀(404) | 評論 (1)編輯 收藏

          There are 5 predefined entity references in XML:

          &lt; < less than
          &gt; > greater than
          &amp; & ampersand?
          &apos; ' apostrophe
          &quot; " quotation mark

          Note: Only the characters "<" and "&" are strictly illegal in XML. Apostrophes, quotation marks and greater than signs are legal, but it is a good habit to replace them.

          posted @ 2006-05-24 14:48 Kevin Meng 閱讀(617) | 評論 (0)編輯 收藏

          Dreamweaver里有一個設置:把不安全的帶碼安全的過濾掉,所以,從2004開始就會有每個頁面的第一個代碼
          "<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">"
          就是起過濾作用的,你把那句代碼刪掉就可以運行啦!

          posted @ 2006-05-23 16:41 Kevin Meng 閱讀(754) | 評論 (0)編輯 收藏

          在tomcat 5.5.9?,已經沒有Catalina.bat了,所以不用在里面寫-Xms128m -Xmx512之類的了。只要運行tomcat5w.exe,在java選項里面設置inital menory pool和maximum memory pool就可以了。

          posted @ 2006-05-22 17:07 Kevin Meng 閱讀(238) | 評論 (0)編輯 收藏

          僅列出標題
          共12頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 
          主站蜘蛛池模板: 和龙市| 海宁市| 栾城县| 岑巩县| 志丹县| 女性| 桐梓县| 留坝县| 嫩江县| 乌海市| 三明市| 孟津县| 双鸭山市| 海丰县| 丹寨县| 洪江市| 甘洛县| 时尚| 同德县| 肃北| 凤山市| 呈贡县| 屏山县| 松溪县| 娱乐| 贡觉县| 孙吴县| 大荔县| 德庆县| 金秀| 揭西县| 太仓市| 剑川县| 辉南县| 元朗区| 石狮市| 佛冈县| 城固县| 阿克陶县| 南宁市| 南丹县|