package bbs;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.ArrayList;
/**
* 控制器,接受用户的请求,并调用相应的处理方法,返回结果页面
*/
public class TopicServlet
extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
doGet(request, response);
}
/**
* 判断是哪种操作
* 1,topic_delete:删除贴子
* 2,topic_add:发表新贴
* 3,answer_add:回复贴子
* 4,answer_delete:删除贴子回复
* 5,topic_update:更新贴子
* 6,answer_update:更新贴子回复
* 7,topic_select:获取帖子列表
* 8,topic_view:获取一个帖子以及该帖子的回复
*/
public void doGet(HttpServletRequest request, HttpServletResponse response) throws
ServletException, IOException {
String method = request.getParameter("method");
//从request对象中获取操作类型,后面代码根据操作类型调用相应的方法进行处理
if (method == null) {
return;
}
else if (method.equalsIgnoreCase("topic_select")) {
topic_select(request, response);
//获取某一讨论区的帖子列表
}
else if (method.equalsIgnoreCase("topic_view")) {
topic_view(request, response);
//获取某一个帖子以及该帖子的回复
}
else if (method.equalsIgnoreCase("topic_delete")) {
topic_delete(request, response);
}
else if (method.equalsIgnoreCase("topic_add")) {
topic_add(request, response);
//创建一个新帖子
}
else if (method.equalsIgnoreCase("answer_add")) {
answer_add(request, response);
//回复一个帖子
}
else if (method.equalsIgnoreCase("answer_delete")) {
answer_delete(request, response);
}
else if (method.equalsIgnoreCase("topic_update")) {
topic_update(request, response);
}
else if (method.equalsIgnoreCase("answer_update")) {
answer_update(request, response);
}
}
/**
* 获取讨论区列表
* 1,获取讨论区编号forum_id
* 2,调用TopicHandle的select方法,获取指定讨论区的帖子列表
* 3,如果出现异常,将异常信息保存到request对象中
* 5,返回topics.jsp页面
*/
private void topic_select(HttpServletRequest request,
HttpServletResponse response) {
boolean isSuccess = false;
//处理成功与否标记
ArrayList array = null;
//用来保存结果集
String forum_id = request.getParameter("forum_id");
//获取讨论区编号forum_id
String start_index = request.getParameter("start_index");
//起始页编号,分页算法中要用到
if (start_index == null) {
start_index = "0";
//起始页编号为空,初始化为“0”,表示第一页
}
Page pageInfo = null;
//分页对象
try {
pageInfo = (Page) request.getAttribute("pageInfo");
//从request中获取分页对象
if (pageInfo == null) {
pageInfo = new Page();
request.setAttribute("pageInfo", pageInfo);
//如果分页对象为空,就创建一个新的分页对象,并保存到request中
}
pageInfo.setIndex(Integer.parseInt(start_index));
//设置分页对象的起始页
pageInfo.setUrl("topicservlet?method=topic_select&forum_id=" +
forum_id);
//设置页面数字对应的URL链接
array = TopicHandle.select(Integer.valueOf(forum_id).intValue(),
pageInfo);
//调用TopicHandle的select方法获取讨论区列表
isSuccess = true;
}
catch (Exception es) {
isSuccess = false;
request.setAttribute("topic_error", es.getMessage());
es.printStackTrace();
array = new ArrayList();
}
if (isSuccess) {
request.removeAttribute("topic_error");
}
request.setAttribute("topics", array);
//将结果集保存到request对象中
String forward = "topics.jsp?forum_id=" + forum_id;
forward(request, response, forward);
}
/**
* 浏览帖子信息
* 1,获得要浏览贴子的讨论区编号forum_id以及贴子号bbs_id
* 2,调用TopicHandle的viewTopic方法,获取编号为bbs_id的贴子以及该贴子的回复
* 3,返回topic_view.jsp页面
*/
private void topic_view(HttpServletRequest request,
HttpServletResponse response) {
String forum_id = request.getParameter("forum_id");
String bbs_id = request.getParameter("bbs_id");
//从request对象中获取贴子的讨论区编号forum_id以及贴子号bbs_id
String start_index = request.getParameter("start_index");
//起始页编号,分页算法中要用到
if (start_index == null) {
start_index = "0";
}
Page pageInfo = null;
ArrayList array = null;
try {
pageInfo = (Page) request.getAttribute("pageInfo");
//从request中获取分页对象
if (pageInfo == null) {
pageInfo = new Page();
request.setAttribute("pageInfo", pageInfo);
//如果分页对象为空,就创建一个新的分页对象,并保存到request中
}
pageInfo.setIndex(Integer.parseInt(start_index));
//设置分页对象的起始页
pageInfo.setUrl("topicservlet?method=topic_view&bbs_id=" + bbs_id +
"&forum_id=" + forum_id);
//设置页面数字对应的URL链接
int id = Integer.parseInt(bbs_id);
array = TopicHandle.viewTopic(id, pageInfo);
//调用业务逻辑层对象,获取帖子以及该帖子的所有回复
}
catch (Exception es) {
es.printStackTrace();
}
request.setAttribute("topic_answer", array);
//将结果保存在request对象中
String forward = "topic_view.jsp?forum_id=" + forum_id + "&bbs_id=" +
bbs_id;
forward(request, response, forward);
}
/**
* 删除贴子以及该贴子的所有回复
* 1,获得要删除的贴子的讨论区编号forum_id以及贴子号bbs_id
* 2,调用TopicHandle的delete方法,删除编号为bbs_id的贴子以及该贴子的回复
* 3,如果出现异常,将异常信息保存到request对象中
* 5,返回forums.jsp页面
*/
private void topic_delete(HttpServletRequest request,
HttpServletResponse response) {
String bbs_id = (String) request.getParameter("bbs_id");
String forum_id = (String) request.getParameter("forum_id");
boolean isSuccess = false;
try {
TopicHandle.delete(Integer.valueOf(bbs_id).intValue());
isSuccess = true;
}
catch (Exception es) {
es.printStackTrace();
isSuccess = false;
request.setAttribute("topic_error", es.getMessage());
}
if (isSuccess) {
request.removeAttribute("topic_error");
}
String forward = "topicservlet?method=topic_select&forum_id=" +
forum_id;
// forward += "&b
没有合适的资源?快使用搜索试试~ 我知道了~
jsp网站设计与实现1563
共186个文件
gif:41个
class:32个
jsp:32个
需积分: 9 11 下载量 79 浏览量
2010-01-09
21:52:23
上传
评论
收藏 2.99MB RAR 举报
温馨提示
网上考试系统课题产生的背景是当今教育信息化的趋势及我国高校教育信息化系统的建设;目的是充分利用学校现有的计算机软、硬件资源和网络资源实现无纸化考试以避免传统手工考试的不足。 Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。基于Internet的考试系统正成为人们的研究热点之一。与传统考试模式相比,网上考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时日、人力、物力与财力,而且还可以大幅度提高考试成绩的客观性和公正性。
资源推荐
资源详情
资源评论
收起资源包目录
jsp网站设计与实现1563 (186个子文件)
StatHandle.class 8KB
TopicServlet.class 8KB
StatServlet.class 6KB
TopicHandle.class 6KB
ForumServlet.class 5KB
ChartHandle.class 5KB
UserDAOImpl.class 5KB
UserService.class 4KB
LoginServlet.class 4KB
ForumHandle.class 4KB
UserHandle.class 4KB
Register.class 4KB
Database.class 4KB
LoginFilter.class 4KB
Page.class 3KB
MailUtil.class 3KB
StatFilter.class 2KB
User.class 2KB
Login.class 2KB
THandle.class 2KB
User.class 2KB
EncodingFilter.class 2KB
EncodingFilter.class 2KB
SetCharacterEncodingFilter.class 2KB
Topic.class 2KB
DBHandle.class 2KB
DBHandle.class 2KB
StringUtil.class 1KB
Forum.class 1KB
Generator.class 644B
UserDAO.class 512B
Constant.class 335B
.classpath 647B
.classpath 633B
.classpath 479B
default.css 9KB
style.css 1KB
style.css 1KB
.cvsignore 7B
Thumbs.db 89KB
Thumbs.db 7KB
Thumbs.db 6KB
系统移植说明.doc 26KB
系统移植说明.doc 26KB
系统移植说明.doc 24KB
forum.gif 31KB
forum.gif 31KB
moon.gif 22KB
moon.gif 22KB
t3.gif 5KB
bk1.gif 3KB
postnew.gif 2KB
zayan.gif 1KB
zayan.gif 1KB
t2.gif 1KB
post.gif 983B
votenew.gif 980B
votenew.gif 980B
newreply.gif 900B
newreply.gif 900B
fabiao.gif 812B
ztop.gif 596B
topic.gif 571B
folder.gif 571B
smill.gif 491B
smill.gif 491B
hottopic.gif 367B
hottopic.gif 367B
topics.gif 364B
topics.gif 364B
istop.gif 185B
return.gif 152B
new.gif 152B
return.gif 152B
new.gif 152B
up.gif 152B
8.gif 99B
0.gif 96B
6.gif 95B
9.gif 95B
3.gif 91B
5.gif 91B
4.gif 90B
2.gif 90B
7.gif 84B
1.gif 78B
jfreechart-1.0.0.jar 1.02MB
mail.jar 339KB
jcommon-1.0.0.jar 288KB
mysql-connector-java-3.0.16-ga-bin.jar 231KB
mysql-connector-java-3.0.16-ga-bin.jar 231KB
mysql-connector-java-3.0.16-ga-bin.jar 231KB
gnujaxp.jar 226KB
junit.jar 118KB
junit.jar 118KB
servlet.jar 77KB
unittest.jar 61KB
activation.jar 44KB
TopicServlet.java 20KB
StatHandle.java 19KB
共 186 条
- 1
- 2
资源评论
fanziyan
- 粉丝: 1
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功