论坛的首页效果图:
3、核心代码:
在论坛的开发中,对于一些公用的模块,我们采用组建的方式实现。以下是关于数据连接的JavaBean。
package frola; import java.io.*; import java.sql.*; public class jdbc {
public jdbc() { }
Connection conn = null ;
public java.sql.Connection getConn() //数据库连接函数,返回一个数据库连接对象 { try {
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\").newInstance();
user=\"+use+\"&password=\"+pass+\"&useUnicode=true&characterEncoding=gb2312\" ;
1
conn= DriverManager.getConnection(\"jdbc:odbc:bbsdata\ }
catch(Exception e) {
e.printStackTrace();
System.out.println(\"数据库连接失败!\"); }
return this.conn ; }
public String getTime() //获取当前系统时间,返回当前时间字符串 {
String datestr = \"\" ; try {
java.text.DateFormat df = new java.text.SimpleDateFormat(\"yyyy-M-d HH:ss\") ; java.util.Date date = new java.util.Date() ; datestr = df.format(new java.util.Date()) ; }
catch (Exception ex) { }
return datestr ; } }
截图界面如下:
2
当用户填写完个人信息之后,点击立即注册,系统即会把用户信息写入数据库,并返回提示页面,核心注册代码如下: //例程1-6
<%@page contentType=\"text/html;harset=gb2312\"; language=\"java\" import=\"java.sql.*,java.util.*\" %>
User_Name,User_Password,User_Password1,sql,User_Sex,User_Email,User_Address,User_Mobile,User_Oicq,User_Year,User_Month,User_Day,User_Birthday,User_Icon,User_Sign; %> <% User_Name=request.getParameter(\"name\"); User_Name=yy.ex_chinese(User_Name); User_Password=request.getParameter(\"password\"); User_Password=yy.ex_chinese(User_Password); User_Password1=request.getParameter(\"password2\"); User_Password1=yy.ex_chinese(User_Password1); User_Sex=request.getParameter(\"sex\"); User_Sex=yy.ex_chinese(User_Sex); 3 User_Email=request.getParameter(\"email\"); User_Address=request.getParameter(\"address\"); User_Address=yy.ex_chinese(User_Address); User_Mobile=request.getParameter(\"mobile\"); User_Oicq=request.getParameter(\"oicq\"); User_Year=request.getParameter(\"year\"); User_Month=request.getParameter(\"month\"); User_Day=request.getParameter(\"day\"); User_Icon=request.getParameter(\"icon\"); User_Sign=request.getParameter(\"sign\"); User_Sign=yy.ex_chinese(User_Sign); if (User_Year.equals(\"\")) { if ((User_Month.equals(\"\"))&&(User_Day.equals(\"\"))) User_Birthday=\"保密\"; else User_Birthday=User_Month+\"月\"+User_Day+\"日\"; }else { if ((User_Month.equals(\"\"))&&(User_Day.equals(\"\"))) User_Birthday=\"保密\"; else User_Birthday=User_Year+\"年\"+User_Month+\"月\"+User_Day+\"日\"; } User_Birthday=yy.ex_chinese(User_Birthday); if (User_Email.equals(\"\")) { response.sendRedirect(\"err.jsp?id=11\"); return; }else { } if (!User_Password.equals(User_Password1)) { response.sendRedirect(\"err.jsp?id=9\"); return; } if ((User_Password.length()<5)||(User_Password.length()>12)) { 4 response.sendRedirect(\"err.jsp?id=10\"); return; } if((User_Name.indexOf(\"'\")>0)||(User_Name.indexOf(\" \")>0)||(User_Name.indexOf(\"@\")>0)||(User_Name.indexOf(\"=\")>0)||(User_Name.indexOf(\"%\")>0)) { response.sendRedirect(\"err.jsp?id=12\"); return; } if ((User_Email.indexOf(\"@\")<0)||(User_Email.indexOf(\".\")<0)) { response.sendRedirect(\"err.jsp?id=13\"); return; } Connection con=yy.getConn(); Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rs=null; sql=\"select * from 用户表 where 用户名='\"+User_Name+\"'\"; rs=stmt.executeQuery(sql); rs.last(); //out.println(sql); if (rs.getRow()>0) { response.sendRedirect(\"err.jsp?id=3\"); }else { sql=\"insert into 用户表(用户名,用户密码,用户性别,用户邮箱,居住地址,手机号码,Oicq,出生日期,用户图像,签名,发贴次数,访问次数,用户等级,注册日期,是否在线,认证身份)\"; sql=sql+\" values('\"+User_Name+\"','\"+User_Password+\"','\"+User_Sex+\"','\"+User_Email+\"','\"+User_Address+\"','\"+User_Mobile+\"','\"+User_Oicq+\"','\"+User_Birthday+\"','\"+User_Icon+\"','\"+User_Sign+\"',0,1,'新手上路','\"+yy.getTime()+\"','在线','1')\"; stmt.executeUpdate(sql); session.putValue(\"UserName\session.putValue(\"UserLevel\新手上路\"); out.println(\"谢谢您的注册,正在处理您的用户信息,稍后会自动登陆...\"); } 5 %> 5、用户管理: 实现对论坛用户的添加修改删除 功能是实现的核心代码如下: <%@page contentType=\"text/html; charset=gb2312\" language=\"java\" import=\"java.sql.*\" errorPage=\"err.jsp\" %> <% if ((session.getValue(\"UserName\")==null)||(session.getValue(\"UserClass\")==null)||(!session.getValue(\"UserClass\").equals(\"系统管理员\"))) { response.sendRedirect(\"err.jsp?id=14\"); return; } %> 6 <%! String User_Name,User_Id,sql,Not_Title,Not_Content,Submit_Button;%> <% 7 Submit_Button=request.getParameter(\"Submit\"); User_Name=request.getParameter(\"username\"); int PageSize=10; int RecordCount=0; int PageCount=0; int ShowPage=1; Connection con=bbsdata.getConn(); Statement stmt=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); ResultSet rs=null; sql=\"Select * from 用户表 order by 用户id desc\"; if (Submit_Button!=null) { if (Submit_Button.equals(\"删除该用户的所有贴子\")) { sql=\"delete from 贴子 where 贴子作者='\"+User_Name+\"'\"; stmt.executeUpdate(sql); sql=\"Select * from 用户表 order by 用户id desc\"; } else if (Submit_Button.equals(\"搜索\")) { sql=\"Select * from 用户表 where 用户名='\"+User_Name+\"'\"; } } rs=stmt.executeQuery(sql); rs.last(); RecordCount=rs.getRow(); PageCount=(RecordCount PageSize==0)?(RecordCount/PageSize):(RecordCount/PageSize+1); String Page=request.getParameter(\"page\"); if (Page!=null) { ShowPage=Integer.parseInt(Page); if (ShowPage>PageCount) ShowPage=PageCount; else if(ShowPage<0) ShowPage=1; }else ShowPage=1; if (RecordCount>0) { rs.absolute((ShowPage-1)*PageSize+1); for (int i=1;i { User_Id=rs.getString(\"用户id\"); User_Name=rs.getString(\"用户名\"); %> if (!rs.next()) break; } } %> 9 五、实验总结: 通过这次课程设计,我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。通过本次基本JSP论坛程序的设计和参考网上资料,自己了解了论坛的大致结构,学会了数据库的设计以及联系了JSP语言对数据库的大致操作,积累了经验。JSP是门很重要的程序开发语言,自己往后还需努力学习 。 10 因篇幅问题不能全部显示,请点此查看更多更全内容
公告管理 论坛管理 用户管理 用户名 用户性别 用户等级 发帖/访问次数 修改 删除 <%<%=User_Name%> <%=rs.getString(\"用户性别\")%> <%=rs.getString(\"用户等级\")%> <%=rs.getString(\"发贴次数\")%>/<%=rs.getString(\"访问次数\")%> 修改 删除