Function.java
上传用户:sdtxjx
上传日期:2022-07-09
资源大小:2937k
文件大小:15k
源码类别:

Jsp/Servlet

开发平台:

Java

  1. /***************************************************
  2.  *  
  3.  *  源文件名:  Function.java
  4.  *  功    能: 梦想年华新闻系统 - 函数定义类
  5.  * 作者:梦想年华 [DreamTime]
  6.  * Email:fanwsp@126.com
  7.  *  QQ:122142023 
  8.  *  CopyRight(c)2005-2006 by DreamTime 
  9.  *
  10.  ****************************************************
  11. */
  12. package dreamtime.dreamnews; //指定类所在的包
  13. import java.sql.*;
  14. import dreamtime.dreamnews.DBConnection;
  15. public class Function
  16. {        
  17. DBConnection DBConn = new DBConnection();
  18. public static int AdminUserListNum;
  19. public static int AdminLogListNum;
  20. public static int AdminNewsListNum;
  21. public static int HotNewsNum;
  22. public static int TopNewsNum;
  23. public static int TopImgNum;
  24. public static int HeadNewsNum;
  25. public static int ClassNewsNum;
  26. public static int ClassImgNum;
  27. public static int SpecNum;
  28. public static int SpecNewsNum;
  29. public static int BHotNewsNum;
  30. public static int BTopNewsNum;
  31. public static int BTopImgNum;
  32. public static int BHeadNewsNum;
  33. public static int BClassNewsNum;
  34. public static int BClassImgNum;
  35. public static int BSpecNum;
  36. public static int BSpecNewsNum;
  37. //专题参数
  38. public static int ListSpecNum;
  39. public static int ListNewsNum;
  40. public static int SearchNewsNum;
  41. //网站全局信息
  42. public static String DreamNewsTitle;
  43. public static String DreamNewsCopyRight;
  44. public static String DreamNewsEmail;
  45. public Function()
  46. {
  47. }
  48. public boolean ReadConfig()
  49. {
  50. try{
  51. Connection Conn = DBConn.getConn();
  52.      Statement stmt = Conn.createStatement(1004,1007);
  53.      String sSql = "select * from Config";
  54.      ResultSet rs = stmt.executeQuery(sSql);
  55.      String [] s = new String [10];
  56.      if(rs.next())
  57.      {
  58. //后台管理参数
  59. AdminUserListNum = rs.getInt("AdminUserListNum");
  60. AdminLogListNum = rs.getInt("AdminLogListNum");
  61. AdminNewsListNum = rs.getInt("AdminNewsListNum");
  62. //首页参数
  63. HotNewsNum = rs.getInt("HotNewsNum");
  64. HeadNewsNum = rs.getInt("HeadNewsNum");
  65. TopNewsNum = rs.getInt("TopNewsNum");
  66. TopImgNum = rs.getInt("TopImgNum");
  67. ClassNewsNum = rs.getInt("ClassNewsNum");
  68. ClassImgNum = rs.getInt("ClassImgNum");
  69. SpecNum = rs.getInt("SpecNum");
  70. SpecNewsNum = rs.getInt("SpecNewsNum");
  71. //一级分类参数
  72. BHotNewsNum = rs.getInt("BHotNewsNum");
  73. BHeadNewsNum = rs.getInt("BHeadNewsNum");
  74. BTopNewsNum = rs.getInt("BTopNewsNum");
  75. BTopImgNum = rs.getInt("BTopImgNum");
  76. BClassNewsNum = rs.getInt("BClassNewsNum");
  77. BClassImgNum = rs.getInt("BClassImgNum");
  78. BSpecNum = rs.getInt("BSpecNum");
  79. BSpecNewsNum = rs.getInt("BSpecNewsNum");
  80. //二级分类显示参数
  81. ListNewsNum = rs.getInt("ListNewsNum");
  82. SearchNewsNum = rs.getInt("SearchNewsNum");
  83. //专题列表数
  84. ListSpecNum = rs.getInt("ListSpecNum");
  85. //网站全局信息参数
  86. DreamNewsTitle = rs.getString("DreamNewsTitle");
  87. DreamNewsCopyRight = rs.getString("DreamNewsCopyRight");
  88. DreamNewsEmail = rs.getString("DreamNewsEmail");
  89. if(DreamNewsTitle==null) DreamNewsTitle = "梦想年华新闻系统";
  90. if(DreamNewsCopyRight==null) DreamNewsCopyRight = "梦想年华";
  91. if(DreamNewsEmail==null) DreamNewsEmail = "fanwsp@126.com";
  92. rs.close();
  93. stmt.close();
  94. Conn.close();
  95. return true;
  96. }
  97. else return false;
  98. }catch(Exception e){
  99. //System.out.print(e.getMessage());
  100. //e.printStackTrace();
  101. return false;
  102. }
  103. }
  104. /*********************************************************
  105. * 函数名:CheckReplace
  106. * 作  用:转化SQL特殊字符串
  107. * 参  数:s: 字符串型,待转化的字符
  108. * 返回值:转化以后的字符串
  109. * 调 用:String s2 = CheckReplace(s1);
  110. ***********************************************************/
  111. public String CheckReplace(String s)
  112. {
  113.     try
  114.     {
  115.     if(s == null || s.equals("")) return "";
  116. else
  117. {
  118. StringBuffer stringbuffer = new StringBuffer();
  119. for(int i = 0; i < s.length(); i++)
  120. {
  121. char c = s.charAt(i);
  122. switch(c)
  123. {
  124. case 34: // '"'
  125. stringbuffer.append("&quot;");
  126. break;
  127. case 39: // '''
  128. stringbuffer.append("&#039;");
  129. break;
  130. case 124: // '|'
  131. stringbuffer.append("");
  132. break;
  133. case '&':
  134. stringbuffer.append("&amp;");
  135. break;
  136. case '<':
  137. stringbuffer.append("&lt;");
  138. break;
  139. case '>':
  140. stringbuffer.append("&gt;");
  141. break;
  142. default:
  143. stringbuffer.append(c);
  144. break;
  145. }
  146. }
  147. return stringbuffer.toString().trim(); //返回转化以后的字符串
  148.    }
  149.    }catch(Exception e){ 
  150.    return "";
  151.    }
  152. }
  153. /*********************************************************
  154. * 函数名:CheckDate
  155. * 作  用:检测数据是否为空
  156. * 参  数:数组 s1: 检测的变量,s2,变量的名称
  157. * 返回值:转化以后的字符串
  158. ***********************************************************/
  159. public String CheckDate(String [] s1,String [] s2)
  160. {
  161.     boolean OK = true;
  162.     StringBuffer sb = new StringBuffer();
  163.     try
  164.     {
  165.     for(int i = 0; i < s1.length; i++)
  166.     {
  167.     if(s1[i] == null || s1[i].equals("") || s1[i].equals(" "))
  168. {
  169. sb.append("<li> [ " + s2[i] + " ] 不能为空!"); 
  170. OK = false;
  171.    }
  172.    }
  173.    if (OK) return "Yes";
  174.    else return sb.toString().trim();
  175.  }catch(Exception e) { return "操作失败!";}
  176. }
  177. /*********************************************************
  178. * 函数名:getStrCN
  179. * 作  用:转化字符编码
  180. * 参  数:数组 s1:等转化的字符
  181. * 返回值:转化以后的字符串
  182. ***********************************************************/
  183. public String getStrCN(String s)
  184.     {
  185.     if(s == null) s = "";
  186.     try
  187.     {
  188.     byte abyte0[] = s.getBytes("GBK");
  189.     s = new String(abyte0);
  190.     }catch(Exception e) {s="";}
  191.     return s;
  192.     }
  193.    /***********************************************************
  194. * 函数名:StrToInt
  195. * 作  用:把字符串转为整型
  196. * 参  数:s: 字符串型
  197. * 返回值:整型
  198. ***********************************************************/
  199. public int StrToInt(String s)
  200. {
  201.   try
  202.   {
  203. int i = Integer.parseInt(CheckReplace(s));
  204. return i; //返回转化以后的字符串
  205.   }catch(Exception e)
  206.   {
  207.    return 0;
  208.   }
  209.   
  210. }
  211.    /***************************************************************
  212. * 函数名:StringToBoolean
  213. * 作  用:头部信息显示
  214. * 参  数:AdminLogin: 布尔型,用户是否登录标识
  215. * 返回值:字符串
  216. * 调 用:out.println(BottomInfo());
  217. *****************************************************************/
  218. public boolean StringToBoolean(String s)
  219. {
  220. if (s != null && s.equals("Yes")) return true; 
  221. else return false;
  222. }
  223. /**********************************************************
  224. * 函数名:Page
  225. * 作  用:分页显示
  226. * 参  数:sPage: 字符型,当前页面文件路径
  227. *         如果有参数则要传递的参数,多参数传递请用"&"连接
  228. *         页面地址后面请加上"?"
  229. *   可用 sPage = request.getServletPath()得到 
  230. * 返回值:显示分页的字符串
  231. * 调 用:out.println(Page(sPage);
  232. ************************************************************/
  233. public String Page(String sPage,ResultSet rs,int intPage,int intPageSize)
  234. {
  235. StringBuffer sb = new StringBuffer();
  236. String s=null;
  237. //以下是分面所用的变量申明
  238. int intRowCount;  //记录总数 
  239. int intPageCount;  //总页数 
  240. int i=0;
  241. try{
  242. rs.last(); 
  243. //获取记录总数
  244. intRowCount = rs.getRow();
  245. //记算总页数 
  246. if(intRowCount % intPageSize == 0) intPageCount = intRowCount/intPageSize;
  247. else intPageCount = (int)Math.floor(intRowCount/intPageSize)+1;
  248. if(intPageCount == 0) intPageCount = 1;
  249. if(intPage < 1) intPage = 1;
  250. if(intPage > intPageCount) intPage = intPageCount;
  251. if(intRowCount>intPageSize)
  252. {
  253. s  = "<table width="90%"  border="0" align="center" cellpadding="2" cellspacing="0"><tr>";
  254. s += "<td width="80%" height="30" class="chinese"><span class="chinese">";
  255. s += "当前第"+intPage+"页/共"+ intPageCount+"页,共"+intRowCount+"条记录,"+intPageSize+"条/页"; 
  256. int showye = intPageCount;
  257. if(showye>10) showye=10;
  258. for(i=1;i<=showye;i++)
  259. {
  260. if(i==intPage) s += " " + i + " ";
  261. else s += " <a href=""+sPage+"intPage="+i+"">" +i+"</a> ";
  262. }
  263. s += "</span></td>";
  264. s += "<td width="20%">";
  265. s += "<table width="100%" border="0">";
  266. s += "<tr><td><div align="right"><span class="chinese">";
  267. s += "<select name="ipage" class="chinese" onChange="MM_jumpMenu('self',this,0)">";
  268. s += "<option value="" selected>请选择</option>";
  269. for(i=1;i<=intPageCount;i++)
  270. {
  271. String sSelect = (i==intPage)?"SELECTED":"";
  272. s += "<option value="" + sPage + "intPage=" + i + """ + sSelect + ">第" + i + "页</option>";
  273. }
  274. s += "</select></span></div>";
  275. s += "</td></tr></table>";
  276. s += "</td></tr></table>";
  277. return s;
  278. }
  279. else return "";
  280. }catch(Exception e){
  281. //e.printStackTrace();
  282. return "分页出错!";//+ e.getMessage();
  283. }
  284. }
  285. /*********************************************************
  286. * 函数名:AddLog
  287. * 作  用:添加日志
  288. * 参  数:s[0],操作的用户;
  289. *       s[1],日志类型;
  290. *     s[2],操作时间;
  291. *         s[3],登录IP地址;
  292. *         s[4],操作结果。
  293. * 返回值:布尔型。添加日志成功返回 Ture,否则返回 False
  294. ***********************************************************/
  295.     public boolean AddLog(String[] s)
  296.     {
  297.      try
  298.      {
  299.      Connection Conn = DBConn.getConn();
  300.      Statement stmt = Conn.createStatement(1004,1007);
  301.      ResultSet rs = null;
  302.      for(int i=0;i<s.length;i++)
  303.      {
  304.      s[i] = getStrCN(CheckReplace(s[i]));
  305.      }
  306.      String sql = "insert into Log (User,LogType,LogTime,IP,Result) values (";
  307.      sql += "'" + s[0] + "',";
  308. sql += "'" + s[1] + "',";
  309. sql += "'" + s[2] + "',";
  310. sql += "'" + s[3] + "',";
  311. sql += "'" + s[4] + "')";
  312.      stmt.executeUpdate(sql);
  313. stmt.close();
  314. Conn.close();
  315.      return true;
  316.     }catch(SQLException e)
  317.         {
  318.             //e.printStackTrace();
  319.             //System.out.print(sql);
  320.             return false;
  321.         }
  322.     }
  323.     
  324. /**********************************************************
  325. * 函数名:OutError
  326. * 作  用:输出错误信息
  327. * 参  数:错误信息
  328. * 返回值:字符串
  329. ************************************************************/
  330. public String OutError(String s)
  331.     {
  332.     try{
  333. StringBuffer sb = new StringBuffer();
  334. sb.append("<br><br><table width="60%"  border="0" align="center" cellpadding="0" cellspacing="0">rn");
  335. sb.append("<tr><td align="center" valign="top">rn");
  336. sb.append("<table width="90%"  border="1" align="center" cellpadding="6" cellspacing="1">rn");
  337. sb.append("<tr class="chinese" height="25"><td height="27" background="images/bg.gif" class="info">rn");
  338. sb.append("<div align="center" class="title">错误页面</div></td></tr>rn");
  339. sb.append("<tr class="chinese" height="25"><td><table cellspacing="4" cellpadding="1">rn");
  340. sb.append("<tr><td width="511" height="80" align="middle" valign="top">rn");
  341. sb.append("<p align="left"><span class="info1">操作出错:</span></p><div align="left" class="info1">");
  342. sb.append( s + "</div></td></tr></table></td></tr>rn");
  343. sb.append("<tr><td background="images/bg.gif" height="20" valign="middle"><div align="center" class="chinese">rn");
  344. sb.append("<a href="#" onClick="javascript:history.go(-1)">返回</a></div></td></tr></table></td></tr></table><br><br>rn");
  345. return sb.toString();
  346. }catch(Exception e){
  347. //e.printStackTrace();
  348. //System.out.print(e.getMessage());
  349.      return "操作出错!";
  350.      }
  351. }
  352. /**********************************************************
  353. * 函数名:OutWarn
  354. * 作  用:输出警告信息
  355. * 参  数:警告信息
  356. * 返回值:字符串
  357. ************************************************************/
  358. public String OutWarn(String s)
  359.     {
  360.     try{
  361. StringBuffer sb = new StringBuffer();
  362. sb.append("<br><br><form name="form1" method="post" action="">rn");
  363. sb.append("<table border="1" align="center" cellpadding="1" cellspacing="2">rn");
  364. sb.append("<tr><td width="400" height="80" align="middle" valign="top">rn");
  365. sb.append("<div align="left" class="info1">系统警告:<br><br>rn");
  366. sb.append("&nbsp;&nbsp;&nbsp;&nbsp;");
  367. sb.append(s);
  368. sb.append("</div></td></tr>rn");
  369. sb.append("<tr><td height="20" align="middle" valign="top"><div align="center">rn");
  370. sb.append("<input name="Submit" type="button" class="button" value="取消" onClick="javascript:history.go(-1);">&nbsp;&nbsp;rn");
  371. sb.append("<input name="OK" type="hidden" id="OK" value="Yes">rn");
  372. sb.append("<input name="Submit2" type="submit" class="button" value="确定">rn");
  373. sb.append("</div></td>rn");
  374. sb.append("</tr></table></form>rn");
  375. return sb.toString();
  376. }catch(Exception e){
  377. //e.printStackTrace();
  378. //System.out.print(e.getMessage());
  379. return "操作出错!";
  380.      }
  381.     }
  382.     
  383.     
  384.     
  385.     /**********************************************************
  386. * 函数名:OutCopyRight
  387. * 作  用:输出底部&版权信息
  388. * 参  数:无
  389. * 返回值:字符串
  390. ************************************************************/
  391. public String OutCopyRight()
  392.     {
  393.     try{
  394. StringBuffer sb = new StringBuffer();
  395. sb.append("<table width="750" height="20" align="center"><tr>");     
  396. sb.append("<td width="100%"><div id="CopyRight">");     
  397. sb.append("<div id="Text">梦想年华新闻系统 V1.0 &nbsp;&nbsp;程序制作:");
  398. sb.append("<a href="mailto:fanwsp@126.com"><strong>梦想年华</strong></a></div>");
  399. sb.append("<span>CopyRight &copy; 2005-2006 " + DreamNewsCopyRight + " All Rights Reserved </span>");
  400. sb.append("<span>Email:<a href="mailto:" + DreamNewsEmail + "">" + DreamNewsEmail + "</a></span></div>"); 
  401. sb.append("</td></tr></table><div id="B4"></div>");
  402. return sb.toString();
  403. }catch(Exception e){
  404. //e.printStackTrace();
  405. //System.out.print(e.getMessage());
  406. return "Power By DreamTime";
  407.      }
  408.     }
  409.     
  410.     
  411.     
  412. public static void main(String[] args)
  413. {
  414. Function Fun = new Function();
  415. if(Fun.ReadConfig()) System.out.println(Fun.DreamNewsTitle);
  416. /*s[0] = "Admin1";
  417. s[1] = "admin";
  418. s[2] = "3";
  419. s[3] = (new java.util.Date()).toLocaleString();
  420. s[4] = "znl";
  421. s[5] = "女";
  422. s[6] = "1984-12-20";
  423. s[7] = "fanwsp@126.com";
  424. for(int i=8;i<s.length;i++)
  425. {
  426. s[i] = "暂无";
  427. }*/
  428. //System.out.print(Fun.OutError("操作出错!"));
  429. /*if(Fun.DelLog("2")) System.out.print("Yes");
  430. //System.out.print(s[0]);
  431. for(int i=0;i<s.length;i++)
  432. {
  433. System.out.println(s[i]);
  434. }*/
  435. }
  436. }