2011-10-04 3 views
1

등록 양식에서 사용자 이름이 고유하다는 것을 확인하려고하고 있으며 양식이 만들어진 후이 서버 측과 대조적으로 클라이언트가 입력 한 직후 사용자 이름의 고유성을 확인하려고합니다. 제출.MySQL 데이터베이스 클라이언트 측 쿼리

결과 집합을 데이터베이스에서 수집하여 배열에 저장 한 다음 JSP 형식의 JSP 페이지로 전달해야합니다 (모델 2 디자인을 사용하므로 사용자가 도착하기 전에 서블릿을 통과합니다). jsp 페이지에서)? 배열이 매우 큰 경우 어떻게해야합니까? 이 데이터를 자바 스크립트로 가져 오려면 어떻게해야합니까?

또는 클라이언트 측에서 ajax와 javascript를 모두 사용하여 쿼리를 수행하는 방법이 있습니까? 아마도 어쨌든 백그라운드에서 쿼리를 실행할 수 있습니까?

나는 이런 식으로 뭔가를 연구하기 시작해야할지에 관해선 우둔하기 때문에 어떤 방향을 찾고 있습니다. 이것도 똑똑한 움직임, 성능 현명한가?

+0

왜이 쿼리가 큰 결과 집합을 반환합니까? 하나의 행과 하나의 열을 얻을 수 있습니다 (예 : 사용자 이름이 이미 있거나 행이없는 경우). –

+0

큰 것은 기본적으로 데이터베이스에서 모든 사용자 이름을 수집하고 arraylist를 채우고 사용자가 실제로 양식을 제출하기 전에 jsp 페이지로 보내면 발생합니다. 그것이 적절한 접근 방법인지 아닌지에 관해서는 큰소리로 생각하는 것이 었습니다. – ryandlf

+0

아. JSP에 익숙하지 않지만 모든 사용자 이름이 클라이언트로 전송된다는 의미입니까? 보안상의 선택이 좋지 않을 것입니다. 어쨌든 캐싱의 이유로 그것을하지 않는다면, 데이터베이스에서 모든 사용자 이름을 읽어 들여 확인해야 할 이유가 없습니다. –

답변

1

"AJAX"를 사용하고 싶습니다.

다음과 같은 한 가지 방법이 있습니다. 양식의 사용자 이름 텍스트 필드에 blur() 핸들러를 설정하십시오. blur() 메서드가 호출되면 사용자 이름을 백엔드 코드에 게시합니다. 그것을 검증하고 적절한 응답을 리턴합니다. 그런 다음 응답을 구문 분석하고 사용자 이름 텍스트 필드의 CSS 클래스를 변경 (예 : 빨간색으로 변경)하거나 "사용중인 사용자 이름"을 나타 내기 위해 시각적으로 원하는 작업을 수행합니다.

어느 쪽이든, 확인을 위해 클라이언트에서 서버로 사용자 이름을 가져와야합니다. 클라이언트가 DB (보안/악용 등)를 직접 사용할 수있는 메커니즘을 원하지는 않을 것입니다.

아직 익숙하지 않다면 jQuery (http://jquery.com/)에서 클라이언트 측 생활을 훨씬 쉽게 할 수 있습니다.

+0

백엔드 코드에 사용자 이름을 게시하는 방법은 무엇입니까? 실제로 현재 페이지에서 다른 페이지로 이동해야합니까? 아니면이 모든 작업이 사용자에게 예고없이 백그라운드에서 수행 될 수 있습니까? – ryandlf

+0

jQuery를 통해 "ajax"를 사용합니다. 참조 : http://api.jquery.com/jQuery.ajax/ –