`
danwind
  • 浏览: 232766 次
  • 性别: Icon_minigender_1
  • 来自: 广东
社区版块
存档分类
最新评论

jetspeed学习笔记2

阅读更多
1.这次主要是针对portlet编程,首先建立java类TestDataPortlet extends GenericPortlet,重写doView、processAction、init和destroy。代码如下所示:
package com.tortrend.portlet;

import java.io.IOException;
import java.util.List;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.EventRequest;
import javax.portlet.EventResponse;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.PortletSession;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;

import com.tortrend.general.TestDataBean;
import com.tortrend.general.TestDataDAOImpl;

public class TestDataPortlet extends GenericPortlet {

	private static final String NORMAL_VIEW = "/test/normal.jsp";
	private static final String MAXIMIZED_VIEW = "/test/maximized.jsp";
	private static final String HELP_VIEW = "/test/help.jsp";

	private PortletRequestDispatcher normalView;
	private PortletRequestDispatcher maximizedView;
	private PortletRequestDispatcher helpView;

	protected void doView(RenderRequest request, RenderResponse response)
			throws PortletException, IOException {
		System.out.println("testdataportlet doView ...");
		PortletSession session = request.getPortletSession();
		if ("delete".equals(request.getParameter("actionflag"))) {
			int id = Integer.parseInt(request.getParameter("id"));
			TestDataDAOImpl.delete(id);
			System.out.println("testdataportlet doView delete");
		} else if("adduser".equals(request.getParameter("actionflag"))) {
			int id = TestDataDAOImpl.getCount() + 1;
			TestDataBean tdb = new TestDataBean();
			tdb.setId(id);
			tdb.setName("wgj" + id);
			tdb.setPassword("123");
			TestDataDAOImpl.add(tdb);
			System.out.println("testdataportlet doView add");
		} else if("update".equals(request.getParameter("actionflag"))) {
			int id = Integer.parseInt(request.getParameter("id"));
			TestDataDAOImpl.update(id);
			session.removeAttribute("test.list");
			System.out.println("testdataportlet doView update");
		}
		int curp = request.getParameter("curp") != null ? Integer.parseInt(request.getParameter("curp")):1;
		int pagesize = 5;
		int totalNum = TestDataDAOImpl.getCount();
		int totalPage = (totalNum + pagesize - 1 ) / pagesize;

		List<TestDataBean> list = TestDataDAOImpl.getSome(curp, pagesize);
		session.setAttribute("test.list", list);
		session.setAttribute("test.curp", curp);
		session.setAttribute("test.totalPage", totalPage);
		if (WindowState.MINIMIZED.equals(request.getWindowState())) {
			return;
		}

		if (WindowState.NORMAL.equals(request.getWindowState())) {
			normalView.include(request, response);
		} else {
			maximizedView.include(request, response);
		}
		
		
	}	
public void processAction(ActionRequest request, ActionResponse arg1)
			throws PortletException, IOException {
		if("Submit".equals(request.getParameter("actionflag"))) {
			//System.out.println("testdataportlet processAction checklogin");
			PortletSession session = request.getPortletSession();
			String name = request.getParameter("username");
			String password = request.getParameter("password");
			System.out.println("name=" + name);
			System.out.println("password=" + password);
			if(TestDataDAOImpl.checkLogin(name, password)) {
				session.setAttribute("test.username", name);
				List<TestDataBean> list = TestDataDAOImpl.getAll();
				session.setAttribute("test.list", list);
				//System.out.println("testdataportlet processAction checklogin success");
			} else {
				session.setAttribute("test.username", null);
				//System.out.println("testdataportlet processAction checklogin failure");
			}
		} else if ("delete".equals(request.getParameter("actionflag"))) {
			int id = Integer.parseInt(request.getParameter("id"));
			TestDataDAOImpl.delete(id);
			System.out.println("testdataportlet processAction delete");
		}
	}

	public void init(PortletConfig config) throws PortletException {
		super.init(config);
		normalView = config.getPortletContext().getRequestDispatcher(
				NORMAL_VIEW);
		maximizedView = config.getPortletContext().getRequestDispatcher(
				MAXIMIZED_VIEW);
		helpView = config.getPortletContext().getRequestDispatcher(HELP_VIEW);
	}
	
	 public void destroy() {
	        normalView = null;
	        maximizedView = null;
	        helpView = null;
	        super.destroy();
	    }

}

2.所对应的jsp代码如下:
<%@ page session="false" import="java.util.*,javax.portlet.*,com.tortrend.general.*" %>
<%@taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<portlet:defineObjects/>

<%
	PortletSession session = renderRequest.getPortletSession();
	String username = (String)session.getAttribute("test.username");
	List<TestDataBean> list = (List<TestDataBean>)session.getAttribute("test.list");
	int curp = (Integer)session.getAttribute("test.curp");
	int totalPage = (Integer)session.getAttribute("test.totalPage");
	int lastPage = curp - 1;
	int nextPage = curp + 1;
	//System.out.println("username=" + username);
%>

<DIV style="margin: 12px; margin-bottom: 36px">
	<%
		if (username != null) {
	%>
			Hello <%=username %>.<br><span><a href="<portlet:renderURL>
					<portlet:param name="actionflag" value="adduser"/>
					</portlet:renderURL>">add user</a></span>
		<% if(list.size() > 0) { %>
			<table  border="1" width="80%">
			<% for(TestDataBean tdb : list) { %>
				<tr>
					<td width="60%"><a href="#"><%=tdb.getName() %></a></td>
					<td width="50px;"><a href="<portlet:renderURL>
					<portlet:param name="actionflag" value="update"/>
					<portlet:param name="id" value="<%=String.valueOf(tdb.getId()) %>" />
					</portlet:renderURL>">EDIT</a></td>
					<td width="50px;"><a href="<portlet:renderURL>
					<portlet:param name="actionflag" value="delete"/>
					<portlet:param name="id" value="<%=String.valueOf(tdb.getId()) %>" />
					</portlet:renderURL>">DELETE</a></td>
				</tr>
			<% } %>
			</table>
			<% if(curp > 1) { %>
				<span><a href="<portlet:renderURL>
					<portlet:param name="curp" value="<%=String.valueOf(lastPage) %>"/>
					</portlet:renderURL>">last page</a></span>
			<% } else { %>
				<span>last page</span>
			<% } %>
			<% if(curp < totalPage) { %>
				<span><a href="<portlet:renderURL>
					<portlet:param name="curp" value="<%=String.valueOf(nextPage)  %>"/>
					</portlet:renderURL>">next page</a></span>
			<% } else { %>
				<span>next page</span>
			<% } %>
			
		<% } %>
	<%
		}
	%>
	<FORM method="POST" action="<portlet:actionURL/>">
		<INPUT name="username" type="text"/><br>
		<INPUT name="password" type="password"/><br>
		<INPUT name="actionflag" type="submit" value="Submit"/>
	</FORM>
</DIV>


3.数据库处理文件
package com.tortrend.general;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class TestDataDAOImpl {
	private static String DRIVER = "org.gjt.mm.mysql.Driver";
	private static String URL = "jdbc:mysql://127.0.0.1:3307/protal";
	private static String USERNAME = "root";
	private static String PASSWORD = "root";
	private static Connection conn = null;
	private static PreparedStatement pst = null;
	private static ResultSet rs = null;
	
	static {
		try {
			Class.forName(DRIVER);
			conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
	
	public static List<TestDataBean> getAll() {
		List<TestDataBean> list = new ArrayList<TestDataBean>();
		String sql = "select * from test_data";
		try {
			pst = conn.prepareStatement(sql);
			rs = pst.executeQuery();
			while(rs.next()) {
				TestDataBean tdb = new TestDataBean();
				tdb.setId(rs.getInt("id"));
				tdb.setName(rs.getString("name"));
				tdb.setPassword(rs.getString("password"));
				list.add(tdb);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				rs.close();
				pst.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return list;
	}
	
	public static List<TestDataBean> getSome(int page, int pagesize) {
		List<TestDataBean> list = new ArrayList<TestDataBean>();
		String sql = "select * from test_data order by id limit ?,?";
		try {
			pst = conn.prepareStatement(sql);
			pst.setInt(1, (page - 1) * pagesize);
			pst.setInt(2, pagesize);
			rs = pst.executeQuery();
			while(rs.next()) {
				TestDataBean tdb = new TestDataBean();
				tdb.setId(rs.getInt("id"));
				tdb.setName(rs.getString("name"));
				tdb.setPassword(rs.getString("password"));
				list.add(tdb);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				rs.close();
				pst.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return list;
	}
	
	public static boolean checkLogin(String name, String password) {
		boolean flag = false;
		String sql = "select name from test_data where name = ? and password = ?";
		try {
			pst = conn.prepareStatement(sql);
			pst.setString(1, name);
			pst.setString(2, password);
			rs = pst.executeQuery();
			if(rs.next()) {
				flag = true;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				rs.close();
				pst.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return flag;
	}
	
	public static int getCount() {
		String sql = "select count(*) num from test_data";
		try {
			pst = conn.prepareStatement(sql);
			rs = pst.executeQuery();
			if(rs.next()) {
				return rs.getInt("num");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				rs.close();
				pst.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		return 0;
	}
	
	public static void add(TestDataBean tdb) {
		String sql = "insert into test_data values(?, ?, ?)";
		try {
			pst = conn.prepareStatement(sql);
			pst.setInt(1, tdb.getId());
			pst.setString(2, tdb.getName());
			pst.setString(3, tdb.getPassword());
			pst.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				pst.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void update(int id) {
		String sql = "update test_data set name = ? where id = ?";
		try {
			pst = conn.prepareStatement(sql);
			pst.setString(1, "wgj-update");
			pst.setInt(2, id);
			pst.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				pst.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
	
	public static void delete(int id) {
		String sql = "delete from test_data where id = ?";
		try {
			pst = conn.prepareStatement(sql);
			pst.setInt(1, id);
			pst.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				pst.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}
分享到:
评论

相关推荐

    jetspeed学习笔记

    在portal.xml文件中配置一个portlet 配置对应的.psml文件,如下 一个特定的Subject通过doAs方法来执行一个特定的操作(Action) 一个演示第一个doAs方法的例子 Portlet对动作的处理过程 ...Jetspeed部署及其部署管理器

    jetspeed2

    标题 "jetspeed2" 暗示我们正在讨论一个开源的Java门户框架——Jetspeed 2。Jetspeed 2是一个高度可配置和可扩展的框架,用于构建企业级的Web门户应用。它允许开发者整合各种内容、应用和服务,提供统一的用户界面。...

    Jetspeed2官网guide文档翻译2

    【Jetspeed2官网guide文档翻译2】这篇文档主要面向初次接触Jetspeed的用户,提供了从源码构建和部署Jetspeed 2.2的详细步骤。Jetspeed是一个开源的portlet容器和企业信息门户平台,它允许集成多种应用和服务,提供...

    Jetspeed 整合资料

    在提供的压缩包文件中,"jetspeed1资料.zip"可能包含了Jetspeed 1的相关文档、源代码、示例和开发指南,而"Jetspeed2资料.rar"则可能包含Jetspeed 2的更新内容、教程和案例研究。这些资源对于想要学习和使用Jetspeed...

    jetspeed中文文档 教程 总结

    综上所述,这些中文文档为学习和使用Jetspeed2提供了全面的指导。从安装配置到实际应用,再到深入开发,覆盖了Jetspeed2的各个方面,对于想要掌握这一企业门户平台的用户来说,是一份不可多得的学习资料。通过研读...

    Jetspeed2 Deployer Guide中文翻译

    Jetspeed2 是一个开源的企业门户框架,它提供了丰富的功能,包括安全管理、内容管理、个性化以及portlet集成。本文档是Jetspeed2 Deployer Guide的中文翻译,旨在帮助初学者理解如何部署和配置Jetspeed2的安全机制。...

    jetspeed2资料

    由于是开源项目,Jetspeed2有一个活跃的开发者社区,提供了许多在线文档、教程和论坛讨论,方便用户学习和解决问题。 通过这个Jetspeed2资料包,你可以深入了解Jetspeed2的原理、配置方法、开发技巧以及最佳实践,...

    jetspeed2样式的开发文档

    ### jetspeed2样式的开发文档解析 #### 一、概述 jetspeed2是一款基于Java的企业门户框架,它提供了丰富的功能来构建复杂的Web应用程序。本文档旨在帮助开发者理解jetspeed2样式的开发流程与细节,特别是关于如何...

    jetspeed-installer-2.2.2.jar

    Jetspeed是Apache组织开发的一个...Apache开源组织的企业门户项目,现有两个版本:jetspeed1与jetspeed2。由于jetspeed1在设计上的“缺陷”,现在已经升级到jetspeed2。目前大陆还没有成功使用jetspeed2开发的案例。

    Jetspeed2 Portal 门户技术开发文档

    **Jetspeed2 门户技术开发文档** Apache Jetspeed2 是一个开源的、可扩展的、基于标准的门户框架,用于构建企业级的门户应用。它提供了丰富的功能,包括个性化、内容管理、工作流程以及安全机制,使开发者能够快速...

    JetSpeed 高级portlet技术

    ### JetSpeed 高级 Portlet 技术详解 #### 关于本教程 本文旨在深入探讨JetSpeed中的高级Portlet技术,特别关注如何利用JavaServer Pages (JSP) 和其他Web编程技术来创建更加动态和交互式的portlet。此外,还会...

    Jetspeed

    Jetspeed 是一个开源的门户平台,它主要用于构建企业级的Web门户应用。作为一个专业的IT行业大师,我很高兴向您详细解读这个项目的...在实际工作中,深入学习和应用这些知识点,可以提升项目效率,满足复杂的企业需求。

    jetSpeed2.2.2(最新版源文件)

    2. **文档**:可能会有安装指南、用户手册和开发者文档,帮助用户了解如何部署、配置和使用jetSpeed,以及如何为jetSpeed开发portlet。 3. **库文件**:包括jar文件,它们是jetSpeed运行所必需的Java类库。这些库...

    Jetspeed安装与portlet开发.pdf

    2. **运行安装程序**:通过命令行窗口进入下载目录(例如:`C:\download`),执行`java -jar jetspeed-installer-demo-2.2.0.jar`命令开始安装流程。 3. **安装界面**:点击“Next”进入下一步,并接受许可协议。 4....

    基于jetspeed的portlet开发

    2. 服务器上的Jetty Web服务器接收到请求,并将其转发给Jetspeed。 3. Jetspeed中的Action模块处理用户请求,并执行相应的业务逻辑。 4. 根据业务逻辑的结果,选择合适的Screen模块来生成页面内容。 5. Layout模块...

    JetSpeed2.doc

    JetSpeed2.0(简称J2)是Apache软件基金会旗下的一个开源企业级门户平台,其最终release版本于2005年12月发布。相较于早期的JetSpeed1.x(J1.x),J2在架构上进行了重大改进,不再依赖Turbine框架,而是引入了Spring...

    在JetSpeed中开发portlet项目

    2. 输入项目名称,选择JetSpeed作为目标运行时,并指定portlet API版本为JSR168。 3. 创建portlet类,实现`javax.portlet.Portlet`接口,编写`doView`、`doEdit`等生命周期方法。 portlet开发: 1. Portlet配置:在...

    jetspeed中文文档

    这个"jetspeed中文文档"包含的详细信息是对于中国用户来说非常宝贵的资源,因为它们以中文呈现,使得理解与学习过程更为方便。 在jetspeed的中文文档中,你可能会发现以下几个关键知识点: 1. **Jetspeed概述**:...

    Eclipse中开发Jetspeed详细的下载、安装、创建portlet Demo示例教程

    尽管本教程未涉及详细的portlet开发过程,但提供了安装Jetspeed的基本流程,这为进一步学习和实践portlet开发奠定了基础。对于卸载Jetspeed,建议直接删除安装目录,因为未提供明确的卸载步骤。在实际开发中,可能还...

Global site tag (gtag.js) - Google Analytics