我要啦免费统计

          微藍領(lǐng)域

          我的學(xué)習(xí)檔案館
          posts - 19, comments - 57, trackbacks - 0, articles - 57
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          JSP生成HTML靜態(tài)頁面

          Posted on 2007-08-18 09:21 hilor 閱讀(712) 評論(1)  編輯  收藏 所屬分類: J2EE

          <%@ page contentType="text/html; charset=gb2312"%>
          <%@ page import="java.util.*"%>
          <%@ page import="java.sql.*"%>
          <%@ page import="java.io.*"%>
          <%@ page import="org.apache.commons.fileupload.*" %>
          <%@ page import="java.text.*" %>
          <%@ page import="javax.servlet.*,javax.servlet.http.*"%>
          <jsp:useBean id="conn" scope="page" class="DBLink.DBSQL"/>
          <jsp:useBean id="ReadTemplates" scope="page" class="ball.news.ReadTemplates"/>
          <jsp:useBean id="WriteHtml" scope="page" class="ball.news.WriteHtml"/>
          <jsp:useBean id="ReplaceAll" scope="page" class="ball.news.ReplaceAll"/>
          <%
              //request.setCharacterEncoding("gb2312");
             
            try{
                  String dir=request.getRealPath(".");
                  DiskFileUpload fu = new DiskFileUpload();
            
                 
                  fu.setSizeMax(4194304);                 //設(shè)置文件大小.  這里文件只能上傳4M以內(nèi)的

                  fu.setSizeThreshold(4096);              //設(shè)置緩沖大小.

                  fu.setRepositoryPath(dir+"/ball/news/images");      //設(shè)置臨時目錄.
           
                  List fileItems = fu.parseRequest(request);  //解析請求,返回一個集合.
                 

                  Iterator i = fileItems.iterator();
                  String fieldvalue="";
                  String ff = "";
            String picname="false";
            Object tt = "";
            Vector v = new Vector();
            
                  while(i.hasNext())
               {
              
                   FileItem fi = (FileItem)i.next();
           
              if(fi.isFormField())                        //這是用來確定是否為文件屬性,
               {
               
               String fieldName = fi.getFieldName();     //這里取得表單名
               fieldvalue=fi.getString();        //這里取得表單值
               
            v.addElement(fieldvalue);
              
               }
           
               else                                           //這里開始外理文件
            {
            
             File fullFile = new File(fi.getName());
             ff = fullFile.getName();
             String rr = "";


             java.util.Date date2 = new java.util.Date();
             SimpleDateFormat formatter = new SimpleDateFormat ("yyyyMMddHHmmss");   //取得時間
                String str2 = formatter.format(date2);
             StringTokenizer st = new StringTokenizer(ff,".");
                   if (st.hasMoreTokens()){
                    String test12 = st.nextToken();
                    rr = st.nextToken();
                    //System.out.println(rr);
                   }
                   if (rr.equals("")&&!rr.equals("gif")&&!rr.equals("jpg")&&!rr.equals("jpeg"))
                {
              picname = "false";
             }
             
             else
                {
                       picname = str2+"."+rr;     //以時間為圖片名稱

                          File savedFile = new File(getServletContext().getRealPath("/ball/news/images/"),picname);
            
                          fi.write(savedFile);     //上傳到服務(wù)器
                      }
             //System.out.println("picname------------------------"+picname);
               }
            //System.out.println("v------------------------"+v);
             }
              String[] flag = {"<temp_title>","<temp_date>","<temp_author>","<temp_content>","<str_Temp>","<temp_picture>"};

              //將數(shù)據(jù)寫入到數(shù)據(jù)庫
              Object newtype1 = v.elementAt(0);
                 String t = newtype1.toString();
              int newtype = Integer.parseInt(t);
              Object rowid1 = v.elementAt(1);
              String rowid = rowid1.toString();
              Object title1 = v.elementAt(2);
              String title = title1.toString();
              Object content1 = v.elementAt(3);
              String content = content1.toString();
             // System.out.println(down);
              java.util.Date date = new java.util.Date();
                 String strdate = date.toLocaleString();

           java.util.Date StrDate1 = new java.util.Date();
           String StrDate = StrDate1.toLocaleString();   // 新聞發(fā)布時間
           //String newtype="0";
           conn.openDB();
           String sql = "select top 5 * from b_news where newtype="+newtype+" order by id desc";
           String strTemp="<tr><td>相關(guān)新聞</td></tr>";
           ResultSet rs = conn.executeQuery(sql);
           while (rs.next())
              {
             String t2 = rs.getString(2);
             String t4 = rs.getString(4);
             strTemp += "<tr><td>";
             strTemp +="<a href=../../../"+t4+">";
             strTemp += t2;
             strTemp +="</a>";
             }
              strTemp +="</td></tr>";
              rs.close();

           
           //讀取模板

           String filePath = "";
           filePath = request.getRealPath("\\ball\\news\\pnews.template");
           String templateContent = null;
           try{
            templateContent = ReadTemplates.getTlpContent(filePath);
            System.out.println(templateContent);
           }
           catch(Exception e)
            {
             System.out.println("error to template!");
            }
           //替換模板中的內(nèi)容
           //System.out.println("picname--------------------------------"+picname);
             
           templateContent = ReplaceAll.replace(templateContent,flag[0],title);
           templateContent = ReplaceAll.replace(templateContent,flag[1],StrDate);
           //templateContent = ReplaceAll.replace(templateContent,flag[2],editer);
           templateContent = ReplaceAll.replace(templateContent,flag[3],content);
           templateContent = ReplaceAll.replace(templateContent,flag[4],strTemp);
           templateContent = ReplaceAll.replace(templateContent,flag[5],picname);

           // 根據(jù)時間得文件名與路徑名
           
           Calendar calendar = Calendar.getInstance();
           String fileName = String.valueOf(calendar.getTimeInMillis()) +".html";
           String pathName = request.getRealPath("ball/news")+"\\"+ calendar.get(Calendar.YEAR) + "\\"+ (calendar.get(Calendar.MONTH)+1) +"\\"+ calendar.get(Calendar.DAY_OF_MONTH)+"\\"; 
           String url = calendar.get(Calendar.YEAR) + "/"+ (calendar.get(Calendar.MONTH)+1) +"/"+ calendar.get(Calendar.DAY_OF_MONTH)+"/";
           url +=fileName;
           //System.out.println(url);

           try{
            WriteHtml.save(templateContent,pathName,fileName);
           }catch(Exception e){
           System.out.println("error to html!-----------"+e.getMessage());
           }

           
             //寫入數(shù)據(jù)庫
             String sqlInsert = null;
              if (!picname.equals("false")){
               sqlInsert = "insert into b_news (title,content,url,picture,newtype,addtime,rowid) values ('"+title+"','"+content+"','"+url+"','"+picname+"','"+newtype+"',getdate(),'"+rowid+"')";
              }
           else
           {
             picname="images/"+picname;
             sqlInsert = "insert into b_news (title,content,url,newtype,addtime,rowid) values ('"+title+"','"+content+"','"+url+"','"+newtype+"',getdate(),'"+rowid+"')";
           }
           //System.out.println("sql insert---------------"+sqlInsert);
           conn.executeUpdate (sqlInsert);
             }
             catch(Exception e)
              {
              System.out.println("upload error------------------"+e.getMessage());
               }
             
           
             
          %>
          <%out.println("新聞生成html成功了!");%>


          評論

          # re: JSP生成HTML靜態(tài)頁面  回復(fù)  更多評論   

          2010-09-01 18:01 by ljrwin88
          試用千博商務(wù)動力中英旗艦版生成HTML問題:
          在后臺顯:成功生成25個分類的HTML靜態(tài)頁面。完成比例:41.67% 就停止不動了,是什么回事?原試15個或以下小分類時沒問題的!后來加到34個小分類就報錯了,但頁面卻都能打開,請教各位應(yīng)怎樣設(shè)置這個限制? ljrwin88@gmail.com 請求!
          主站蜘蛛池模板: 丹江口市| 大渡口区| 永平县| 东乌珠穆沁旗| 江津市| 临沧市| 哈密市| 广安市| 县级市| 南郑县| 乌鲁木齐市| 格尔木市| 萨迦县| 郓城县| 龙游县| 竹北市| 烟台市| 阿克| 名山县| 元江| 滨海县| 曲松县| 隆化县| 托克托县| 黄龙县| 元朗区| 铜山县| 蒙阴县| 隆安县| 旬阳县| 嘉义市| 关岭| 延长县| 年辖:市辖区| 乌鲁木齐市| 盐山县| 黄龙县| 德庆县| 高唐县| 连城县| 监利县|