有了前面做够的准备,我们现在可以来做登入了。
首先打开我们的login.js,在登入按钮事件那里写上
function login()
{
//用户登入方法---表单提交
if(formPanel.form.isValid()){
Ext.MessageBox.show({
title:"请等待",
msg:"正在加载",
progressText:"",
width:300,
progress:true,
closable:false,
animEl:'loding'
});
var f = function(v){
return function(){
var i = v/11;
Ext.MessageBox.updateProgress(i,'');
}
}
for(var i = 1; i < 13; i++){
setTimeout(f(i),i *150);
}
//提交到服务器操作
formPanel.form.doAction("submit",{
url:"Login.action",
method:"post",
success:function(form,action){
//登入成功
Ext.Msg.alert('登入成功',action.result.message);
},
failure:function(form, action){
Ext.Msg.alert('登录失败',action.result.message);
}
});
}
}
此时前台表单已经提交了,提交的地址是Login.action,我们这是配置structs.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="extjs4" extends="json-default" namespace="/">
<!-- 编写Action -->
<action name="Login" class="login.Action" method="validate_login">
<result type="json"></result>
</action>
</package>
</struts>
说明:
action name="Login":和表单提交的url一样
class="login.Action":处理表单的类
method="validate_login":类里面具体处理表单的方法
<result type="json">:返回json类型给前台
看到这里,现在我们自然要去编写login.Action类了
具体代码:
package login;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.opensymphony.xwork2.ActionSupport;
public class Action extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
final String pjName = moduleName();//获取ejb调用名
public String username;//与表单的 账号同名,通过get方法获取
public String password;//与表单的 密码同名,通过get方法获取
public String message;//返回给前台的信息
public boolean success;//登入结果,true为登入成功
public String moduleName(){
//ejb:/projectName
return "ejb:/"+"Person"+"/";
}
public InitialContext getContext() throws NamingException{
Hashtable<String, String> p = new Hashtable<String, String>();
p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
InitialContext ctx;
ctx = new InitialContext(p);
return ctx;
}
/**
* ejb接口获取
* @return
*/
public ManageBeanRemote remote(){
ManageBeanRemote remote = null;
try {
remote = (ManageBeanRemote) getContext().lookup(pjName+"ManageBean!login.ManageBeanRemote");
} catch (NamingException e) {
e.printStackTrace();
}
return remote;
}
/**
*
* 登入验证。。。structs用get和set方法获取账号密码
* @return
*/
public String validate_login()
{
System.out.println("username: "+username+" Password:"+password);
List<Manage>ok=new ArrayList<Manage>();
ok=remote().getqualificationParts(username,password);//调用ejb方法
if(ok.size()>0)
{
message="登入成功";
success=true;
}
else
{
message="账号或密码错误";
success=false;
}
return SUCCESS;
}
/*省略username,password,success,message的get和set方法,记得一定要写啊,不然不能获取前台数据和数据返回。我们只需要调用get和set就行了。具体的获取和返回structs2帮我我封装好了*/
}
说明:
return SUCCESS:
public static final java.lang.String SUCCESS = "success";
public static final java.lang.String NONE = "none";
public static final java.lang.String ERROR = "error";
public static final java.lang.String INPUT = "input";
public static final java.lang.String LOGIN = "login";
可以再structs.xml进行相应响应
如:
<package name="com.jvortex.j2eeblog.struts" namespace="/" extends="struts-default">
<action name="checkLogin" class="managerAction" method="checkLogin">
<result name="success">/success.jsp</result>
<result name="input">/index.jsp</result>
</action>
</package>
就可以根据返回的类型跳转不一样的页面
上面的ejb调用没做详细介绍了,详情请参考
http://hm4123660.iteye.com/admin/blogs/2038789
这里的return当为上面的值时,会返回所以定义的参数。
如果我们返回List<Manager>lists时,就return "lists";
完成上面这些,我们的登入也就完成了,试试结果:
我们的账号密码是admin,admin
好的我们的登入基本完成了。
我们可以查看火狐,看看前后台的数据是怎样的
相关推荐
为了部署和配置CAS,开发人员可能会使用以下工具: 1. **构建工具**:如Maven或Gradle用于管理和构建项目。 2. **服务器**:如Tomcat或Jetty作为CAS Server的运行环境。 3. **IDE**:如IntelliJ IDEA或Eclipse进行...
【标题】"jsp-yuandaima.rar_登入界面" 提供的是一个基于JSP的登录界面实现,它集成了用户登录、数据添加和删除等功能,适用于初学者和开发者了解和学习Web应用开发中的用户认证与操作管理。该资源特别强调了界面...
通过系统上述功能实现宿舍管理部门对于学生宿舍信息的日常管理,即方便宿舍管理人员及时全面地掌握学生住宿情况及宿舍分配情况;为用户(管理用户和一般用户,如学生)提供了一些简单的数据查询并输出各种信息等;在...
可能的内容包括但不限于报文结构解析、数据字段定义、编码规则、解码算法示例等,旨在帮助开发人员或技术人员理解并实现新能源汽车数据的正确读取和处理。 在实际应用中,对这些信息的深入理解和正确解析能力是确保...
在C#中连接Oracle数据库通常需要使用Oracle官方提供的.NET数据提供程序(Oracle Data Provider for .NET),该提供程序允许开发人员通过ADO.NET API与Oracle数据库进行交互。 #### 安装Oracle客户端 在开始之前,...
标题中的“拥有完整界面的权限登入系统vc++”是指一个基于Microsoft Visual C++(简称VC++)开发的,具有完整用户界面的权限管理系统。这个系统着重于用户登录和权限管理,设计了三个主要的权限组:人员组、设备组和...
在“易语言迅雷Post登入源码”这个项目中,我们主要讨论的是如何使用易语言实现通过POST方法登录迅雷账号的相关技术。 POST登陆是网络应用中常见的用户认证方式,特别是在处理表单提交时。POST请求会将数据封装在...
这种工具在IT管理员、开发人员和系统工程师中非常常见,因为它们提供了便利性和灵活性,使得无需物理访问目标机器就能进行各种任务。 在Linux中,有几种常用的远程登录协议和技术,包括: 1. Secure Shell (SSH):...
该功能的操作角色是教务处工作实践科的工作人员,教务处工作实践科的工作人员登入系统后可以进行项目立项审核信息的查询操作,对立项信息进行审核操作等 (5)项目审核结题信息管理: 该功能的操作角色是教务处工作...
总的来说,这个资源包对于使用PowerBuilder 9.0进行开发的人员来说是非常有价值的。它提供了现成的框架结构,可以加速开发进程,减少重复工作;同时,预设的登录界面皮肤可以为应用提供专业且用户友好的外观。有了...
在本压缩包“易语言源码易语言telnet协议登入源码.rar”中,包含的是使用易语言编写的实现Telnet协议登录功能的源代码。 Telnet协议是一种网络协议,允许用户通过Internet远程登录到另一台计算机。它基于TCP/IP协议...
###### 2.2.1 登入须知 - 在首次登录前,请确保企业的管理员已经添加了员工通讯录信息。 - 如果员工尚未加入企业,需要联系管理员创建企业账户及相应的通讯录。 ###### 2.2.2 登录方式 - **账号密码登录**:使用...
7. **响应式设计**:考虑到不同设备的使用场景,开发人员可能还需要使用响应式设计,使登录注册页面在手机、平板电脑和桌面电脑上都能正常显示和操作。 8. **错误处理与日志记录**:为了调试和优化,需要有良好的...
后端开发人员可能使用Servlet、Spring MVC或者JAX-RS等Java Web框架来处理Ajax请求。服务器会验证接收到的用户名和密码,这通常涉及数据库查询,例如通过SQL语句在用户表中查找匹配的账户。如果验证成功,服务器会...
#### 一、概述 本文档将详细介绍一个iOS应用程序中的用户登录与注册模块的设计与实现细节。这部分功能是任何应用的基础,特别是那些需要用户...通过这些API接口,开发人员可以构建稳定可靠且易于使用的用户管理系统。
在本实验中,我们将配置...这些知识对于理解和管理网络环境至关重要,特别是对于网络管理员和IT专业人员来说,熟练掌握这些技能是日常工作的基础。通过模拟器进行练习,不仅可以加深理论理解,还能提升实际操作能力。
在Qt Quick(QML)框架下,开发人员可以利用其强大的声明式编程能力轻松创建美观且功能丰富的用户界面。QML是一种JSON风格的语言,专为构建图形用户界面而设计,与C++紧密结合,使得高性能应用的开发变得轻而易举。...
这个模板以其酷炫的视觉效果和简洁的设计吸引用户,为Web开发人员提供了一个快速构建基本用户认证界面的基础。尽管模板在注册表单验证方面可能较为简单,但这并不意味着其无法进行扩展和优化。以下将详细解析这个...
验收测试的合格通过准则是软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求。 单元测试和集成测试 单元测试能发现约 80% 的软件缺陷。代码评审是检查源代码是否达到模块设计的要求。自底向上...