/**
설명: ASP 요청 개체를 사용할 때 주의해야 할 작은 문제 작성자: Ci Qinqiang
이메일: [email protected]
**/
ASP에서 요청 개체는 클라이언트가 제출한 데이터를 얻는 데 매우 중요한 개체이며 모든 사람이 이에 대해 매우 잘 알고 있습니다.
그럼에도 불구하고 사람들은 종종 나에게 다음 글쓰기 방법의 차이점이 무엇이며 어떻게 작성해야 하느냐고 묻습니다.
strMessage = 요청("msg")
strMessage = Request.Form("msg")
게다가 많은 사람들이 작성한 코드를 본 적이 있는데, 모두 Request("") 방식으로 작성되어 있습니다. 물론 이렇게 작성해도 문제가 없습니다.
하지만 모두가 주목해야 할 점
Request 객체에는 클라이언트가 제출한 데이터를 얻기 위한 여러 컬렉션이 있습니다. 일반적으로 사용되는 컬렉션은 QueryString, Form 및 ServerVariables입니다.
어떤 종류의 컬렉션이라도 Request("")를 통해 직접 얻을 수 있다면 문제가 됩니다.
Get 메소드와 Post 메소드는 username=cqq와 같은 동일한 변수를 제출한 다음 Request("username")를 사용합니다.
가져온 데이터는 Get의 데이터인가요, 아니면 Post의 데이터인가요?
따라서 이 질문이 나오면 모두가 이를 생각해야 합니다. Request는 이러한 컬렉션에서 순서대로 데이터를 가져오며, 순서는 QueryString, Form, 마지막으로 ServerVariables입니다. 요청 개체는 이러한 컬렉션의 변수를 이 순서대로 검색합니다. 일치하는 항목이 있으면 중지되고 나머지는 무시됩니다. 따라서 위의 예 Request("username")
실제로 얻은 것은 Get 메서드에 의해 제출된 데이터입니다.
따라서 효율성을 높이고 불필요한 검색 시간을 줄이고 프로그램의 표준화를 위해서는 Request.Form("username")과 같은 Request.Form 수집 방식을 사용하는 것이 좋습니다.
다음은 테스트 예시입니다. 제출 후테스트
할 주소 뒤에 ?username=aaa를 직접 추가할 수 있습니다.
요청("제출")<>""인 경우
Response.Write "직접 가져오기:"& 요청("사용자 이름") & "<br>"
Response.Write "Get:" & Request.QueryString("사용자 이름") & "<br>"
Response.Write "게시물 가져오기:" & Request.Form("사용자 이름") & "<br>"
다음과 같은 경우 종료
%>
<양식 이름=form1 작업="" 방법=게시물>
<입력 유형=테스트 이름="사용자 이름" 값="postuser">
<입력 유형=제출 이름="제출" 값="테스트">
</form>