📄 jsppublish.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="KEYWORDS" content="小龙亭工作室之JSP实践之旅">
<title>小龙亭工作室之JSP实践之旅</title>
<link rel="stylesheet" href="../jsp.css" type="text/css">
</head>
<body topmargin="0" leftmargin="0" rightmargin="0">
<div align="center"><!--以下开始小龙亭标题 -->
<script language="javascript" src="../gaptitle.js"></script>
<!--以下开始主题索引td和文章区td -->
<div align="center"><center>
<table width="100%">
<tr>
<td colspan="2" height="10"></td>
</tr>
<tr>
<td width="20%" style="border-right: 1px solid red" valign="top" height="227"><script
language="javascript" src="manualindex.js"></script> </td>
</center>
<td width="80%" valign="top" height="227">
<p align="center">
</p>
<p align="center"><b><font color="#008000" size="3">用JSP编写通用信息发布程序</font></b></p>
<p><br>
<br>
邓振兴 (计算机世界报)<br>
<br>
---------------------------------------------------------------<br>
<br>
<br>
Sun公司的 JSP和微软公司的 ASP一样,是制作动态网页的又一利器。本文介绍如何利用 JSP和 Oracle数据库编写网上通用信息发布程序。该程序主要是利用了 Java的 Enumeration数据类型,通过调用 Java Bean和 Oracle数据库相连接。 <br>
<br>
插入数据记录 <br>
<br>
提供一个通用的向数据库插入数据记录的接口,以供发布信息。程序与数据库类型无关,与信息发布界面无关。 <br>
<br>
recordMessage.jsp <br>
<HTML><HEAD> <br>
<META content="text/html; charset=GB2312" http-equiv = Content-Type> <br>
<TITLE>jsp通用信息发布程序</TITLE> <br>
</HEAD> <br>
<BODY bgcolor = "#aad2fb"> <br>
<% @ page contentType=“ text/html; charset=GB2312”% > <br>
<% @ page language=“ java” import=“ java.sql.* ,java.util.*”% > <br>
<jsp: useBean id = "replyok" scope = "page" class ="ymbean.opDb"/> <br>
<% <br>
//只允许用 POST方法发布信息 ,这是为了避免有人使用程序恶意发布信息 <br>
<br>
String requestMethod=request.getMethod(); <br>
<br>
requestMethod=requestMethod.toUpperCase(); <br>
<br>
if(requestMethod.indexOf(“ POST” )<0) <br>
<br>
{ out.print(“非法操作 !!!” ); <br>
<br>
return; <br>
<br>
} <br>
<br>
String dtkey=“” ; <br>
<br>
try{ <br>
<br>
//取数据表 <br>
<br>
dtkey=new String(request.getParameter(“ dtkey” ).getBytes(“ ISO8859_1” )); <br>
<br>
//参数名其实就是数据表的列名,参数值就是要存入数据表的信息 <br>
<br>
String vcname=“” ,vcvalue=“” ,vcnames=“” , <br>
<br>
vcvalues=“” ,insertsql=“” ,st=“‘ ,’” ; <br>
<br>
Enumeration vpe = request.getParameterNames(); <br>
<br>
//动态形成向数据库插入信息的 sql语句 <br>
<br>
while (vpe.hasMoreElements()) <br>
<br>
{ <br>
<br>
vcname = (String) vpe.nextElement(); <br>
<br>
vcname = vcname.trim(); <br>
<br>
if(vcname.equals(“ dtkey” )) continue; <br>
<br>
String colname=vcname; <br>
<br>
st=“”+“’” ; <br>
<br>
//由于向 Oracle中插入记录时,数值列和字符列是有区别的 ,所以必须在信息录入界面程序 sayMessage.jsp中提供标识 <br>
<br>
if(vcname.charAt(0)==‘#’ ){ <br>
<br>
//表示该列为数值列 <br>
<br>
colname=vcname.substring(1, <br>
<br>
vcname.length()); <br>
<br>
st=“” ; <br>
<br>
} <br>
<br>
vcvalue=new String(request.getParameter <br>
<br>
(colname).getBytes(“ ISO8859_1” )); <br>
<br>
vcvalue= vcvalue.trim(); <br>
<br>
vcnames= vcnames+ colname+“ ,” ; <br>
<br>
vcvalues=vcvalues+ st+ vcvalue+ st+“ ,"; <br>
<br>
} <br>
<br>
vcnames=vcnames .substring(0,vcnames .length()- 1)+“ )” ; <br>
<br>
vcvalues=vcvalues .substring(0,vcvalues .length()- 1)+“ )” ; <br>
<br>
insertsql=“ insert into”+ dtkey+ vcnames+ vcvalues; <br>
<br>
//插入发文 <br>
<br>
try{ <br>
<br>
String lmsg=replyok.executeUpdate(insertsql); <br>
<br>
if(lmsg.indexOf(“ executeUpdate ok” )< 0) <br>
<br>
out.print(“信息发布失败 ,error:”+ lmsg); <br>
<br>
else <br>
<br>
out.print("<BR> <BR> <BR> <CENTER> <H1>发布信息成功!</H1> </CENTER> </BR> </BR>"); <br>
<br>
}catch (Exception e1) { out.print(“错误 001:”+ e1);} <br>
<br>
} catch (Exception e) {} <br>
<br>
% > <br>
<br>
</BODY> </HTML> <br>
信息发布界面 <br>
<br>
提供发布信息的交互界面,调用 recordMessage.jsp程序。 <br>
<br>
sayMessage.jsp <br>
<HTML> <HEAD> <TITLE> 信息发布</TITLE> <br>
<META content = "text/html; charset=GB2312" http-equiv = Content-Type> <br>
<LINK href ="css_01.css" rel = stylesheet> <br>
<META content = "MSHTML 5.00.3103.1000" name =GENERATOR> </HEAD> <br>
<BODY> <br>
<% @ page contentType=“ text/html; charset=GB2312”% > <br>
<br>
<% @ page language=“ java” import=“ java .sql .*”% > <br>
<br>
<jsp: usebean id ="rencommend" scope="page" class="ymbean.opDb"/> <br>
<form action =recordmessage.jsp method =post name=sign> <br>
<input name=dtkey type=hidden value=ta_routes> <br>
<table bgcolor=#d5e8fd border=0 cellspacing=1 width="97%"> <br>
<tbody> <br>
<tr> <td nowrap width="45%" height="185"> <br>
<div align=left> <br>
<table bgcolor=#d5e8fd border=0 cellspacing=1 width="100%"> <br>
<tbody> <br>
<tr> <td nowrap width="100%" >线路名称: <br>
<input maxlength=100 name = routename size=36> <br>
</td> <br>
</tr> <br>
<tr><td nowrap width="100%">显示序号: <br>
<input maxlength=3 name=routeno size=36> <br>
</td></tr> <br>
<tr> <br>
<td width="100%" >游览内容。文字超一行时 ,请您敲 Enter键换行</td> <br>
</tr> <br>
<tr><td width="100%" height="162"> <br>
<TEXTAREA cols=55 name =c04 rows=9> <br>
</TEXTAREA> <br>
</TD> <br>
</TR></TBODY></TABLE></DIV></TD></TR> <br>
<TR><TD align=middle colspan=2 nowrap> <br>
<input name=cmdcommit type=submit value="提交"> <br>
</td></tr></tbody></table> <br>
</form></center> <br>
<div></div></body></html> <br>
<br>
<br>
连接数据库 <br>
<br>
通过调用 Java Bean连接 Oracle数据库。 <br>
<br>
opDb.java <br>
<br>
package ymbean; // java包 <br>
<br>
import java.sql.* ; <br>
<br>
public class opDb { <br>
<br>
public opDb() { } <br>
<br>
public ResultSet executeQuery(String sql) <br>
<br>
{ <br>
<br>
ResultSet rs = null; <br>
<br>
Statement lstmt = null; <br>
<br>
try { lstmt = connectdb(); <br>
<br>
rs = lstmt.executeQuery(sql); <br>
<br>
System.out.println(“ executeQuery:”+ sql); <br>
<br>
} catch(SQLException ex) { return(null); } <br>
<br>
return rs; <br>
<br>
} <br>
<br>
public String executeUpdate(String sql) <br>
<br>
{ <br>
<br>
ResultSet rs = null; <br>
<br>
Statement lstmt = null; <br>
<br>
try { <br>
<br>
lstmt = connectdb(); <br>
<br>
lstmt.executeUpdate(sql); <br>
<br>
System.out.println(“ executeUpdate:”+ sql); <br>
<br>
lstmt.executeUpdate(“ commit” ); <br>
<br>
}catch(SQLException ex) {} <br>
<br>
return(“ executeUpdate ok” ); <br>
<br>
} <br>
<br>
//连接数据库 <br>
<br>
public Statement connectdb() <br>
<br>
{ Statement lstmt=null; <br>
<br>
Connection conn=null; <br>
<br>
final String connect_string=“ jdbc:oracle:thin:scott/tiger@192.168.0.1:1521:test” ; <br>
<br>
final String driver_string=“ oracle.jdbc.driver. <br>
<br>
OracleDriver” ; <br>
<br>
Connection lconn; <br>
<br>
try { Class.forName(driverstr); <br>
<br>
lconn=DriverManager.getConnection(connectstr); <br>
<br>
lstmt=lconn.createStatement(); <br>
<br>
} catch (Exception e) { return(null);} <br>
<br>
return lstmt; <br>
<br>
} <br>
<br>
}//end opDb.java <br>
</td>
</tr>
<center>
<!-- 以下是底边-->
<script language="javascript" src="../gapbottom.js"></script>
</center>
</body>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -