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

📄 postaction.java

📁 J2EE 用 hibernate 和javabean 登陆验证程序
💻 JAVA
字号:
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

/**
 * @author Chao Wu
 * 
 * Description: 
 * <p>
 * 
 * Copyright:
 * <p>
 */
public class PostAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {

		PostForm postForm = (PostForm) form;

		String mode = request.getParameter("mode");

		if ("new".equalsIgnoreCase(mode)) {
			return executeNewAction(mapping, postForm, request, response);
		} else if ("newsave".equalsIgnoreCase(mode)) {
			return executeNewSaveAction(mapping, postForm, request, response);
		}  else if ("view".equalsIgnoreCase(mode)) {
			return executeViewAction(mapping, postForm, request, response);
		}else if ("addcomment".equalsIgnoreCase(mode)) {
			return executeAddCommentAction(mapping, postForm, request, response);
		} else if ("addcommentdone".equalsIgnoreCase(mode)) {
			return executeAddCommentDoneAction(mapping, postForm, request, response);
		} else {

			return executeManageAction(mapping, postForm, request, response);
		}

	}

	/**
	 * This method deals with two requests. One is to display the "add new user"
	 * page, it clears all the fields and forward to "add new user" page The
	 * other is to actually add a new user, to do this it validates the inputs
	 * and inserts into database if valid
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	private ActionForward executeNewAction(ActionMapping mapping,
			PostForm form, HttpServletRequest request,
			HttpServletResponse response) {
		PostForm postForm = (PostForm) form;
		postForm.setNewTitle(null);
		postForm.setNewContent(null);
		return mapping.findForward("add");
	}

	private ActionForward executeNewSaveAction(ActionMapping mapping,
			PostForm form, HttpServletRequest request,
			HttpServletResponse response) {
		PostForm postForm = (PostForm) form;
		
		Message message = new Message();

		message.setTitle(postForm.getNewTitle());
		message.setContent(postForm.getNewContent());
		message.setTime(new Date());
		HttpSession httpSession = request.getSession();
		String author = (String)httpSession.getAttribute("username");
		message.setAuthor(author);
		
		SessionFactory sf = new Configuration().configure()
				.buildSessionFactory();
		Session session = sf.openSession();
		Transaction tx = session.beginTransaction();
		session.save(message);
		tx.commit();
		session.close();

		return executeManageAction(mapping, postForm, request, response);
	}

	
	private ActionForward executeViewAction(ActionMapping mapping,
			PostForm form, HttpServletRequest request,
			HttpServletResponse response) {
		
		PostForm postForm = (PostForm) form;
		String hid = request.getParameter("hid");

		SessionFactory sf = new Configuration().configure()
				.buildSessionFactory();
		Session session = sf.openSession();
		Transaction tx = session.beginTransaction();
		String sqlQuery = "select m from Message m where m.title='" + hid + "'";
		Query lQuery = session.createQuery(sqlQuery);
		ArrayList messageList = (ArrayList) lQuery.list();

		Message message = (Message) messageList.get(0);

		tx.commit();
		session.close();

		postForm.setViewMessage(message);
		return mapping.findForward("view");

	}
	
	
	private ActionForward executeAddCommentAction(ActionMapping mapping,
			PostForm form, HttpServletRequest request,
			HttpServletResponse response) {
		
		//PostForm postForm = (PostForm) form;
		//String ahid = request.getParameter("ahid");

		/*SessionFactory sf = new Configuration().configure()
				.buildSessionFactory();
		Session session = sf.openSession();
		Transaction tx = session.beginTransaction();
		String sqlQuery = "select m from Message m where m.title='" + ahid
				+ "'";
		Query lQuery = session.createQuery(sqlQuery);
		ArrayList messageList = (ArrayList) lQuery.list();

		Message message = (Message) messageList.get(0);

		tx.commit();
		session.close();

		postForm.setViewMessage(message);*/
		return mapping.findForward("addcomment");

	}
	
	private ActionForward executeAddCommentDoneAction(ActionMapping mapping,
			PostForm form, HttpServletRequest request,
			HttpServletResponse response) {
		
		PostForm postForm = (PostForm) form;
		Comment comment = new Comment();
		comment.setContent(postForm.getNewComment());
		comment.setTime(new Date());
		comment.setMessage_id(postForm.getViewMessage().getId());
		HttpSession httpSession = request.getSession();
		String author = (String)httpSession.getAttribute("username");
		comment.setAuthor(author);
		
		
		
		SessionFactory sf = new Configuration().configure()
				.buildSessionFactory();
		Session session = sf.openSession();
		Transaction tx = session.beginTransaction();
		String sqlQuery = "select m from Message m where m.title='" + postForm.getViewMessage().getTitle()
				+ "'";
		Query lQuery = session.createQuery(sqlQuery);
		ArrayList messageList = (ArrayList) lQuery.list();

		Message message = (Message) messageList.get(0);
		Set commentSet = message.getComment();
		System.out.println(commentSet.size());
		commentSet.add(comment);
		System.out.println(commentSet.size());
		message.setComment(commentSet);
		
		session.save(message);

		tx.commit();
		session.close();

		return executeManageAction(mapping, postForm, request, response);

	}

	/**
	 * Get all the users and forward to the manage users page.
	 * 
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	private ActionForward executeManageAction(ActionMapping mapping,
			PostForm form, HttpServletRequest request,
			HttpServletResponse response) {

		PostForm postForm = (PostForm) form;

		ArrayList messageList = new ArrayList();

		SessionFactory sf = new Configuration().configure()
				.buildSessionFactory();
		Session session = sf.openSession();
		Transaction tx = session.beginTransaction();
		String sqlQuery = "from Message";
		Query lQuery = session.createQuery(sqlQuery);
		messageList = (ArrayList) lQuery.list();

		tx.commit();
		session.close();
		
		for(int i=0; i<messageList.size(); i++)
		{
			Message message = (Message)messageList.get(i);
			Set comment = message.getComment();
		
			
			Iterator iterator = comment.iterator();
			
			while(iterator.hasNext())
			{
				
				iterator.next();
			}
		}

		postForm.setMessageList(messageList);

		return mapping.findForward("messages");
	}

}

⌨️ 快捷键说明

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