java留言板代码大全 java留言板功能如何实现

急急急!java简单留言板

您好。我重新地帮你写了代码,完全地符合了你的图片中的界面要求、功能要求。代码如下:(解决了问题,记得给我分哦~^_^呵呵……)

10年积累的成都做网站、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有南昌免费网站建设让你可以放心的选择与我们合作。

import java.awt.BorderLayout;

import javax.swing.JPanel;

import javax.swing.JFrame;

import java.awt.Rectangle;

import javax.swing.JLabel;

import javax.swing.SwingConstants;

import java.awt.Font;

import javax.swing.JTextArea;

import javax.swing.JScrollBar;

import javax.swing.JScrollPane;

import javax.swing.JComboBox;

import javax.swing.JTextField;

import javax.swing.JButton;

public class Liuyb extends JFrame {

private static final long serialVersionUID = 1L;

private JPanel jContentPane = null;

private JLabel jLabel = null;

private JTextArea jTextArea = null;

private JScrollPane jScrollPane = null;

private JLabel jLabel1 = null;

private JComboBox jComboBox = null;

private JLabel jLabel2 = null;

private JTextField jTextField = null;

private JButton jButton = null;

private JButton jButton1 = null;

private JButton jButton2 = null;

private JButton jButton3 = null;

/**

* This is the default constructor

*/

public Liuyb() {

super();

initialize();

}

/**

* This method initializes this

*

* @return void

*/

private void initialize() {

this.setContentPane(getJContentPane());

this.setTitle("留言板程序");

this.setBounds(new Rectangle(0, 0, 640, 480));

this.setVisible(true);

}

/**

* This method initializes jContentPane

*

* @return javax.swing.JPanel

*/

private JPanel getJContentPane() {

if (jContentPane == null) {

jLabel2 = new JLabel();

jLabel2.setBounds(new Rectangle(214, 407, 45, 24));

jLabel2.setFont(new Font("Dialog", Font.BOLD, 14));

jLabel2.setText("地说:");

jLabel1 = new JLabel();

jLabel1.setBounds(new Rectangle(32, 407, 15, 24));

jLabel1.setFont(new Font("Dialog", Font.BOLD, 14));

jLabel1.setText("你");

jLabel = new JLabel();

jLabel.setBounds(new Rectangle(283, 15, 45, 20));

jLabel.setHorizontalAlignment(SwingConstants.CENTER);

jLabel.setFont(new Font("Dialog", Font.BOLD, 14));

jLabel.setText("留言板");

jContentPane = new JPanel();

jContentPane.setLayout(null);

jContentPane.add(jLabel, null);

jContentPane.add(getJScrollPane(), null);

jContentPane.add(jLabel1, null);

jContentPane.add(getJComboBox(), null);

jContentPane.add(jLabel2, null);

jContentPane.add(getJTextField(), null);

jContentPane.add(getJButton(), null);

jContentPane.add(getJButton1(), null);

jContentPane.add(getJButton2(), null);

jContentPane.add(getJButton3(), null);

}

return jContentPane;

}

/**

* This method initializes jTextArea

*

* @return javax.swing.JTextArea

*/

private JTextArea getJTextArea() {

if (jTextArea == null) {

jTextArea = new JTextArea();

jTextArea.setText("留言内容:");

jTextArea.setEditable(false);

}

return jTextArea;

}

/**

* This method initializes jScrollPane

*

* @return javax.swing.JScrollPane

*/

private JScrollPane getJScrollPane() {

if (jScrollPane == null) {

jScrollPane = new JScrollPane();

jScrollPane.setBounds(new Rectangle(22, 49, 534, 347));

jScrollPane.setViewportView(getJTextArea());

}

return jScrollPane;

}

/**

* This method initializes jComboBox

*

* @return javax.swing.JComboBox

*/

private JComboBox getJComboBox() {

if (jComboBox == null) {

jComboBox = new JComboBox();

jComboBox.setBounds(new Rectangle(54, 407, 149, 24));

String[] mycbox={"微笑","大笑","痛苦"};

jComboBox.addItem(mycbox[0]);

jComboBox.addItem(mycbox[1]);

jComboBox.addItem(mycbox[2]);

}

return jComboBox;

}

/**

* This method initializes jTextField

*

* @return javax.swing.JTextField

*/

private JTextField getJTextField() {

if (jTextField == null) {

jTextField = new JTextField();

jTextField.setBounds(new Rectangle(265, 407, 231, 24));

}

return jTextField;

}

/**

* This method initializes jButton

*

* @return javax.swing.JButton

*/

private JButton getJButton() {

if (jButton == null) {

jButton = new JButton();

jButton.setBounds(new Rectangle(505, 407, 70, 24));

jButton.setText("提交");

jButton.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

jTextArea.setText(jTextArea.getText()+"\r\n"+"你"+jComboBox.getSelectedItem().toString()+"地说:"+jTextField.getText());

}

});

}

return jButton;

}

/**

* This method initializes jButton1

*

* @return javax.swing.JButton

*/

private JButton getJButton1() {

if (jButton1 == null) {

jButton1 = new JButton();

jButton1.setBounds(new Rectangle(565, 51, 60, 32));

jButton1.setText("清屏");

jButton1.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

jTextArea.setText("留言内容:");

}

});

}

return jButton1;

}

/**

* This method initializes jButton2

*

* @return javax.swing.JButton

*/

private JButton getJButton2() {

if (jButton2 == null) {

jButton2 = new JButton();

jButton2.setBounds(new Rectangle(565, 112, 60, 32));

jButton2.setText("置顶");

jButton2.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

jTextArea.setCaretPosition(0);

}

});

}

return jButton2;

}

/**

* This method initializes jButton3

*

* @return javax.swing.JButton

*/

private JButton getJButton3() {

if (jButton3 == null) {

jButton3 = new JButton();

jButton3.setBounds(new Rectangle(565, 173, 60, 32));

jButton3.setText("至尾");

jButton3.addActionListener(new java.awt.event.ActionListener() {

public void actionPerformed(java.awt.event.ActionEvent e) {

jTextArea.setCaretPosition((int)jTextArea.getText().length());

}

});

}

return jButton3;

}

public static void main(String args[]){

new Liuyb();

}

}

网页留言板代码

link href="../../css/user.css" rel="stylesheet" type="text/css"

script language="JavaScript" src="../../js/common.js"/script

script language="JavaScript" src="../../js/ubbcode.js"/script

script language="JavaScript"

function formCheck()

{

if (document.theform.nickname.value == "")

{

alert("请填写名字。");

document.theform.nickname.focus();

return false;

}

if (document.theform.content.value == "")

{

alert("请填写留言内容。");

document.theform.content.focus();

return false;

}

theform.Submit.disabled=true;

return true;

}

function showimage()

{

document.images.faceimg.src=face_image[parseInt(document.theform.face.options[document.theform.face.selectedIndex].value)];

}

body background=""

center

IFRAME marginHeight=0 marginWidth=0 noResize scrolling=no frameBorder=0 src=";bgcolor=ffffff" width=468 height=60

/IFRAME

/center

p /p

form name="theform" onsubmit="return formCheck();" method="post" action="get_post.asp"

TABLE width=550 border=0 align="center" cellPadding=0 cellSpacing=0

table width="550" border="0" align="center" cellpadding="4" cellspacing="1" bgcolor="#ebebeb"

tr

td class="pt9"

p*名字:

input name="nickname" type="text" size="15" maxlength="12" class="inputbox1"

br

Email:

input name="email" type="text" size="15" maxlength="45" class="inputbox1"

主页地址:

input name="hp_url" type="text" value="http://" size="22" maxlength="125" class="inputbox1"

/p

/td

tr

td width="409" class="pt9" !--因为图片连接的原因,本文件只适合include在script/dirname下的文件 --

img onClick=bold() src="../../images/icon_editor_bold.gif" width="23" height="22" alt="粗体" border="0"img onClick=italicize() src="../../images/icon_editor_italicize.gif" width="23" height="22" alt="斜体" border="0"img onClick=underline() src="../../images/icon_editor_underline.gif" width="23" height="22" alt="下划线" border="0"

img onClick=center() src="../../images/icon_editor_center.gif" width="23" height="22" alt="居中" border="0"img onClick=hyperlink() src="../../images/icon_editor_url.gif" width="23" height="22" alt="超级连接" border="0"img onClick=email() src="../../images/icon_editor_email.gif" width="23" height="22" alt="Email连接" border="0"img onClick=image() src="../../images/icon_editor_image.gif" width="23" height="22" alt="图片" border="0"img onClick=flash() src="../../images/icon_swf.gif" width="23" height="22" alt="Flash图片" border="0"img onClick=showcode() src="../../images/icon_editor_code.gif" width="23" height="22" alt="编号" border="0"img onClick=quote() src="../../images/icon_editor_quote.gif" width="23" height="22" alt="引用" border="0"img onClick=list() src="../../images/icon_editor_list.gif" width="23" height="22" alt="目录" border="0"

br

tr

td

table width="100%" border="0" cellpadding="0" cellspacing="0" class="pt9"

tr

td width="40" valign="top"*留言:/td

tdtextarea name="content" cols="50" rows="6" id="content"/textarea/td

/tr

/table

p align="center"

input name="replyer" type="hidden" value=""

input name="reply_content_id" type="hidden" value=""

input name="userid" type="hidden" value="79444"

input type="submit" name="Submit" value="确认留言" class="button1"

input type="reset" name="Reset" value="取消重写" class="button1"

/p/td

/tr

/table

p /p

/form

table width="550" border="0" align="center" cellpadding="2" cellspacing="1"

tr

td width="88" valign="top"

img src=""

/td

td width="417"TABLE width="100%" border=0 cellPadding=0 cellSpacing=0 class="pt9"

TBODY

TR

TD width=43 colSpan=2 height=29 rowSpan=2IMG height=29

src="../../images/1_r2_c2.gif" width=43 border=0/TD

TD background=../../images/1_r2_c4.gif height=10/TD

TD width=37 colSpan=2 height=29 rowSpan=2IMG height=29

src="../../images/1_r2_c6.gif" width=37 border=0/TD

/TR

TR

TD height=19 TABLE cellSpacing=0 cellPadding=0 width="100%" border=0

TBODY

TR

TD class="pt9" font class="filtertxt"dsfsd/font /TD

TD width="168" align=right class="pt9" /TD

/TR

/TBODY

/TABLE/TD

/TR

TR

TD width=10 background=../../images/1_r4_c2.gif/TD

TD width=27/TD

TD width="100%" height=50 img src="../../images/blank.gif" width="5" height="5"

br fdsfsdbdfssdfsdf/b br img src="../../images/blank.gif" width="5" height="5" /TD

TD width=22/TD

TD width=15 background=../../images/1_r4_c2.gif/TD

/TR

TR

TD background=../../images/1_r4_c2.gif/TD

TD/TD

TD height=1hr width="100%" size="1" noshade/TD

TD/TD

TD background=../../images/1_r4_c2.gif/TD

/TR

TR

TD width=43 colSpan=2 height=26 rowSpan=2 IMG height=26 src="../../images/1_r6_c2.gif" width=43 border=0/TD

TD align=right height=17

img src="../../images/no_home.gif" align="absmiddle" img src="../../images/no_email.gif" align="absmiddle"   FONT color=#336600[2006-7-17 21:24:00]/FONT /TD

TD width=43 colSpan=2 height=26 rowSpan=2IMG height=26

src="../../images/1_r6_c6.gif" width=37 border=0/TD

/TR

TR

TD background=../../images/1_r2_c4.gif

height=9/TD

/TR

/TBODY

/TABLE/td

/tr

/table

BR

form

table width="516" border="0" cellspacing="0" cellpadding="0" align="center"

tr

td

table width=100% border=0 cellspacing=1 cellpadding=2 class=pt9trtd height=13img src=../../images/turnpage2_1.gif align=absmiddle border=0 img src=../../images/turnpage2_2.gif align=absmiddle border=0 b1/b | img src=../../images/turnpage2_3.gif align=absmiddle border=0 img src=../../images/turnpage2_4.gif align=absmiddle border=0/tdtd class=pt9 width=140 align=right共font color=red1/font页第input type=text name=JumpPage maxlength=3 size=3页input type=button value=转页 onClick="location.href='/script/user/list.asp?userid=79444page=' + this.form.JumpPage.value;"/td/tr/table

/td

/tr

/table

/form

开源里有没有留言板的源代码,JAVA的

绝对开源,绝对明了的留言板,便于学习的源码

用JAVA写的留言板原代码

/*

* guestbookServlet.java

*

* */

import javax.servlet.*;

import javax.servlet.http.*;

import java.sql.*;

import java.util.Date;

/**

*

* */

public class guestbookServlet extends HttpServlet {

boolean debug=false;

String sDBDriver;

Connection conn=null;

ResultSet rs=null;

/** Initializes the servlet.

*/

public void init(ServletConfig config) throws ServletException {

super.init(config);

if(debug)

sDBDriver=new String("sun.jdbc.odbc.JdbcOdbcDriver");

else

sDBDriver=new String("org.gjt.mm.mysql.Driver");

try{

Class.forName(sDBDriver);

}

catch(java.lang.ClassNotFoundException e){

System.err.println("Driver类初始化:"+e.getMessage());

}

}

/** Destroys the servlet.

*/

public void destroy() {

}

/** Processes requests for both HTTP codeGET/code and codePOST/code methods.

* @param request servlet request

* @param response servlet response

*/

protected void processRequest(HttpServletRequest request, HttpServletResponse response)

throws ServletException, java.io.IOException {

response.setContentType("text/html;charset=gb2312");

java.io.PrintWriter out = response.getWriter();

boolean empty=true;

boolean noResult=true;

String sqlStr;

int currentPage=0;

int totalPage=0;

int reccount=0;

ResultSet myrs=null;

String username=request.getParameter("username");

String email=request.getParameter("email");

String ucontent=request.getParameter("ucontent");

String ipage=request.getParameter("ipage");

if(ipage==null||ipage.length()==0)

currentPage=1;

else

currentPage=Integer.parseInt(ipage);

if((username==null||username.length()==0)||(ucontent==null||ucontent.length()==0))empty=true;

else empty=false;

Date myDate=new Date();

//String intime=new String(String.valueOf(myDate.getYear()+1990)+String.valueOf(myDate.getMonth()));

String year=String.valueOf(myDate.getYear()+1900);

String month=String.valueOf(myDate.getMonth()+1);

if(month.length()==1)

month=new String("0"+month);

String days=String.valueOf(myDate.getDate());

if(days.length()==1)

days=new String("0"+days);

String hours=String.valueOf(myDate.getHours());

if(hours.length()==1)

hours=new String("0"+hours);

String minutes=String.valueOf(myDate.getMinutes());

if(minutes.length()==1)

minutes=new String("0"+minutes);

String intime=year+"-"+month+"-"+days+" "+hours+":"+minutes;

if(email==null||email.length()==0)

email=new String("");

if(!empty){

//username=convert(username);

//email=convert(email);

//ucontent=convert(ucontent);

sqlStr="insert into Mintegbook(Mname,Memail,Mcontent,Mtime,Mid) values("+username+","+email+","+ucontent+","+intime+",1)";

getDsnConn();

executeInsert(sqlStr);

}

sqlStr=new String("select Mname,Memail,Mcontent,Mtime from Mintegbook order by Mtime DESC");

getDsnConn();

reccount=getRecordCount("Mintegbook");

if(reccount==0)

noResult=true;

else

noResult=false;

if(!noResult){

int ipageSize=10;

totalPage=getTotalPage("Mintegbook",ipageSize);

if(currentPagetotalPage)

currentPage=totalPage;

int cursor=(currentPage-1)*ipageSize+1;

try{

myrs=executeScrollableQuery(sqlStr);

myrs.absolute(cursor);

}

catch(SQLException e){

noResult=true;

}

}

out.println("HTMLHEADTITLE我的Servlet留言板/TITLE");

out.println("META http-equiv="Content-Type" content="text/html; charset=gb2312"");

out.println("STYLE type="text/css"");

out.println("!--");

out.println(".mytext { font-family: "宋体"; font-size: 12px}");

out.println(" --");

out.println("/STYLE");

out.println("/HEAD");

out.println("BODY bgcolor="#FFFFFF" text="#000000"");

out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="0" align="CENTER" class="mytext"");

out.println("TRTD height="22" | a href=""我的主页/a | 我的Servlet留言板(A href="mailto:yf188@21cn点抗 "川石/A制作)/TD/TR");

out.println("TRTD height="1" bgcolor="#999933"/TD/TR");

out.println("/TABLE");

out.println("BR");

out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="0" align="CENTER" class="mytext"");

out.println("TRTD height="8"/TD/TR");

out.println("TRTD height="18" bgcolor="#f7f7f7"DIV align="right"");

out.println("共有 "+reccount + " 条留言 ");

out.println(" 当前第font color=#ff0000"+currentPage+"/font/共 "+totalPage+" 页 ");

if(currentPage1)

out.println(" a href=guestbookServlet?ipage=1首页/a a href=guestbookServlet?ipage="+(currentPage-1)+"上一页/a ");

else

out.println(" 首页 上一页 ");

if(currentPagetotalPage)

out.println(" a href=guestbookServlet?ipage="+(currentPage+1)+"下一页/a a href=guestbookServlet?ipage="+totalPage+"末页/a ");

else

out.println(" 下一页 末页 ");

out.println("/DIV/TD/TR");

out.println("/TABLE");

out.println("BR");

//这里是显示留言内容

if(!noResult){

String dname;

String demail;

String dcontent;

String dtime;

Date temptime;

try{

do{

dname=new String(myrs.getString("Mname"));

demail=new String(myrs.getString("Memail"));

dcontent=new String(myrs.getString("Mcontent"));

try{

dtime=new String(myrs.getObject("Mtime").toString());

}

catch(java.lang.NullPointerException e){

dtime=new String("2001-04-06 12:30");

}

if(dname==null)

dname=new String("川石");

if(demail==null)

demail=new String("yf188@21cn点抗 ");

if(dcontent==null)

dcontent=new String("test");

if(dtime==null)

dtime=new String("2001-04-06 12:30");

dname=convert(dname);

dcontent=convert(dcontent);

//temptime=myrs.getDate("Mtime");

/*

String tempyear=String.valueOf(temptime.getYear()+1900);

String tempmonth=String.valueOf(temptime.getMonth()+1);

if(tempmonth.length()==1)

tempmonth=new String("0"+tempmonth);

String tempdays=String.valueOf(temptime.getDate());

if(tempdays.length()==1)

tempdays=new String("0"+tempdays);

String tempminute=String.valueOf(temptime.getMinutes());

if(tempminute.length()==1)

tempminute=new String("0"+tempminute);

String temphours=String.valueOf(temptime.getHours());

if(temphours.length()==1)

temphours=new String("0"+temphours);

String dtime=tempyear+" 年 "+ tempmonth +" 月 "+ tempdays +" 日 " + temphours+ " 时 "+ tempminute + " 分 ";

*/

out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="4" align="CENTER" class="mytext"");

out.println("TRTD姓名 A href="mailto:"+demail+"""+dname+"/A 留言时间:"+dtime+"/TD/TR");

out.println("TRTD height="10"/TD/TR");

out.println("TRTD height="10""+dcontent+"/TD/TR");

out.println("/TABLE");

out.println("HR width="600" size="1"");

}while(myrs.next());}

catch(SQLException e){

out.println("error found");

}

}

else{

out.println("还没有留言!");

}

//结束

out.println("FORM name="form1" method="post" action="guestbookServlet"");

out.println("TABLE width="600" border="0" cellspacing="0" cellpadding="4" align="CENTER" class="mytext"");

out.println("TRTD width="80"姓名:/TDTDINPUT type="text" name="username"*/TD/TR");

out.println("TRTDEmail:/TDTDINPUT type="text" name="email"*/TD/TR");

out.println("TRTD留言:/TDTDTEXTAREA name="ucontent" cols="65" rows="4"/TEXTAREA/TD/TR");

out.println("/TABLE");

out.println("TABLE width="400" border="0" cellspacing="0" cellpadding="6" align="CENTER" class="mytext"");

out.println("TRTD height="15" width="200" /TDTD /TD/TR");

out.println("TRTDDIV align="RIGHT"INPUT type="button" name="Button" value=" 提 交 " style="cursor:hand" onclick="javascript:check()"/DIV/TD");

out.println("TDINPUT type="reset" name="Submit2" value=" 重 置 "/TD/TR");

out.println("/TABLE");

out.println("/FORM");

out.println("TABLE width="400" border="0" cellspacing="0" cellpadding="4" align="CENTER" class="mytext"");

out.println("TRTD width="15" /TD/TR");

out.println("TRTDDIV align="LEFT"/DIV/TD/TR");

out.println("TRTD /TD/TR");

out.println("/TABLE");

out.println("/BODY");

out.println("/HTML");

out.println("SCRIPT language="javascript"");

out.println("function check(){");

out.println("if(form1.username.value.length1||form1.ucontent.value.length1)");

out.println("{alert(姓名和留言是必须有的!);}else{form1.submit();}}");

out.println("/SCRIPT");

out.close();

}

/** Handles the HTTP codeGET/code method.

* @param request servlet request

* @param response servlet response

*/

protected void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, java.io.IOException {

processRequest(request, response);

}

/** Handles the HTTP codePOST/code method.

* @param request servlet request

* @param response servlet response

*/

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, java.io.IOException {

processRequest(request, response);

}

protected void getDsnConn(){

String sqlUrl="jdbc:mysql://10.0.0.1/你申请用户名?user=你的名字password=你的帐号";

try{

if(debug)

conn=DriverManager.getConnection("jdbc:odbc:ODBC源","用户名","密码口令");

else

conn=DriverManager.getConnection(sqlUrl);

}

catch(SQLException es){

System.err.println("和库连接时出错:"+es.getMessage());

}

}

protected void executeInsert(String sqlStr){

try{

Statement stmt=conn.createStatement();

stmt.executeUpdate(sqlStr);

}

catch(SQLException es){

System.err.println("执行插入时:"+es.getMessage());

}

}

protected void executeUpdate(String sqlStr){

try{

Statement stmt=conn.createStatement();

stmt.executeUpdate(sqlStr);

}

catch(SQLException e){

System.err.println("error in query record");

}

}

//查寻

protected ResultSet executeQuery(String sqlStr){

rs=null;

try{

Statement stmt=conn.createStatement();

rs=stmt.executeQuery(sqlStr);

}

catch(SQLException ex){

System.err.println("执行查寻出错:"+ex.getMessage());

}

return rs;

}

protected ResultSet executeScrollableQuery(String sqlStr){

rs=null;

try{

Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

rs=stmt.executeQuery(sqlStr);

}

catch(SQLException e){

System.err.println("执行动态查寻出错");

}

return rs;

}

//得到表记录总数

protected int getRecordCount(String sTableName){

rs=null;

int CountResult=0;

String sqlStr="select count(*) from "+sTableName;

try{

Statement stmt=conn.createStatement();

rs=stmt.executeQuery(sqlStr);

if(rs.next())

CountResult=rs.getInt(1);

rs=null;

stmt.close();

}

catch(SQLException ex){

System.err.println(ex.getMessage());

}

return CountResult;

}

//得到记录总页数

protected int getTotalPage(String sTableName,int iPageSize){

int totalPage;

int totalRecNum=getRecordCount(sTableName);

if(totalRecNum%iPageSize==0)

totalPage=totalRecNum/iPageSize;

else

totalPage=totalRecNum/iPageSize+1;

return totalPage;

}

protected String convert(String InputStr){

String converted=new String();

byte[] bytes;

try{

bytes=InputStr.getBytes("ISO8859-1");

converted=new String(bytes,"GB2312");

}

catch(java.io.UnsupportedEncodingException e){

System.out.print("error");

}

return converted;

}

/** Returns a short description of the servlet.

*/

public String getServletInfo() {

return "Short description";

}

}


文章标题:java留言板代码大全 java留言板功能如何实现
网站地址:http://pwwzsj.com/article/ddegsgi.html