java留言板app代码,javaweb留言板代码

我正在做一个java留言版,设计

数据库是必不可少的,推荐MySQL,好用而且免费。

我们拥有十载网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供成都做网站、成都网站设计、微信开发、小程序制作手机网站制作H5场景定制、等业务。无论您有什么样的网站设计或者设计方案要求,我们都将富于创造性的提供专业设计服务并满足您的需求。

另外权限的话,你是个新手吧。可以设计的简单点能达到清爽就行了。

如果你会使用struts2框架的话就使用它的拦截器来实现请求的权限拦截判断。

如果不会的话就使用过滤器吧。当然其中的处理权限的逻辑都是一样的。

当然Spring Security也是一个选择。

关于权限的逻辑,你先要设计数据库表,你可以简单的分为用户表和权限表。

用户表就是:用户ID,用户名等简单字段

权限表就是:权限ID权限名称,权限对应URL(这个URL就对应了一个功能的servelet或者一个action)

你还需要一张中间表,实现上述2张表多对多的关系,字段:用户ID,权限ID

因为每个功能踩,顶,发言,删除等,都是一个http请求,每个请求都是一个URL,会去到一个servelet或action来处理的。那么你根据URL可以得到这个权限的ID,再去查找中间表是否存在当前用户ID所关联的记录,有就说明有这个权限,没,就说明没有这个权限。

急急急!java简单留言板

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

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();

}

}

用Java web 做一个留言板 留言功能实现了,不知道怎么实现回复和删除留言的功能,知道的高手,请帮帮忙。

先说说回复吧:

假如:

留言表(id , text )两个字段

回复表( id , text parentId )用来存放留言表id 三个字段

目前有一条留言

1001,'这是一条留言';

那么给这条留言的回复就是

1003 , '这是一条回复', 1001(这就是该留言的ID) 这样就把留言和回复关联上了

回复后点保存时,将数据传入后台,数据库做insert操作就行了

删除一样的

如果删除回复,直接传入回复的ID 即可

如果删除留言,得先判断该留言有没有回复,如果有回复,则先删除回复,在删除留言(外键约束)

开源里有没有留言板的源代码,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.com"川石/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.com");

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小代码详细注释!!

几年没有碰swing了,给你详细注释了。仔细看。希望对你有所帮助。

import java.awt.*;//java抽象窗口工具包

import java.awt.event.*;//java抽象窗口工具包组件所激发的各类事件的接口和类

public class Test5{//类名

Frame f;//定义一个Frame窗体

TextArea center;//文本域

Label la1,la2,la3;//三个标签

Panel east,south,north;//三块面板

Button b1,b2,b3,b4;//四个按钮

Choice l1;//下拉单选框

TextField t1;//文本域

// textfield只有一行可写

// textarea是一个区域,可以有很多行

public static void main(String[] args){//主函数,程序入口

Test mb = new Test();

mb.go();//调用go方法,初始化界面

}

private void go(){

f = new Frame("留言版程序");//标题

f.addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent evt){

f.setVisible(false);

System.exit(0);

//System.exit(0) 0--正常结束程序 1--异常关闭程序

}

});

f.setBounds(0,0,600,400);//布局大小

f.setLayout(new BorderLayout());//显示方式

f.setResizable(false);

//下面都将控件按钮初始化,你懂得

north = new Panel();

south = new Panel();

east = new Panel();

center = new TextArea("留言内容:");

center.setEditable(false);

b1 = new Button("清屏");

b2 = new Button("至顶");

b3 = new Button("至尾");

la1 = new Label("留言版");

la2 = new Label("你");

la3 = new Label(" 地说:");

t1 = new TextField(20);

b4 = new Button("提交");

l1 =new Choice();

l1.add("微笑 ");

l1.add("生气 ");

l1.add("伤心 ");

f.add(BorderLayout.NORTH,north);//布局

f.add(BorderLayout.SOUTH,south);//布局

f.add(BorderLayout.EAST,east);//布局

f.add(BorderLayout.CENTER,center);//布局

north.add(BorderLayout.CENTER,la1);

south.add(la2);//把东西加到面板上

south.add(l1);

south.add(la3);

south.add(t1);//把东西加到面板上

south.add(b4);

east.setLayout(new GridLayout(9,0,1,10));

east.add(b1);

east.add(b2);

east.add(b3);

f.setVisible(true);//可视化

b4.addActionListener(new ActionListener(){//点击提交按钮产生事件

public void actionPerformed(ActionEvent e){

String text1,text2;

text1 = l1.getSelectedItem();

text2 = t1.getText();

t1.setText(null);

if(t1.getText() != ""){//将下拉单选框的内容和你输入在文本框的内容显示在中间面板上

center.append("\n");

center.append(text1);

center.append(text2);

}

}

});

b1.addActionListener(new ActionListener(){//清屏按钮事件,只留下中间面板显示:“留言内容:”,其余清楚

public void actionPerformed(ActionEvent e){

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

}

});

b2.addActionListener(new ActionListener(){//至顶按钮事件,光标焦点至顶

public void actionPerformed(ActionEvent e){

center.requestFocusInWindow();

center.setCaretPosition(8);

}

});

b3.addActionListener(new ActionListener(){//至尾按钮事件,光标焦点至尾

public void actionPerformed(ActionEvent e){

center.requestFocusInWindow();

center.setCaretPosition(center.getText().length());

}

});

}

}


网站名称:java留言板app代码,javaweb留言板代码
本文网址:http://hbruida.cn/article/hdeosc.html