52,782
社区成员
发帖
与我相关
我的任务
分享
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for LoginForm form</title>
</head>
<script type="text/javascript">
var http_request = false;
var callback;
function send_request(url,callbackFunc) ////初始化、指定处理函数、发送请求的函数
{
callback=callbackFunc;
http_request = false;////定义XMLHttpRequest对象
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest)//如果当前浏览器支持XMLHttpRequest则,创建XMLHttpRequest对象
{//如果是Mozilla浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType)//overrideMimeType是用来给返回的消息加header的 setRequestHeader是用来给发送的 消息加header的
{//设置 Mime级别
http_request.overrideMimeType('text/html');
}
}else if (window.ActiveXObject)////如果当前浏览器支持ActiveXObject则,创建
{//如果是IE浏览器
try{
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e)
{
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e)
{
}
}
}else if(window.createRequest)
{//IceBrowser使用另外一个方法:window.createRequest()。
try{
http_request=window.createRequest();
}
catch(ew)
{
}
}
if (!http_request)
{//异常,创建对象实例失败
window.alert("不能创建XMLHttpRequest对象实例!");
return false;
}
http_request.onreadystatechange = processRequest;//服务器完成后,客户端处理事件 onreadystatechange每个状态改变都会触发这个事件处理器
http_request.open("GET", url, true);//open(method, url, async, username, password) async 参数指示请求使用应该异步地执行。如果这个参数是 false,请求是同步的,后续对 send() 的调用将阻塞,直到响应完全接收。如果这个参数是 true 或省略,请求是异步的,且通常需要一个 onreadystatechange 事件句柄。
http_request.send(null);//send(body)如果通过调用 open() 指定的 HTTP 方法是 POST 或 PUT,body 参数指定了请求体,作为一个字符串或者 Document 对象。如果请求体不适必须的话,这个参数就为 null。对于任何其他方法,这个参数是不可用的,应该为 null(有些实现不允许省略该参数)。
}
//处理返回信息的函数----与Ajax初始化中的 http_request.onreadystatechange=processRequest;对应调用
function processRequest()
{
if (http_request.readyState == 4)// 判断对象状态-----如果请求完成
{////readyState请求状态,有5个可取值:0、未初始化,1、正在加载,2、已加载,3、交互中,4、完成
if (http_request.status == 200)////status服务器的HTTP状态码
{// 信息已经成功返回,开始处理信息
setTimeout( callback, 2 );//设置连接延时
}else
{//页面不正常
alert("您所请求的页面有异常。");
}
}
}
function loginCheck()
{
var username = document.getElementById("username").value;//获取用户名
var userpassword = document.getElementById("userpassword").value;//获取密码
var submitURL="../login.do?status=select&username="+username+"&userpassword="+userpassword;//将获得的值传入action中处理
send_request(submitURL,'showMessage()');
}
function showMessage()
{
var err = document.getElementById("errMsg");
if ( err != null )
{
err.innerHTML = http_request.responseText;//取得服务器的返回结果
//responseText服务器响应,表示为一个串,Ajax就是通过这两个东东来得到服务器的资料的,responseText最常用的就是返回一个HTML,然后innerHTML在某个DIV中,或返回一个文本,innerHTML在某个SPAN中!
//responseXML最常用就是返回XML然后解析为一个DOM对象,然后取得其中的数据!大概用在列表显示吧!举例如在业务逻辑那里生成一个List的USER列表,里面存取USER信息,然后在迭带List写成XML返回就可以了!
//statusText服务器的HTTP状态码相应的文本
err.style.display="block";
}
}
</script>
<body>
<html:form action="login?status=select">
<table align="center">
<tr>
<td colspan="2" align="center">登陆信息</td>
</tr>
<tr>
<td>用户名</td>
<td><input type="text" id="username" name="username" onBlur="loginCheck();"/></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" id="userpassword" name="userpassword" onBlur="loginCheck();"/></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="submit" value="提交"/> <input type="reset" name="reset" value="取消"/>
<BR/><html:errors/> <div id="errMsg" class="errMessage" style="display:none"></div>
</td>
</tr>
</table>
</html:form>
</body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="com.YaBao.struts.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="loginForm"
input="/login/login.jsp"
name="loginForm"
parameter="status"
path="/login"
scope="request"
type="com.YaBao.struts.action.LoginAction">
<forward name="success" path="/login/login.jsp" />
</action>
</action-mappings>
<!-- 加上controller就不用再配置action的type属性了/或者说type属性不用改为
type="org.springframework.web.struts.DelegatingActionProxy" -->
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
<message-resources parameter="com.YaBao.struts.ApplicationResources" />
<!--配置一个插件去集成spring -->
<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/applicationContext.xml" />
</plug-in>
</struts-config>
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.YaBao.struts.action;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import com.YaBao.Dao.YaBaoDAO;
import com.YaBao.struts.form.LoginForm;
import org.apache.log4j.*;
/**
* MyEclipse Struts
* Creation date: 04-27-2009
*
* XDoclet definition:
* @struts.action path="/login" name="loginForm" input="/login/login.jsp" parameter="status" scope="request" validate="true"
* @struts.action-forward name="success" path="/success.jsp"
*/
public class LoginAction extends DispatchAction {
/*
* Generated Methods
*/
public YaBaoDAO yabaoDAO;
public YaBaoDAO getYabaoDAO() {
return yabaoDAO;
}
public void setYabaoDAO(YaBaoDAO yabaoDAO) {
this.yabaoDAO = yabaoDAO;
}
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
* @throws IOException
* @throws IOException
*/
public ActionForward select(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws IOException {
/*LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
System.out.println(loginForm.getUsername());
System.out.println(loginForm.getUserpassword());
Logger logger=Logger.getLogger(LoginAction.class);
logger.debug("-----------这是一个debug-----------");
logger.info("-----------这是一个info-----------");
logger.warn("-----------这是一个warn-----------");
logger.error("-----------这是一个error-----------");
logger.fatal("-----------这是一个fatal-----------");
this.yabaoDAO.select();*/
String usernameString=request.getParameter("username");
String userpasswordString=request.getParameter("userpassword");
System.out.println(usernameString);
System.out.println(userpasswordString);
response.setContentType("text/html");
java.io.PrintWriter out = response.getWriter();
out.println(usernameString);
out.println(userpasswordString);
return null;
//return mapping.findForward("success");
}
}