인 스 턴 스 분석 자바+jQuery+json 작업 과정(로그 인)
작가 의회계 관리 시스템(개인 판)원본 코드 다운로드설명 을 참고 하 다.
1.관련 기술,도구 소개
1.간단히 소개JSON,JSON 은 경량급 데이터 교환 형식 입 니 다.사람 이 읽 고 쓰기 쉽다.기계 적 으로 해석 하고 생 성 하기 도 쉽다.키 값 은 형식 에 대해 데 이 터 를 표시 합 니 다.자바 의 Map 데이터 저장 형식 과 비슷 합 니 다.구체 적 인 세부 사항 은 참고 하 십시오http://www.json.org/json-zh.html.
2.배경 JSON 에 대응 하 는 데이터 처리 도구json-lib,각종 형식의 데 이 터 를 포함 하 는 도구 류,예 를 들 어 자바 빈,배열,집합(Collection)등참조 API 문서.
3.jQuery 프레임 워 크 의 데이터 표현 형식 입 니 다.jQuery 에 익숙 하 다 면 jQuery 가 사용 하 는 데이터 전송 은 모두 JSON 형식 입 니 다.예 를 들 어 우리 가 자주 사용 하 는$.ajax 방법:
$.ajax({
url : url,
data : {
id : chkValue
},
cache : false,
dataType : "json",
success : function(result){
alert(result);
}
);
그 중{...}은 JSON 형식의 데 이 터 를 표시 합 니 다.
2.프론트 데스크 의 작업 방식 은 시스템 로그 인 설명 을 쉽게 이해 할 수 있 도록 마지막 으로 하나의 사례 로 1.로그 인 페이지 코드 를 설명 할 것 입 니 다http://code.google.com/p/finance-p/source/browse/trunk/login.jsp.
:
<input id="loginName" name="loginName" size="20" type="text" />
:
<input id="password" name="password" size="20" type="password" />
2,javascript 파일 로그 인 login.js
/**
*
*/
function regFormValidator() {
$.formValidator.initConfig({formid:"loginForm"});
$("#loginName").formValidator({
onshow : " ",
onfocus : " 2 , 4 "
}).inputValidator({
min : 1,
onerror : " , "
});
$("#password").formValidator({
onshow : " "
}).inputValidator({
min : 6,
onerror : " 6 , "
});
}
$(function() {
//
regFormValidator();
$('#submit').click(function(){
// 、
var valid = jQuery.formValidator.pageIsValid('1');
if (valid) {
$(this).attr('value', ' ……').attr('disabled', true);
} else {
return;
}
//
$.ajax({
url : 'login.do',
data : { loginName:$('#loginName').val(), password: $('#password').val() },
success : function(result){
// result
if(result && result == 'success') {
window.location.href = 'index.jsp';
} else {
alert(' , , !');
}
}
});
});
});
이렇게"로그 인"단 추 를 눌 렀 을 때 ajax 요청 을 실행 합 니 다:
3.백 스테이지 작업 방식
백 스테이지 가 프론트 데스크 보다 좀 복잡 해서 데이터베이스,인 코딩 또는 일부 업무 논리 와 관련 이 있다 고 생각 합 니 다.
1.요청 파라미터 획득
두 가지 방법 이 있 습 니 다.
먼저 우 리 는 공공 적 인 방법 을 써 서net.sf.json.JSONObject대상 을 되 돌려 줄 수 있 습 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.
/**
* JSONObject
*
* @param request HttpServletRequest
* @return json String
* @throws Exception
*/
@SuppressWarnings("unchecked")
protected JSONObject readJson(HttpServletRequest request) throws Exception {
JSONObject jsonObject = new JSONObject();
try {
Map parameterMap = request.getParameterMap();
// key value set JSONObject
Iterator paIter = parameterMap.keySet().iterator();
while (paIter.hasNext()) {
String key = paIter.next().toString();
String[] values = (String[])parameterMap.get(key);
jsonObject.accumulate(key, values[0]);
}
log.debug(" json=" + jsonObject.toString());
} catch (Exception e) {
log.error(" json , :nt" + e.getMessage());
e.printStackTrace();
throw e;
}
return jsonObject;
}
이 방법 을 통 해 우 리 는 JSONobject 대상 을 얻 은 후에 key 를 통 해 대응 하 는 value 를 얻 을 수 있다.
2、로그 인 처리 Action
public ActionForward login(ActionMapping mapping, ActionForm actionForm,
HttpServletRequest request,HttpServletResponse response) throws Exception {
JSONObject jsonObject = readJson(request);
String name = jsonObject.getString("loginName");
String pass = jsonObject.getString("password");
try {
int loginFlag = userManager.validLogin(name, pass);
if (loginFlag == UserManager.LOGIN_SUCCESS) {
User user = userManager.getUserByNameAndPass(name, pass);
UserUtil.saveUser2Session(user, request);
log.info(" <" + user.getUserName()
+ ",ip=" + request.getRemoteAddr() + "> ");
print(response, RESBONSE_SUCCESS);
} else if (loginFlag == UserManager.LOGIN_FAIL) {
print(response, RESBONSE_ERROR);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
설명:
34 줄 에서 우 리 는 방금 준비 한 readJSon 방법 을 통 해 JSonobject 대상 을 얻 었 습 니 다.그 다음 에 key 를 통 해 사용자 이름과 비밀 번 호 를 얻 었 습 니 다.그 다음은 업무 논리의 검증 작업 입 니 다.통과 한 후에 우 리 는 프론트 데스크 에 요청 결 과 를 되 돌려 줍 니 다.우 리 는 위 44,46 줄 과 같은 작은 방법 이 필요 하 다.
protected void print(HttpServletResponse response, String info) throws IOException {
try {
response.getWriter().print(info);
} catch (IOException e) {
e.printStackTrace();
throw e;
}
}
여기 서 한 가지 설명 할 것 이 있 습 니 다.출력 흐름 을 얻 었 을 때 에피소드 가 있 습 니 다.제 가 개발 할 때 사용 한 tomcat 5.5.5.26 버 전 입 니 다.그 당시 의 작성 방법 은 다음 과 같 습 니 다.
response.getOutputStream().print(info);
tomcat6 , , , ,
getWriter , ……
자바 개발 시 struts 를 사용 합 니 다.struts 는 Action Mapping 대상 을 되 돌려 야 합 니 다.그러나 ajax 요청 에 서 는 특정 페이지 로 돌아 갈 필요 가 없습니다.페이지 를 뛰 어 넘 는 동작 이 전혀 없 기 때문에 해결 방법 은 간단 합 니 다.직접 return null 을 사용 하면 됩 니 다.
결 과 를 출력 한 후 jQuery 의 ajax success 방법 은 요청 결 과 를 받 은 다음 결과 에 따라 업무 논 리 를 처리 할 수 있 습 니 다 O(∩∩)O~
OK,이 모든 요청 이 끝 났 습 니 다.모 르 는 것 이 있 으 면 메 시 지 를 남기 거나"에 대하 여".로 연락 주세요.
주:본 고 는 오리지널 문장 입 니 다.전재 할 때http://www.wsria.cn/archives/300
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.