关于一个社团网站构建的总结

从简单的ATM程序制作、留言板,再到现在的社团网站,一路上思路不是很清晰,既想做好每次下课后师兄给我们的作业,又想好好看看马士兵的java视频,短短一个月就这样子过去了,失败边缘一度在反思自己的学习效率,不过还是沉下心,好好想自己的思路问题,以及专注问题。社团网站是从8月8号给的任务,用了接近8天时间我才基本上把一个简单社团网站做好。接下来总结一下大体上的一些问题:
首先当仁不让的当然是[b]思路问题[/b],有些人用了5天就把一个网站做好,因为人家思路清晰,什么阶段该干嘛,具体功能一个一个做,做完一个调试一个,避免问题的重复发生。而我一开始选择了做网页美观,而不是选择功能实现问题,一开始没想到利用下载模版来制作,而是根据自己的凭空想象来设计一个网页,当然问题肯定不少。网页大小,整体框架(css跟html不强的人最好还是利用模版),不知何时听过PS的切片工具可以做网页,然后自己就摸索着,跟着百度教程一步一步做好了登录,注册,主页,管理界面等等几个界面美化,就单单PS就耗了我3天时间,制作好一个个网页之后,发现里面全部都是table类型,,而且代码重复太恐怖了,而且不同的浏览器会有不同效果,而且PS字体虽然会漂亮一点,但是至于大小之类的则不好把握,而且效果一出来就会让人感觉这网页很水。
就这样反复考虑之后决定放弃原来的模版,先从功能实现来做白页,结果好不容易用了一天的中自己好不容易的精神时间做的工程因为自己的错误删除(彻底),而相当于辛苦了4天现在是一夜回到解放前呐,那种感觉是真心不好受,所以[b]给我的两个教训就是:[/b]
1、删除工程千万注意要考虑清楚以后还要不要用了。
2、每天记得备份,因此我的U盘也多了一个文件夹(“每日备份”);
经受这次失败的打击之后我又开始怀疑自己了,不过让我继续的是自己拥有一颗相信自己,不服输的心。
接下的当然是有思路,有步骤的去慢慢实现网站功能,一步一步做好每个具体页面。
还有最后的则是根据模版来改造美化网页了(注意不同浏览器的兼容)-谷歌浏览器出现问题比较少,当然也会让我们忽视一些问题,IE就不一样了,一些小细节都会显示乱的网页,所以网页美化的最好是多开几个浏览器来测试。
[b]思路思路还是思路问题[/b]做什么都一样,做晚餐也一样,同样的工程,为什么我就需要很早就开始准备,而妈妈就可以很有效的利用不同菜式煲或者焖的空余时间来做接下来的准备,而不是全部都准备好了才去炒菜,所以时间的利用率也就高了,效率也跟着上去了。因为做了这么多年晚餐,整个流程都清楚了,思路非常清晰,一个成语形容:[b]水到渠成[/b] :lol:

[b]声明:[/b]
数据库有三个表:user-news-intro
简单功能:游客,会员,管理员。根据不同人物显示不同界面,有注册,登录,个人信息更改,密码更改,当然也有管理员的会员更改,注册管理(批准注册人员成为会员),新闻管理(增删改查),社团简介更新等等。
数据库连接方面无非就是insert,select,update xx set。
整体框架则是:
jsp/html-servlet-service-DAO(service与DAO之间传DTO)
jsp负责的是页面效果,数据接收,显示。
servlet负责页面逻辑(注册,登录,增删改查);
service则负责业务逻辑
DAO负责数据逻辑(JDBC)
service与DAO之间由DTO,即封装数据。
接下来就总结过程中间出现的问题:
[b]session:[/b]
session.getAttribute()

返回一个object,要确保不为null情况下才可以进行转换
所以如果要根据session来判断的话要注意其为空的时候可能出现的问题。
[b]<textarea>[/b]
文本输入框不像text,可以设置value,需要在<textarea>xx</textarea>之间加上你要显示的内容,而且不要因为要美化代码而刻意去把一行变成三行,如果变为三行会出现文本域出现一段空白,而空白域的大小则是xx前面的空白大小。
[b]设置超链接为按钮模型:[/b]
<input name="" type="button" onclick="location='index-news.jsp'" value="xx" />

其中xx为按钮上显示内容。注意,在myeclipse中,如果input没有/结束的话会报错,所以代码有结束标志的最后顺势做好结束,框成对出现。
[b]会员、新闻显示则采用数组模式(当然也可以使用List)[/b]
DAO:从数据库从取出数据,返回一个对象数组,每个对象都封装着会员/新闻的具体信息
service:负责jsp与DAO之间的传输数据,也就是中转站,返回也是一个对象数组;
jsp则是接收service传过来的数组,然后再一个一个利用循环在table中显示出来;
下面是具体代码:
DAO(user):
	// 显示所有等待批准的会员信息
public UserDTO[] getALL3() {
UserDTO[] u3 = null;
try {
Class.forName("com.mysql.jdbc.Driver");
java.sql.Connection conn = DriverManager.getConnection(url,
username, password);
Statement stmt = conn.createStatement();
String sql = "select * from user where type=" + 3;
ResultSet rs = stmt.executeQuery(sql);
rs.last();
int rowcount = rs.getRow();
rs.beforeFirst();
u3 = new UserDTO[rowcount];
int i = 0;
while (rs.next()) {
UserDTO usdto = new UserDTO();
usdto.setUsername(rs.getString(2));
usdto.setPass(rs.getString(3));
usdto.setRealname(rs.getString(4));
usdto.setPhone(rs.getString(5));
usdto.setEmail(rs.getString(6));
usdto.setSex(rs.getString(7));
usdto.setType(rs.getInt(8));
u3[i] = usdto;
i++;
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
return u3;
}


service:
//显示所有等待批准的会员信息
public UserDTO[] getALL3(){
UserDAO usD=new UserDAO();
UserDTO[] u3=usD.getALL3();
return u3;
}

jsp:

<%
UserService usreg = new UserService();
UserDTO u3[] = usreg.getALL3();
for (int i = 0; i < u3.length; i++) {
UserDTO user3 = u3[i];
%>
<tr align="center">
<td height="26"><%=user3.getUsername()%><div align="center"></div>
</td>
<td><%=user3.getPass()%>
</td>
<td><%=user3.getRealname()%>
</td>
<td><%=user3.getPhone()%>
</td>
<td><%=user3.getEmail()%>
</td>
<td><%=user3.getSex()%>
</td>
<td>
<a href="UserServlet?flag=state&username=<%=user3.getUsername()%>">
未通过</a>
</td>
<td>
<a href="UserServlet?flag=delete&username=<%=user3.getUsername()%>">删除</a> 
</td>
</tr>
<%
}
%>

DAO是一个一个取,然后再赋进数组,service中间桥梁,jsp取回一个数组,再一个一个显示;这也是思路,之前的留言板完全是靠师兄给的类似代码来模仿,这次则是下意识的去考虑每个中间过程的作用。这也是作为放假前的做这个项目应该得到的。
PS:放假了,大家都走了,我选择了不回家,接下里就好好利用时间看马士兵的教程,好好总结,这个也是需要思路。 :arrow: :arrow:
附件:工程与sql文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值