[ASP] 페이지 간 이동 종류 및 비교 (Client 및 Server)

차니 개발 로그·2023년 7월 27일
0

프로젝트 진행 중, ASP 내 기능(API?)을 타 시스템(Java)에서 호출하여 사용하게 된 경우가 발생했다.

구현한 ASP (API?라고 해도 되려나...) 의 구조는 아래와 같다.

1) A.ASP 호출
1-1) (Server) 내부 로직 처리 및 분기처리(타 ASP 호출 URL)를 위한 값 설정.
1-2) (Client) html 내 form 데이터 설정 및 javascript를 사용한 sumbit 처리.

 <%
 ID = "test"
 URL = "B.ASP"
 %>

   <html>
     <head>
       <script language="javascript">
         window.onload =  function() {
         document.myForm.sumbit;
         self.close();
         }
       </script>
     </head>
     <body>
       <form name="myForm" method="post" action="<%=URL%>">
         <input type="hidden" name="ID" value="<%=ID%>">
       </form>
     </body>
   </html>

2) 타 ASP 호출( B.ASP / C.ASP )
2-1) 내부 로직 처리 후 종료

해당 개발 건을 Web에서 테스트했을 경우 정상처리된다.
(기능 상 오류는 논외...)

하지만 해당 ASP를 타 시스템(Java)에서 호출했을 경우,
A.ASP 처리 후 HTML 코드가 Load 될 뿐 form 데이터를 submit 하지 못했다.

이를 좀 더 정확하게 확인하기 위해 postman을 사용해 테스트해보니 역시나 동일하다.

postman은 Web에서 테스트 하는것처럼 보이지만 실제로는 postman의 WAS에서 요청 URL을 테스트하기 때문에 동일한 현상이 발생한것으로 판단된다.

처음에는 왜 A.ASP의 window.onload 가 작동하지 않을까 했으나..
호출부는 ASP 결과를 Return만 받을뿐이다. 사실 시스템 입장에서는 이게 맞다...

Web 개발자의 입장에서는 항상 Web에서 호출했기 때문에 html이 load 되어 window.onload가 실행되는것을 당연하게 생각해서 발생한 이슈다.

타 시스템(java 기타 등)에서 호출했을 경우 기존 프로세스 설계와 같이 타 ASP를 호출하기 위하여 Client에서 javascript를 이용한 submit 처리가 아닌, ASP가 Server 에서 Rendering 될 때 Server객체를 이용한 페이지간 이동 기능을 사용하였다.

ASP는 기본 SSR(Server Side Rendering)이기 때문에 Client에서 ASP를 호출하는것이 아닌 ASP 내장객체 Response, Server 객체를 활용하여 페이지간 이동이 가능하다.

해결방법을 작성하기 앞서 이번 기회에 페이지간 이동(Redirection, Transfer, submit 등)을 정리하고자한다.

[Client] 처리 방법
1. meta태그 내 url 사용
2. javascript 활용 및 form 데이터 submit 처리.
2.1. window.onload 사용
2.2. body 태그 내 onload 사용 (위 window.onload 와 동시 사용 불가.)

[Server - ASP] 처리 방법
1. Server.Excute
2. Server.Transfer
3. Response.Redirect

profile
혼자서 만들어보는 개인 프로젝트 공간

0개의 댓글