struts2 + jquery + json模拟登陆效果
1、新建工程,添加struts2必需jar包及相应版本的struts2-json-plugin-X.jar
2、在web.xml增加下面的struts2的配置;
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>struts.i18n.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、在src目录下增加新建一个struts.xml配置文件,其内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--当struts.xml配置文件修改后,系统是否重新加载该文件,开发阶段打开此功能 -->
<constant name="struts.configuration.xml.reload" value="true" />
<!-- 指定WEB应用的编码集,相当于调用HttpServletRequest.setCharacterEncodint方法,如果使用了velocity或freemarker,它也用于指定输出的编码格式 -->
<constant name="struts.i18n.encoding" value="UTF-8" />
<!-- 指定请求后缀为.action,指定多个请求后缀用逗号分隔 -->
<constant name="struts.action.extension" value="action" />
<!--设置浏览器是否缓存静态内容,建议:开发阶段关闭,运行时开启 -->
<constant name="struts.serve.static.browserCache" value="false" />
<!-- 开发提示:出错时打印更详细的信息-->
<constant name="struts.devMode" value="true" />
<!-- 这样配置后就可以再action的name元素中使用“/” -->
<constant name="struts.enable.SlashesInActionNames" value="true"/>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<package name="ssh" extends="json-default">
<action name="login" class="com.starit.action.LoginAction">
<result type="json"></result>
</action>
</package>
</struts>
4、写测试登陆页面及JS文件:
<%@ page contentType="text/html; charset=GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Struts2|JQuery|Json</title>
<SCRIPT type="text/javascript" src="resources/js/jquery.js"></script>
<SCRIPT type="text/javascript" src="resources/js/login.js"></SCRIPT>
</head>
<body>
<div id="msg"></div>
username:
<input name="username" id="username" type="text" />
<br />
password:
<input name="password" id="password" type="password" />
<br />
<input type="submit" id="submit" value="login">
</body>
</html>
login.js:
$(document).ready(function() {
// 直接把onclick事件写在了JS中
$("#submit").click(function() {
$.ajax({
url : "login.action",// 后台处理程序
type : "post", // 数据发送方式
dataType : "json",// 接收数据格式
//dataType : "text",
data : "user.username="+$("#username").val() + "&user.password="+$("#password").val(),// 要传递的数据
// 回传函数
timeout:20000,// 设置请求超时时间(毫秒)。
error: function () {// 请求失败时调用函数。
$("#msg").html("请求失败!");
},
/* success:function(data){ //请求成功后回调函数。
var dataObj=eval("("+data+")");//如果dataType是text则需要转换为json对象
$("#msg").html(dataObj.message);
alert("用户名:"+dataObj.user.username+",密码:"+dataObj.user.password);
}*/
success:function(data){ // 请求成功后回调函数。如果dataType是json不就需要再转换为json对象
$("#msg").html(data.message);
alert(data);
alert("用户名:"+data.user.username+",密码:" + data.user.password);
}
});
});
});
5、这里接收前台数据使用对象属性的方式,下面写一个User类,内容如下:
/**
* File : User.java
* Author : zqding
* Date : 2010-7-22
* Desc :
*/
package com.starit.bean;
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = -8644381589680156624L;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
6、再增加一个控件逻辑LoginAction类,其内容如下:
/**
* File : LoginAction.java
* Author : zqding
* Date : 2010-7-22
* Desc :
*/
package com.starit.action;
import com.opensymphony.xwork2.ActionSupport;
import com.starit.bean.User;
public class LoginAction extends ActionSupport {
private static final long serialVersionUID = -94733813417893940L;
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String execute() throws Exception {
if ("zqding".equals(user.getUsername()) && "zqding".equals(user.getPassword())) {
message = "登陆成功!";
System.out.println("user:" + user.getUsername() + "pass:" + user.getPassword());
} else {
message = "用户名/密码有误!";
}
return "success";
}
}
7、发布到应用服务器,进行测试。
http://localhost:9090/SSH/login.jsp
分享到:
相关推荐
- **Struts2的JSON插件**:虽然题目要求不使用JSON,但通常情况下,Struts2通过JSON插件返回数据给jQuery是最方便的方式。不过,我们可以通过设置Content-Type为"text/plain"或"text/html",让Struts2返回非JSON...
### Struts2 + jQuery + JSON 实现Ajax 在现代Web开发中,Ajax技术因其能够实现网页的局部刷新而被广泛采用。本篇文章介绍如何利用Struts2框架结合jQuery与JSON来构建一个简单的Ajax功能。 #### 一、环境搭建 1. ...
Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON Struts2 Jquery JSON
Struts2、Spring、Hibernate、jQuery 和 JSON 是五个在IT行业中极为重要的技术组件,它们各自在Web应用开发中扮演着不同的角色。这篇文章将详细介绍这些技术的整合使用以及它们的功能。 首先,Struts2 是一个基于 ...
Struts2、jQuery、JSON和Ajax是Web开发中常见的技术栈,它们共同为构建动态、交互式的用户界面提供了强大的支持。下面将详细解释这些技术及其在登录示例中的应用。 Struts2是一个基于MVC(Model-View-Controller)...
Struts2、jQuery和JSON是Web开发中的三个关键技术,它们在构建动态、交互式的Web应用程序时发挥着重要作用。下面将分别对这三个技术进行详细解释,并探讨它们如何协同工作。 Struts2是一个基于MVC(Model-View-...
这个资源"struts2+json"显然涉及到在Struts2框架下实现JSON(JavaScript Object Notation)数据交换,这是一种轻量级的数据交换格式,广泛用于前后端交互,特别是AJAX(Asynchronous JavaScript and XML)请求。...
Struts2、JSON和jQuery是Web开发中常用的三个技术,它们在构建动态、交互式的Web应用程序时发挥着关键作用。这个例子将展示如何整合这三个工具,实现前后端的数据交换。 首先,Struts2是一个强大的MVC(Model-View-...
struts2+jQuery+json实现AJAX.zip
Struts2、JSON和JQuery是Web开发中的三个关键技术,它们常常被结合使用来构建高效、动态的用户界面。在本教程中,我们将探讨如何利用这些技术实现一个简单的验证功能。 首先,Struts2是一个基于MVC(Model-View-...
在这个"struts2+ajax+jquery"的主题中,我们将深入探讨如何利用Struts2、jQuery和Ajax技术实现Web页面的异步交互。 首先,Struts2作为MVC框架,它的核心是Action,它负责处理用户的请求,并通过配置的Result返回...
结合struts2.3.4+jQuery+mysql+json开发的一个小例子。
在这个"struts2+jquery+json"的小例子中,我们可能会看到以下几个关键知识点: 1. **Struts2框架**: - **Action和Result**:Struts2的核心组件,Action负责业务逻辑处理,Result负责控制页面跳转。 - **...
json+jquery+struts2+hibernate+spring 实现的小型bbs系统,这个提供包 ,很不错的下载后,好好徐希一下吧
Struts2、JSON和Android是三个在Web应用开发中至关重要的技术。本示例将详细介绍如何结合这三者实现一个简单的交互。 首先,Struts2是一个基于MVC(Model-View-Controller)架构的Java Web框架,它简化了创建动态、...
在"Struts2+JQuery+Json实例"中,我们探讨的是如何结合这三个技术来创建动态、响应式的Web应用。以下是这个实例中的关键知识点: 1. **获取JS值**:在JQuery中,我们可以使用`val()`函数来获取表单元素的值,如...
在Struts2框架下,我们可以使用Jquery的Ajax方法向服务器发送请求,获取JSON或XML数据,然后动态更新页面的部分内容。 在"06-mvc之struts2.ppt"中,可能涵盖了以下内容: 1. Struts2框架的基本概念和架构 2. 如何...
Struts2、jQuery和JSON是Web开发中的三个关键组件,它们共同构成了高效、动态和交互式的用户界面。这里我们将深入探讨这三个技术,并结合实例来理解它们如何协同工作。 首先,Struts2是一个基于MVC(Model-View-...
在项目中,`Struts2JQueryJson`文件夹可能包含了HTML页面、JavaScript脚本、Struts2相关的Action类、以及可能的 strut2 配置文件等资源。 总结来说,这个实例通过结合Struts2的后端控制、jQuery的前端交互和JSON的...