OpenCms中简单的Login模板实例代码

转载 2012年03月28日 11:17:34

以下代码在JSP中实现OpenCms用户的登陆,并且转入相应的项目的特定页面.希望对大家有所帮助。

CODE:

<%@ page import="java.util.* ,
org.opencms.jsp.*,
org.opencms.file.*,
com.opencms.core.*,
org.opencms.main.CmsException" %>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>

<%
String sErrorMessage = null;
String sName = null;
CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response);
boolean logout = "true".equals(request.getParameter("logout"));

CmsObject oCms = cms.getCmsObject();

if(logout){
session.invalidate();
System.out.println("DesLogeado");
}

if(request.getParameter("name") != null && request.getParameter("password") != null){

String sUsername = (String)request.getParameter("name");
String sPassword = (String)request.getParameter("password");
try{
oCms.loginUser(sUsername, sPassword);
oCms.getRequestContext().setCurrentProject(oCms.readProject("Online"));//登陆的项目
response.sendRedirect(cms.link("/"));//转到登陆以后的页面
}catch(CmsException cmsE){
sErrorMessage = "用户登陆错误!";
}
}

if(!cms.user("name").equals("Guest")){

%>
<退出登陆:
<form method="post" action="<%= cms.link(oCms.getRequestContext().getUri()) %>" target="_self" name="logout" topmargin="0" marginheight="0" style="margin-top:0px; margin-bottom:0px;">
<input type="hidden" name="logout" value="true"><input type="submit" value="<< 退出">
</form>
<br>
<%}else{%>
<form method="post" action="<%= cms.link(oCms.getRequestContext().getUri()) %>" target="_self" name="login" topmargin="0" marginheight="0" style="margin-top:0px; margin-bottom:0px;">
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0">
<% if(sErrorMessage != null) { %>
<tr>
<td class="login_error"><%= sErrorMessage %>
</td>
</tr>
<% } %>
<tr>
<td width="1" valign="top" bgcolor="#6166AB">&nbsp;</td>
<td valign="top"></td>
<td valign="top">
<table width="60%" border="0" cellspacing="5" cellpadding="5">
<tr>
<td width="54%">账号:</td>
<td width="46%"><input type="text" size="10" name="name" ></td>
</tr>
<tr >
<td>密码:</td>
<td><input name="password" type="password" size="10" ></td>
</tr>
<tr >
<td colspan="2">
<div align="right">
<input name="submit" type="submit" value="登陆 >>">
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<br>
<%}%>

 

自定义登陆界面

CODE:

<%@
page session="true"
import="org.opencms.main.*,
org.opencms.jsp.*,
org.opencms.file.*,
java.lang.String" %><%
CmsJspActionElement cms = new CmsJspActionElement(pageContext,request,response);

String user = request.getParameter("user");
String password = request.getParameter("password");
String url = request.getParameter("url");

if( url==null || url.length()==0 || url.equalsIgnoreCase("null") )
url = cms.link("/index.html");

boolean loginFailed = false;

//如果表单提交 => 试着登陆并转向给定的 URl
if((user!=null)&&(user.length()!=0)) {
try{
CmsObject cmsObject = cms.getCmsObject();
cmsObject.loginUser(user, password);
CmsProject cmsproject = cmsObject.readProject("Offline");
cmsObject.getRequestContext().setCurrentProject(cmsproject);
cmsObject.getRequestContext().setSiteRoot("/sites/default");

//登陆成功-重定向
response.sendRedirect(url);

} catch ( CmsException e ) {
loginFailed = true;
}
}

//no user submitted or login failed => show login form
if((user==null)||(user.length()==0)||loginFailed) {
//提交表单
%><!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html><head><title>Frontend login</title></head>
<body onload="document.forms[0].elements[0].focus()">

<%if (loginFailed) { %><em>登陆失败!</em><% } %>

<h1>请登陆:</h1>
<form method="post" action="<%=cms.info("opencms.url")%>">
<input type="hidden" name="url" value="<%=url%>" />
<p>用户: <input name="user" /></p>
<p>密码: <input name="password" type="password" /></p>
<p><input type="submit" value="登陆" /></p>
</form></body></html><%
}
%>

相关文章推荐

OpenCms国内、外成功案例

OpenCms国内成功案例:1、 武汉国家税务局:http://www.whgs.gov.cn/cms/index.jsp2、 云南省商务厅:http://www.bofcom.gov.cn3、 国家...

OpenCms9 系列一, 如何创建一个站点

在OpenCms9中,对站点的创建维护提供了住
  • qiujoe
  • qiujoe
  • 2014年06月01日 07:06
  • 3829

OpenCms 系列二 如何创建内容类型模块

有了一个站点
  • qiujoe
  • qiujoe
  • 2014年06月04日 07:50
  • 1648

ASP.NET简单LOGIN控件实例

  • 2009年01月07日 16:38
  • 5KB
  • 下载

OpenCms9系列之四 如何创建模板

本来按照计划是要完成FORMATTER 的家
  • qiujoe
  • qiujoe
  • 2014年06月05日 11:19
  • 2813

opencms8.5.0-编写布局模板页

运用opencms编写页面布局一般有2种形式,(主页列表信息显示页面和详细信息显示页面),当然自己也可以写更多形式的页面布局,这里作为实例仅供参考。下面是BP Africa(英国石油公司南非分公司)使...
  • nich002
  • nich002
  • 2013年03月18日 11:11
  • 2564

openCms建站实例一(建立站点文件夹)

一、建立站点的文件夹结构    在sites的文件夹下面建立站点的文件夹如"mysite",这个文件夹就是站点的文件夹,此站点的所有文件及文件夹在此文件夹下面,然后再“mysite”文件夹下面建立不同...
  • lq305
  • lq305
  • 2011年01月04日 17:02
  • 1868

OpenCms集成Lucene引擎,搜索功能简单范例

%@page language="java" pageEncoding="UTF-8"%> %@page import="org.opencms.jsp.CmsJspActionElement"%>...

css简单实例源代码(模板)

  • 2008年07月29日 00:09
  • 29KB
  • 下载

用C#写一个简单的Login窗口

  • 2007年10月04日 23:24
  • 422KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OpenCms中简单的Login模板实例代码
举报原因:
原因补充:

(最多只允许输入30个字)