用JSP编写通用信息发布程序

时间:2010-01-16 09:11:23   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:向数据库插入数据记录的接口,以供发布信息。程序与数据库类型无关,与信息发布界面无关。 recordMessage.jsp <HTML><HEAD> <META content="text/html; charset=GB2312" http-equiv = Content-Type> <TITLE>jsp通用信息发布程序</TITLE> </HEAD> <BODY bgcolor = "#aad2fb"> <% @ page contentType=“ text/html; charset=GB2312”% >...
  正文:

Sun公司的 JSP和微软公司的 ASP/ target=_blank class=infotextkey>asp一样,是制作动态网页的又一利器。本文介绍如何利用 JSP和 Oracle数据库编写网上通用信息发布程序。该程序主要是利用了 Java的 Enumeration数据类型,通过调用 Java Bean和 Oracle数据库相连接。 插入数据记录 提供一个通用的向数据库插入数据记录的接口,以供发布信息。程序与数据库类型无关,与信息发布界面无关。 recordMessage.jsp <HTML><HEAD> <META content="text/html; charset=GB2312" http-equiv = Content-Type> <TITLE>jsp通用信息发布程序</TITLE> </HEAD> <BODY bgcolor = "#aad2fb"> <% @ page contentType=“ text/html; charset=GB2312”% > <% @ page language=“ java” import=“ java.sql.* ,java.util.*”% > <jsp: useBean id = "replyok" scope = "page" class ="ymbean.opDb"/> <% //只允许用 POST方法发布信息 ,这是为了避免有人使用程序恶意发布信息 String requestMethod=request.getMethod(); requestMethod=requestMethod.toUpperCase(); if(requestMethod.indexOf(“ POST” )<0) { out.print(“非法操作 !!!” ); return; } String dtkey=“” ; try{ //取数据表 dtkey=new String(request.getParameter(“ dtkey” ).getBytes(“ ISO8859_1” )); //参数名其实就是数据表的列名,参数值就是要存入数据表的信息 String vcname=“” ,vcvalue=“” ,vcnames=“” , vcvalues=“” ,insertsql=“” ,st=“‘ ,’” ; Enumeration vpe = request.getParameterNames(); //动态形成向数据库插入信息的 sql语句 while (vpe.hasMoreElements()) { vcname = (String) vpe.nextElement(); vcname = vcname.trim(); if(vcname.equals(“ dtkey” )) continue; String colname=vcname; st=“”+“’” ; //由于向 Oracle中插入记录时,数值列和字符列是有区别的 ,所以必须在信息录入界面程序 sayMessage.jsp中提供标识 if(vcname.charAt(0)==‘#’ ){ //表示该列为数值列 colname=vcname.substring(1, vcname.length()); st=“” ; } vcvalue=new String(request.getParameter (colname).getBytes(“ ISO8859_1” )); vcvalue= vcvalue.trim(); vcnames= vcnames+ colname+“ ,” ; vcvalues=vcvalues+ st+ vcvalue+ st+“ ,"; } vcnames=vcnames .substring(0,vcnames .length()- 1)+“ )” ; vcvalues=vcvalues .substring(0,vcvalues .length()- 1)+“ )” ; insertsql=“ insert into”+ dtkey+ vcnames+ vcvalues; //插入发文 try{ String lmsg=replyok.executeUpdate(insertsql); if(lmsg.indexOf(“ executeUpdate ok” )< 0) out.print(“信息发布失败 ,error:”+ lmsg); else out.print("<BR> <BR> <BR> <CENTER> <H1>发布信息成功!</H1> </CENTER> </BR> </BR>"); }catch (Exception e1) { out.print(“错误 001:”+ e1);} } catch (Exception e) {} % > </BODY> </HTML> 信息发布界面 提供发布信息的交互界面,调用 recordMessage.jsp程序。 sayMessage.jsp <HTML> <HEAD> <TITLE> 信息发布</TITLE> <META content = "text/html; charset=GB2312" http-equiv = Content-Type> <LINK href ="Css_01.css" rel = stylesheet> <META content = "MSHTML 5.00.3103.1000" name =GENERATOR> </HEAD> <BODY> <% @ page contentType=“ text/html; charset=GB2312”% > <% @ page language=“ java” import=“ java .sql .*”% > <jsp: usebean id ="rencommend" scope="page" class="ymbean.opDb"/> <form action =recordmessage.jsp method =post name=sign> <input name=dtkey type=hidden value=ta_routes> <table bgcolor=#d5e8fd border=0 cellspacing=1 width="97%"> <tbody> <tr> <td nowrap width="45%" height="185"> <div align=left> <table bgcolor=#d5e8fd border=0 cellspacing=1 width="100%"> <tbody> <tr> <td nowrap width="100%" >线路名称: <input maxlength=100 name = routename size=36> </td> </tr> <tr><td nowrap width="100%">显示序号: <input maxlength=3 name=routeno size=36> </td></tr> <tr> <td width="100%" >游览内容。文字超一行时 ,请您敲 Enter键换行</td> </tr> <tr><td width="100%" height="162"> <TEXTAREA cols=55 name =c04 rows=9> </TEXTAREA> </TD> </TR></TBODY></TABLE></DIV></TD></TR> <TR><TD align=middle colspan=2 nowrap> <input name=cmdcommit type=submit value="提交"> </td></tr></tbody></table> </form></center> <div></div></body></html> 连接数据库 通过调用 Java Bean连接 Oracle数据库。 opDb.java package ymbean; // java包 import java.sql.* ; public class opDb { public opDb() { } public ResultSet executeQuery(String sql) { ResultSet rs = null; Statement lstmt = null; try { lstmt = connectdb(); rs = lstmt.executeQuery(sql); System.out.println(“ executeQuery:”+ sql); } catch(SQLException ex) { return(null); } return rs; } public String executeUpdate(String sql) { ResultSet rs = null; Statement lstmt = null; try { lstmt = connectdb(); lstmt.executeUpdate(sql); System.out.println(“ executeUpdate:”+ sql); lstmt.executeUpdate(“ commit” ); }catch(SQLException ex) {} return(“ executeUpdate ok” ); } //连接数据库 public Statement connectdb() { Statement lstmt=null; Connection conn=null; final String connect_string=“ jdbc:oracle:thin:scott/tiger@192.168.0.1:1521:test” ; final String driver_string=“ oracle.jdbc.driver. OracleDriver” ; Connection lconn; try { Class.forName(driverstr); lconn=DriverManager.getConnection(connectstr); lstmt=lconn.createStatement(); } catch (Exception e) { return(null);} return lstmt; } }//end opDb.java
来源:http://www.002pc.com/master/College/Programming/JSP/11927.html

收藏到:

关于《用JSP编写通用信息发布程序》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td