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

Jsp/Servlet

开发平台:

Java

  1. /***************************************************
  2.  *  
  3.  *  源文件名:  ShowNews.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 java.util.Date;
  15. import dreamtime.dreamnews.Function;
  16. import dreamtime.dreamnews.DBConnection;
  17. public class ShowNews
  18. {
  19.     DBConnection DBConn = new DBConnection();
  20.     Function Fun = new Function(); 
  21.     String DreamNewsTitle;
  22.     String DreamNewsCopyRight;
  23.     
  24.     public ShowNews()
  25.     {
  26.      if(Fun.ReadConfig())
  27.      {
  28.      DreamNewsTitle = Fun.DreamNewsTitle;
  29.      DreamNewsCopyRight = Fun.DreamNewsCopyRight;
  30.      }
  31.     
  32.      if(DreamNewsTitle==null || DreamNewsTitle.equals("")) 
  33.      DreamNewsTitle="梦想年华新闻系统";
  34.     
  35.      if(DreamNewsCopyRight==null || DreamNewsCopyRight.equals("")) 
  36.      DreamNewsCopyRight="梦想年华[DreamTime]";
  37.     } 
  38.  
  39.  
  40.   /*********************************************************
  41. * 函数名:ShowNews
  42. * 作  用:前台显示新闻
  43. * 参  数:新闻ID
  44. * 返回值:字符串
  45. ***********************************************************/
  46.     public String ShowNews(String s0)
  47.     {
  48.      try
  49.      {
  50.      Connection Conn = DBConn.getConn();
  51.     Statement stmt = Conn.createStatement(1004,1007);
  52.     ResultSet rs = null;
  53.     String sql = "";
  54.     boolean OK = true;
  55.     boolean IsSpec = false;
  56.     String sError = "";
  57.     StringBuffer sb = new StringBuffer();
  58.     int NewsID = Fun.StrToInt(s0);
  59.     
  60.     sb.append("<div id="ShowNews">rn");
  61.     if(NewsID==0) 
  62.     {
  63.      OK = false;
  64.      sError = "<div id="Content"><p>非法参数传递!</p></div>";
  65.     }
  66.   
  67.     if(OK)
  68.     {
  69.      sql = "select * from News,BigClass,SmallClass where ";
  70.      sql += "BigClass.BigClassID=News.BigClassID and ";
  71.      sql += "SmallClass.SmallClassID=News.SmallClassID and ";
  72.      sql += "NewsID=" + NewsID;
  73.     
  74.      String sql1 = "select * from News,Special where ";
  75.      sql1 += "Special.SpecialID=News.SpecialID and ";
  76.      sql1 += "NewsID=" + NewsID;
  77.     
  78.     rs = stmt.executeQuery(sql);
  79.     
  80.     if(!rs.next())
  81.     {
  82.      OK = false;
  83.      sError = "<div id="Content"><p>参数传递错误!</p></div>";
  84.      IsSpec = true;
  85.     }
  86.     
  87.     if(IsSpec) 
  88.     {
  89.      rs=stmt.executeQuery(sql1);
  90.      if(!rs.next())
  91.     {
  92.      OK = false;
  93.      sError = "<div id="Content"><p>参数传递错误!</p></div>";
  94.     }
  95.     else OK = true;
  96.     }
  97.     
  98. if(OK)
  99. {
  100. rs.first();
  101. String NewsTitle = rs.getString("NewsTitle");
  102. String NewsContent = rs.getString("NewsContent");
  103. String NewsFrom = rs.getString("NewsFrom");
  104. String NewsAuthor = rs.getString("NewsAuthor");
  105. String NewsTime = rs.getString("NewsTime");
  106. String pos = "<img src="pic/pos.gif" border=0>";
  107. DreamNewsTitle += " 首页"; 
  108. sb.append("<div id="Pos"><a title="" + DreamNewsTitle + "" href="index.jsp">首页</a>");
  109. if(IsSpec)
  110. {
  111. sb.append(pos + "<a title="专题新闻" href="Special.jsp">专题新闻</a>");
  112. sb.append(pos + "<a title="" + rs.getString("SpecialInfo") + "" href="Special.jsp?SpecialID=");
  113. sb.append(rs.getInt("SpecialID") + "">" + rs.getString("SpecialName") + "</a>");
  114. }
  115. else
  116. {
  117. sb.append(pos + "<a title="" + rs.getString("BigClassInfo") + "" href="ReadClass.jsp?BigClassID=");
  118. sb.append(rs.getInt("BigClassID") + "">" +  rs.getString("BigClassName") + "</a>" );
  119. sb.append(pos + "<a title="" + rs.getString("SmallClassInfo") + "" href="ReadSClass.jsp?SClassID=");
  120. sb.append(rs.getInt("SmallClassID") + "">" + rs.getString("SmallClassName") + "</a>");
  121. }
  122. sb.append(pos + NewsTitle);
  123. sb.append("</div>rn");
  124. sb.append("<div id="Content">rn");
  125. sb.append("<div id="Title">" + NewsTitle + "</div>rn");
  126. sb.append("<div id="info">");
  127. sb.append("发布时间:" + NewsTime + "&nbsp;");
  128. sb.append("新闻来源:" + NewsFrom + "&nbsp;");
  129. sb.append("发布人:" + NewsAuthor + "&nbsp;");
  130. sb.append("</div>rn");
  131. sb.append("<div id="NewsContent">" + NewsContent + "</div>rn");
  132. sb.append("</div>rn");
  133. }
  134. rs.close();
  135.      stmt.close();
  136.      Conn.close(); 
  137. }
  138. sb.append("</div>rn");
  139. if(OK) return sb.toString();
  140. else return sError;
  141. }catch(Exception e)
  142.         {
  143.             //e.printStackTrace();
  144.             System.out.print(e.getMessage()); 
  145.             return " ";
  146.         }
  147.     }
  148.     
  149.     
  150.     
  151.     /*********************************************************
  152. * 函数名:SearchNews
  153. * 作  用:实现新闻搜索功能
  154. * 参  数:新闻关键字,页面地址,分页显示的页码
  155. * 返回值:字符串
  156. ***********************************************************/
  157.     public String SearchNews(String [] s,String sPage,String strPage)
  158.     {
  159. String sql = "";
  160.      try
  161.      {
  162.      Connection Conn = DBConn.getConn();
  163.     Statement stmt = Conn.createStatement(1004,1007);
  164.     ResultSet rs = null;
  165.     //String sql = "";
  166.     String sClassTitle="没有这个类别";
  167.     StringBuffer sb = new StringBuffer();
  168.     int i;
  169. int intPage = 1; 
  170. int intPageSize = 50;
  171. boolean OK = true;
  172. int KeyType = Fun.StrToInt(Fun.CheckReplace(s[0]));
  173. int NewsType = Fun.StrToInt(Fun.CheckReplace(s[1]));
  174. String sKey = Fun.getStrCN(Fun.CheckReplace(s[2]));
  175. sb.append("<div id="News"><ul>rn");
  176. /************** 取得新闻显示参数 **************/
  177. if (Fun.ReadConfig() && Fun.SearchNewsNum>0) intPageSize = Fun.SearchNewsNum;
  178. if(sKey.equals("") || sKey==null) 
  179. {
  180. OK = false;
  181. sb.append("<li><div id="F3">搜索关键字不能为空!</div></li>rn");
  182. }
  183. if(OK)
  184. {
  185. /*构造搜索的SQL语句*/
  186. sql  = "select * from News where ";
  187. switch(KeyType)
  188. {
  189. case 1:  //按标题搜索
  190. sql += "NewsTitle like '%" + sKey + "%'";
  191. break;
  192. case 2:  //按内容搜索
  193. sql += "NewsContent like '%" + sKey + "%'";
  194. break;
  195. case 3:  //按新闻关键字搜索
  196. sql += "NewsKey like '%" + sKey + "%'";
  197. break;
  198. case 4:  //按新闻发布时间搜索
  199. sql += "NewsTime like '%" + sKey + "%'";
  200. break;
  201. default: //所有
  202. sql += "NewsTitle like '%" + sKey + "%'";
  203. sql += " or NewsContent like '%" + sKey + "%'";
  204. sql += " or NewsKey like '%" + sKey + "%'";
  205. break;
  206. }
  207. switch(NewsType)
  208. {
  209. case 1:  //头条
  210. sql += " and IsHead='Yes'";
  211. break;
  212. case 2:  //图片
  213. sql += " and IsImg='Yes'";
  214. break;
  215. case 3:  //普通
  216. sql += " and IsHead='No' and IsImg='No'";
  217. break;
  218. default: //所有
  219. break;
  220. }
  221.     
  222.     
  223.     
  224.      /*读取新闻,并分页显示*/
  225.      rs = stmt.executeQuery(sql);
  226.     
  227.      //如果表中没有任何记录,则给出提示信息
  228. if (!rs.next())
  229. sb.append("<li><div id="F3">没有新闻</div></li>rn");
  230. OK = false;
  231. }
  232. else 
  233. {
  234. //取得待显示页码 
  235. intPage = Fun.StrToInt(strPage);
  236. sPage = Fun.CheckReplace(sPage);
  237. if (intPage==0) intPage=1;
  238. //将记录指针定位到待显示页的第一条记录上 
  239. if(!rs.absolute((intPage-1) * intPageSize+1)) rs.absolute(1);
  240. i = 1; 
  241. while(i<=intPageSize && !rs.isAfterLast())
  242. {
  243.      String NewsTitle = rs.getString(2);
  244. String sTitle = NewsTitle;
  245. String NewsTime = rs.getString(7);
  246. if (NewsTitle.length()>25) sTitle = NewsTitle.substring(0,25) + "..";
  247. if(rs.getString(13).equals("Yes")) sTitle += "(图)";
  248. sb.append("<li><img src="pic/li.gif"> <a title="" + NewsTitle + "" href="ShowNews.jsp?NewsID=" + rs.getInt(1) + "" target=_blank>");
  249. sb.append(sTitle + "</a><span>[" + NewsTime + "]</span></li>rn");
  250. if(i%5==0 && i>1) sb.append("<div id="Line"><div id="L2"></div></div>rn");
  251. rs.next();
  252. i++;
  253. }
  254. }
  255. sb.append("</ul></div>rn");
  256. if(OK) sb.append(Fun.Page(sPage,rs,intPage,intPageSize));
  257. rs.close();
  258. stmt.close();
  259. Conn.close();
  260. }
  261. return sb.toString();
  262. }catch(Exception e)
  263.         {
  264.             //e.printStackTrace();
  265.             //System.out.print(e.getMessage()); 
  266.             System.out.print(sql);
  267.             return " ";
  268.         }
  269.     }
  270.     
  271.  
  272.  
  273.   /*********************************************************
  274. * 函数名:IDToTitle
  275. * 作  用:将ID转化为标题
  276. * 参  数:ID,ID类别,1为大类,2为小类,3为新闻
  277. * 返回值:字符串
  278. ***********************************************************/
  279.     public String IDToTitle(String s0,int i)
  280.     {
  281.      try
  282.      {
  283.      Connection Conn = DBConn.getConn();
  284.     Statement stmt = Conn.createStatement(1004,1007);
  285.     ResultSet rs = null;
  286.     String sql = "";
  287.     boolean OK = true;
  288.     int ID = Fun.StrToInt(Fun.CheckReplace(s0));
  289.     String Title = "";
  290.     
  291.     if(ID==0) 
  292.     {
  293.      Title =  DreamNewsTitle;
  294.      OK = false;
  295.     }
  296.     else
  297.     {
  298.      switch(i)
  299. {
  300. case 0:  //网站标题
  301. Title = DreamNewsTitle;
  302. OK = false;
  303. break;
  304. case 1:  //大类
  305. sql = "select BigClassName from BigClass where BigClassID=" + ID;
  306. break;
  307. case 2:  //小类
  308. sql = "select SmallClassName from SmallClass where SmallClassID=" + ID;
  309. break;
  310. case 3:  //新闻
  311. sql = "select NewsTitle from News where NewsID=" + ID;
  312. break;
  313. case 4:  //专题
  314. sql = "select SpecialName from Special where SpecialID=" + ID;
  315. break;
  316. case 5:  //专题列表
  317. Title = "专题列表";
  318. OK = false;
  319. break;
  320. default: //出错
  321. Title = DreamNewsTitle;
  322. OK = false;
  323. break;
  324. }
  325. }
  326.     if(OK)
  327.     {
  328.     rs = stmt.executeQuery(sql);
  329.     if(rs.next())
  330. {
  331. Title = rs.getString(1);
  332. rs.close();
  333.      stmt.close();
  334.      Conn.close(); 
  335. }
  336. }
  337. return Title;
  338. }catch(Exception e)
  339.         {
  340.             ////e.printStackTrace();
  341.             //System.out.print(e.getMessage()); 
  342.             return DreamNewsTitle;
  343.         }
  344.     }
  345.  
  346.  
  347.      //测试
  348. public static void main(String[] args)
  349. {
  350. ShowNews sNews = new ShowNews();
  351. System.out.println(sNews.ShowNews("1"));
  352. String [] s1 = new String[3];
  353. //s1[0] = "0";
  354. //s1[1] = "0";
  355. //s1[2] = "广州";
  356. //System.out.println(sNews.SearchNews(s1,"Search.jsp?","1"));
  357. //System.out.println(LC.ShowHeadPic("1"));
  358. //System.out.println(sNews.IDToTitle("1",5));
  359. }     
  360.  }
  361.  
  362.