⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainservlet.java

📁 要实现功能有:发帖
💻 JAVA
字号:
package action;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.*;
import dao.*;
import bean.*;

import java.sql.Date;
import java.sql.Timestamp;
import java.util.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;

public class MainServlet extends HttpServlet {
	
	PageBean pb = null;//此为分页类
	
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		String oper = request.getParameter("oper");//连接分发唯一标示
		
		if("login".equals(oper)) {//用户登陆
			this.login(pb,request,response);
			return;
		}
		if("start".equals(oper)) {//进入BBS页面
			pb = this.start(pb, request, response);
			return;
		}
		if("addbbs".equals(oper)) {//添加BBS
			this.addbbs(request, response);
			return;
		}
		if("message".equals(oper)) {//分页
			String ye = request.getParameter("command");
			pb = this.message(pb,ye, request, response ,"right.jsp");
			return;
		}
		if("view".equals(oper)) {//更新左侧BBS标题
			String bid = request.getParameter("bid");
			pb = this.view(pb,bid, request, response);
			return;
		}
		if("addmsg".equals(oper)) {//帖子回复
			pb = this.addmsg(pb,request, response);
			return;
		}
		if("goedit".equals(oper)) {//跳转到编辑之前的业务处理
			this.goedit(request, response);
			return;
		}
		if("edit".equals(oper)) {//编辑帖子
			pb = this.edit(pb, request, response);
			return;
		}
		if("dele".equals(oper)) {//删除帖子
			pb = this.dele(pb, request, response);
			return;
		}
		if("exit".equals(oper)) {//用户退出释放资源
			this.exit(request);
		}
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doGet(request,response);
	}
	
	//用户登陆
	private void login(PageBean pb,HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		String name = request.getParameter("uname");
		String pass = request.getParameter("upass");
		ConDB db = new ConDB();	
		int grade = db.testUser(name, pass);
		if( grade == 1 || grade == 0) {
			List tlist = db.view();
			HttpSession session = request.getSession();
			session.setAttribute("user", new User(name,null,grade));
			session.setAttribute("tlist", tlist);
			response.sendRedirect("main.html");
		} else {
			//!!!!!!!!!!!登陆错误!!!!!!!!!!!!
			this.error(request, response, "登陆错误--无此用户", "./index.html");
		}
		db.close();
	}
	//进入BBS页面
	private PageBean start(PageBean pb,HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		ConDB db = new ConDB();
		List tlist = db.view();
		db.close();
		HttpSession session = request.getSession();
		session.setAttribute("tlist", tlist);
		if(tlist.size() == 0 || tlist == null) {
			pb = new PageBean(4,"");
		} else {
			pb = new PageBean(4,"where bid=" + ( (Bbs) tlist.get(0)).getBid());
		}
		pb = this.message(pb, "frist", request, response , "right.jsp");
		return pb;
	}
	//添加bbs
	private void addbbs(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		
		HttpSession session = request.getSession();
		//------------业务操作对象的创建------------
		User user = (User) session.getAttribute("user");
		String title = request.getParameter("title");
		String bdetail = request.getParameter("bdetail");
		String author = ( (User) request.getSession().getAttribute("user") ).getUname();
		Timestamp bdate = new Timestamp(new java.util.Date().getTime());
		Bbs bbs = new Bbs(0, title, author, bdate);
		Bdetail detail = new Bdetail(0,0,bdetail, user.getUname(), bdate);
		//---------------------------------------
		ConDB db = new ConDB();
		if( db.addMessge(bbs, detail) ) {
			session.setAttribute("tlist", db.view());
			response.sendRedirect("right.jsp");
		}
		else {
			//!!!!!!!!!!!!发帖错误!!!!!!!!!!!
			this.error(request, response, "系统错误--发帖发生错误", "./right.jsp");
		}
		db.close();
	}
	//分页
	private PageBean message(PageBean pb,String fenye,HttpServletRequest request, HttpServletResponse response,String path)
	throws ServletException, IOException{

		HttpSession session = request.getSession();
		//------------------分页业务处理-------------------
		int num = pb.getNum();
		int ye = pb.getYe();
		int yeshu = pb.getYeShu();
		Message mess = null;
		if("frist".equals(fenye)) {
			List list = this.isBoos(pb, session);
			mess = new Message(num,ye,yeshu,list,pb.isBool());
		}
		else if ("next".equals(fenye)) {
			mess = new Message(num,ye,yeshu,pb.xiaYiYe(),pb.isBool());
		}
		else if("back".equals(fenye)) {
			mess = new Message(num,ye,yeshu,pb.shangYiYe(),pb.isBool());
		}
		else if("last".equals(fenye)) {
			mess = new Message(num,ye,yeshu,pb.weiYe(),pb.isBool());
		}
		//----------分楼层----------
		mess.setStart(pb.getStart() + 1);
		//------------------------------------------------
		session.setAttribute("messages", mess);
		response.sendRedirect(path);
		return pb;
	}
	//分页转换bbs
	private PageBean view(PageBean pb,String id,HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		HttpSession session = request.getSession();
		
		pb = new PageBean(4,"where bid=" + id);
		pb = this.message(pb, "frist", request, response,"right.jsp");	
		return pb;
	}
	//回帖
	private PageBean addmsg(PageBean pb,HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		//------------业务操作对象的创建------------
		String bid = request.getParameter("bid");
		String resp = request.getParameter("resp");
		String detail = request.getParameter("detail");
		Timestamp date = new Timestamp(new java.util.Date().getTime());
		Bdetail b = new Bdetail(0,Integer.parseInt(bid),detail,resp,date);
		//---------------------------------------
		ConDB db = new ConDB();
		if( db.addResponse(b) ) {
			pb = new PageBean(4,"where bid=" + bid);
			pb = this.message(pb, "frist", request, response,"right.jsp");
		} 
		else {
			//!!!!!!!!!!!!!回帖错误!!!!!!!!!!!!!!!
			this.error(request, response, "系统错误--回帖发生错误", "./right.jsp");
		}
		db.close();
		return pb;
	}
	//跳转到编辑
	private void goedit(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		String id = request.getParameter("id");
		ConDB db = new ConDB();
		List  list = db.getDetail("select * from bdetail where id=" + id);
		if( list == null || list.size() == 0) {
			//!!!!!!!!!!!跳转编辑错误!!!!!!!!!!!
			this.error(request, response, "系统错误--跳转到编辑发生错误", "./right.jsp");
			return;
		}
		HttpSession session = request.getSession();
		session.setAttribute("updatedetail",list.get(0));
		response.sendRedirect("./bbs/edit.jsp");
	}
	//编辑
	private PageBean edit(PageBean pb,HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		HttpSession session = request.getSession();
		//-----------释放需要编辑信息------------
		session.removeAttribute("updatedetail");
		//--------------------------------------
		//------------业务操作对象的创建------------
		String detail = request.getParameter("detail");
		String id = request.getParameter("id");
		Bdetail b = new Bdetail(Integer.parseInt(id),0,detail,null,null);
		//--------------------------------------
		ConDB db = new ConDB();
		if( db.updateMessge(b) ){
			pb = this.message(pb, "frist", request, response, "right.jsp");
		}
		else {
			//!!!!!!!!!!!!编辑错误!!!!!!!!!!!!!!
			this.error(request, response, "系统错误--编辑发生错误", "./right.jsp");
		}
		return pb;
	}
	//删除帖子
	private PageBean dele(PageBean pb,HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException{
		HttpSession session = request.getSession();
		//-----------时间格式转化-----------
		SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		java.util.Date date = null;
		try {
			date = simple.parse(request.getParameter("date"));
		} catch (ParseException e) {
			this.error(request, response, "系统错误--转化时间发生错误", "./right.jsp");
			return pb;
		}
		Timestamp time = new Timestamp(date.getTime());
		//--------------------------------
		String bid = request.getParameter("bid");
		Bdetail detail = new Bdetail(0,Integer.parseInt( bid ),null,null,time);
		ConDB db = new ConDB();
		int  num = db.deleteMessge( detail );
		if(num == 0) {
			List list = db.view();
			session.setAttribute("tlist",list );
			pb = new PageBean(4,"where bid=" + ( (Bbs) list.get(0)).getBid());
		} else if (num == 1) {
			pb = new PageBean(4,"where bid=" + bid);
		} else {
			//!!!!!!!!!!!!!!删除错误!!!!!!!!!!!!!
			this.error(request, response, "系统错误--删除发生错误", "./right.jsp");
		}
		db.close();
		pb = this.message(pb, "frist", request, response, "right.jsp");
		return pb;
	}
	//用户退出释放资源
	private void exit(HttpServletRequest request){
		HttpSession session  = request.getSession();
		session.invalidate();
	}
	//异常跳转
	private void error(HttpServletRequest request,HttpServletResponse response,String msg,String path) throws ServletException, IOException {
		request.setAttribute("msg", msg);
		request.setAttribute("path", path);
		request.getRequestDispatcher("error.jsp").forward(request, response);
	}
	//判断权限
	private List isBoos(PageBean pb,HttpSession session) {
		User user = (User) session.getAttribute("user");
		String name = user.getUname();
		int grade = user.getGrade();
		List list = pb.shouYe();
		if(list == null || list.size() == 0) {
			return list;
		}
		String bbsname = ((Bdetail) list.get(0)).getResp();
		if(bbsname.equals(name) || grade == 0) {
			pb.setBool(true);
		}
		return list;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -