视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
ajax交互Struts2的action(客户端/服务器端)
2020-11-27 22:52:22 责编:小采
文档


1.客户端网页代码
代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>检测用户名是否唯一</title>
<script language="javascript">
function createRequest(url) {
http_request = false;
if (window.XMLHttpRequest) { // 非IE浏览器
http_request = new XMLHttpRequest(); //创建XMLHttpRequest对象
} else if (window.ActiveXObject) { // IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP"); //创建XMLHttpRequest对象
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP"); //创建XMLHttpRequest对象
} catch (e) {
}
}
}
if (!http_request) {
alert("不能创建XMLHttpRequest对象实例!");
return false;
}
http_request.onreadystatechange = getResult; //调用返回结果处理函数
http_request.open('GET', url, true); //创建与服务器的连接
http_request.send(null); //向服务器发送请求
}
function getResult() {
if (http_request.readyState == 4) { // 判断请求状态
if (http_request.status == 200) { // 请求成功,开始处理返回结果
document.getElementById("toolTip").innerHTML = http_request.responseText; //设置提示内容
document.getElementById("toolTip").style.display = "block"; //显示提示框
} else { // 请求页面有错误
alert("您所请求的页面有错误!");
}
}
}
function checkUser(userName) {
if (userName.value == "") {
alert("请输入用户名!");
userName.focus();
return;
} else {
//createRequest('http://10.65.9.181:8090/ajax/checkUser.jsp?user='+userName.value);
createRequest('http://10.65.9.181:8090/ajax/checkUser.action?user='
+ userName.value);
}
}
</script>
<style type="text/css">
<!--
#toolTip {
position: absolute;
left: 331px;
top: 39px;
width: 98px;
height: 48px;
padding-top: 45px;
padding-left: 25px;
padding-right: 25px;
z-index: 1;
display: none;
color: red;
background-image: url(images/tooltip.jpg);
}
-->
</style>
</head>
<body style="margin: 0px;">
<form method="post" action="" name="form1">
<table width="509" height="352" border="0" align="center"
cellpadding="0" cellspacing="0" background="images/bg.gif">
<tr>
<td height="54"> </td>
</tr>
<tr>
<td height="253" valign="top">
<div style="position: absolute;">
<table width="100%" height="250" border="0" cellpadding="0"
cellspacing="0">
<tr>
<td width="18%" height="54" align="right" style="color: #8e6723"><b>用户名:</b></td>
<td width="49%"><input name="username" type="text"
id="username" size="32"></td>
<td width="33%"><img src="images/checkBt.jpg" width="104"
height="23" style="cursor: hand;"
onClick="checkUser(form1.username);"></td>
</tr>
<tr>
<td height="51" align="right" style="color: #8e6723"><b>密码:</b></td>
<td><input name="pwd1" type="password" id="pwd1" size="35"></td>
<td rowspan="2">
<div id="toolTip"></div>
</td>
</tr>
<tr>
<td height="56" align="right" style="color: #8e6723"><b>确认密码:</b></td>
<td><input name="pwd2" type="password" id="pwd2" size="35"></td>
</tr>
<tr>
<td height="55" align="right" style="color: #8e6723"><b>E-mail:</b></td>
<td colspan="2"><input name="email" type="text" id="email"
size="45"></td>
</tr>
<tr>
<td> </td>
<td colspan="2"><input type="image" name="imageField"
src="images/registerBt.jpg"></td>
</tr>
</table>
</div>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
</form>
</body>
</html>

2.服务器端代码
Action类的代码
代码如下:

package com.action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.xzy.UserDAO;
public class CheckUserAction extends ActionSupport{
private String user;
public String findUserByName(){
String info = null;
UserDAO userdao = new UserDAO();
if(userdao.findUserByName(user)){
//info="用户名已经被注册";
Map map = (Map)ActionContext.getContext().get("request");
map.put("info", "用户名已经被注册");
return "success";
}else{
//info="用户名可以注册";
Map map = (Map)ActionContext.getContext().get("request");
map.put("info", "用户名可以注册使用");
return "fail";
}
}

public String getUser() {
return user;
}

public void setUser(String user) {
this.user = user;
}
}

struts.xml配置
代码如下:


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="myPackage" extends="struts-default">
<!-- 定义action -->
<action name="checkUser" class = "com.action.CheckUserAction" method="findUserByName">
<!-- 定义处理成功后的映射页面 -->
<result >/info.jsp</result>
</action>
</package>
</struts>

info.jsp为显示信息页面
代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%=request.getAttribute("info")%>

info.jsp是jsp页面,对于与安卓客户端交互的jsp页面而言,尽量略去不必要的html代码,只需要保留控制编码格式的代码和<%%>之间的处理代码,这样就避免了在安卓客户端显示不必要的垃圾代码,且提高了执行效率,降低了服务器负载。
数据库截图:
 
最终效果图:

下载本文
显示全文
专题