struts 2+jquery ajax 로그 인 사례 상세 설명

4871 단어 struts2jqueryajax
텍스트 기기 의 인 스 턴 스 는 struts 2+jquery 가 ajax 로그 인 을 실현 하 는 방법 을 설명 합 니 다.구체 적 인 절 차 는 다음 과 같 습 니 다.
1.웹 항목 을 새로 만 들 고 test 라 는 이름 을 지 었 습 니 다.struts 2 환경 을 설정 하고 Jquery 의 js 파일 을 이 항목 으로 가 져 옵 니 다.
2.com.action 패키지 아래 loginAction.java 를 새로 만 듭 니 다.
loginAction.java 의 코드 는 다음 과 같 습 니 다.

package com.action;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;

import com.opensymphony.xwork2.ActionSupport;

@Action("login")
@ParentPackage(value = "json-default")
@Results({ @Result(name = "success", type = "json", params = { "data", "flag" }), })
public class LoginAction extends ActionSupport {

  /**
   * 
   */
  private static final long serialVersionUID = 1751244794407005783L;
  private String flag;
  private String username;
  private String password;

  public String execute() {
    try {
      if (getUsername() == null || getUsername().trim().equals("")) {
        setFlag("       ");
        return SUCCESS;
      } else if (getPassword() == null || getPassword().trim().equals("")) {
        setFlag("      ");
        return SUCCESS;
      } else if (getUsername().trim().equals("admin")
          && getPassword().equals("admin")) {
        setFlag("    ");
        return SUCCESS;
      } else {
        setFlag("        ");
        return SUCCESS;
      }
    } catch (Exception e) {
      e.printStackTrace();
      setFlag("    ");
      return SUCCESS;
    }
  }

  public String getFlag() {
    return flag;
  }

  public void setFlag(String flag) {
    this.flag = flag;
  }

  public String getPassword() {
    return password;
  }

  public void setPassword(String password) {
    this.password = password;
  }

  public String getUsername() {
    return username;
  }

  public void setUsername(String username) {
    this.username = username;
  }

}

3.WebRoot 디 렉 터 리 에 index.jsp 와 success.jsp 를 새로 만 듭 니 다.
index.jsp 는 로그 인 인터페이스 이 고,success.jsp 는 로그 인 성공 후 점프 하 는 인터페이스 입 니 다.
index.jsp 내용 은 다음 과 같 습 니 다.

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
  String path = request.getContextPath();
  String basePath = request.getScheme() + "://"
      + request.getServerName() + ":" + request.getServerPort()
      + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>" rel="external nofollow" >

<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<script type="text/javascript" src="./resource/js/jquery.min.js"></script>
</head>
<script type="text/javascript">
  $(document).ready(function() {
    $(".loginButton").click(function() {
      var name = $("#username").val();//       
      var password = $("#password").val(); //      
      $.post("login", {
        username : name,
        password : password
      }, callback, "json");
    });

    function callback(data) {
      var value=data.flag;
      if(value=="    "){
      location.href="./success.jsp" rel="external nofollow" ;
      }else{
       alert(value);
    }
  });
</script>
<body>
  <input name="username" id="username" type="text" />
  <input name="password" id="password" type="password" />
  <button class="loginButton" class="btn btn-inverse">  </button>
</body>
</html>

좋은 웹페이지 즐겨찾기