:::: 개발 ::::/└ JSP & SPRING

간단한 JSP AJAX 로그인 구현

nayha 2013. 12. 18. 11:33

login.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html lang="ko">

<head>

<meta charset="utf-8">

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/ui-darkness/jquery-ui.css" type="text/css" media="all" />


<script src="/js/jquery-1.8.3.min.js"></script>

<script src="/js/jquery.form.min.js"></script>


<script type="text/javascript">


$(document).ready(function() {

$("#layer_ajax").hide();

$("#layer_ajax").ajaxStart(function(){

$("#wait").css("display","block");

});

  $("#layer_ajax").ajaxComplete(function(){

$("#wait").css("display","none");

});

$("#layer_ajax").ajaxError(function(){

alert("통신 애러");

});


$(".btn-login").click(function(e){

//아래 코드 실행

dataString = $("#login").serialize();

//form 과 직렬화..

$.ajaxSetup({

url:"/login/login_proc.jsp",  

data : dataString,  // 넘겨질 데이타 

       type: "POST",

success:function(result) {

var arr_data = result.split("*");

var data1= arr_data[0];

var data2= arr_data[1];

if(trim(data1) == null || trim(data1) =="" ){

// 받아온 결과가 없으면 아무 작업 안함

}else{

location.href=data1;

}

// 받아온 메세지 전달 (실패 메세지..)

$("#layer_ajax").html(data2);

// 실패면 패스워드 데이타 지우고 포커스 이동

$("input[name=password]").val('');

$("input[name=password]").focus(); 

}  

});  

 

$.ajax();

$("#layer_ajax").show();

}); 


});

// 공백 제거

function trim(txt)

{

return txt.replace(/(^\s*)|(\s*$)/g, "");

}

</script>


</head>

<body>


<form  id ="login" >

<!-- 로그인 전에 url 을 전달하기 위해 히든으로 url 받아둔다 -->

<input type="hidden"  name="redirectURI"  value="<%=(request.getAttribute("redirectURI"))==null?"/":request.getAttribute("redirectURI")%>" >

<fieldset class="login-form">

<p class="chk-p"><input type="radio" class="screen-out">

<label for="" class="label-point"><span class="ir radio-box active"></span>개인회원</label><input type="radio" class="screen-out">

<label for="" class="label-point"><span class="ir radio-box active"></span>법인회원</label></p>

<p class="input"><input type="text"  name="user" class="input-text"></p>

<p class="input"><input type="password" name="password"  class="input-text"></p>

<button type="button" class="btn-login">로그인</button>

<div id="layer_ajax"></div>

<p class="chk-p"><input type="checkbox" class="screen-out"><label for="" class="label-point"><span class="ir check-box active"></span>아이디 저장</label></p>

</fieldset>

</form>

</body>

</html>


login_proc.jsp


<%@ page contentType="text/html;charset=EUC-KR"%>

<%

    // 로그인 정보 설정

    String userID="";

    String userPWD="";

    String userLevel="";

    String loginMsg = "";

    String redirectURI ="";

    String level ="";

    

    // login.jsp로부터 form data를 받는다

    String id = request.getParameter("user");

    String pwd = request.getParameter("password");

    

    String member_select_query="select userid,level,userpw from Member where userid=\'"+id+"\'and userpw = \'"+pwd+"\';";

 try {

  ResultSet member_info = stmt.executeQuery(member_select_query);

  while(member_info.next())

  {

  userID=member_info.getString("userid");

  userLevel=member_info.getString("level");

  userPWD = member_info.getString("userpw");

  }

 }

 catch(Exception e)

 {

  out.println("[ERROR] "+e.getMessage());

 }

    

    // id, pwd가 맞을 경우 실행

    if(userID.equals(id) && userPWD.equals(pwd)) 

    {

        session.setAttribute("s_Level",userLevel);

        session.setAttribute("s_Id", userID);

        loginMsg ="성공";

        //response.sendRedirect("./main.jsp"); // main.jsp 에 session 정보를 보낸다

        redirectURI  = request.getParameter("redirectURI");

    }

    else

    {

        loginMsg ="로그인 실패";

       // response.sendRedirect("./main.jsp");

    }

%>

<!-- * 로 구분하여 다중 메세지 전송 -->

<%=redirectURI%>*<%=loginMsg%>


login_check.jsp


<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>


<%

    String checkLevel = "";

    String checkId = "";

    

    checkLevel = (String)session.getAttribute("s_Level");

   

    if(checkLevel == null) // 세션이 없으면 로그인 페이지 이동

    {

        String login_url = "/pages/login/login.jsp";  //로그인페이지

        request.setAttribute("redirectURI", request.getRequestURI());

        RequestDispatcher dispatcher = request.getRequestDispatcher( login_url );

        dispatcher.forward(request, response); 

    }

    checkId = (String)session.getAttribute("s_Id");

%>



로그인이 필요한곳에 파일 인쿠르드


<%@include file="/login/login_check.jsp" %>


반응형