location 객체

개발/실전 2014. 3. 11. 10:14

location 객체는 현재 문서의 URL에 관한 정보를 갖고 있다. 프레임이 사용된 경우에는 최상위 프레임 문서의 URL만 참조할 수 있고, 하위 프레임의 문서들은 Frames객체를 이용한다. location객체는 window의 하위 객체 이지만 window객체를 생략 할 수 있다.

 

기본형태

[windows].location.속성 혹은 메소드

[windows].loaction.속성=지정값

 

location 객체의 속성

href - URL을 지정하여 지정한 페이지로 이동하거나 페이지의 URL 전체 정보를 반환

protocol - 0 ':'를 포함하는 http나 ftp 등의 프로토콜 정보를 반환

hostname - 호스트 이름과 포트 번호 반환

pathname - URL에서 경로부분의 정보를 반환

port - 8080과 같은 포트번호를 반환

search - ?이후의 문자열을 반환

hash - 지정한 앵커를 설정한 곳으로 이동하거나 앵커이름을 반환

 

location 객체의 메소드

reload() - 브라우저의 'Reload'버튼 처럼 현재 페이지를 새로 업데이트

replace() - 현재 URL을 지정한 URL로 바꾸고 이전 페이지로 돌아 갈 수 없게 한다

 

예제

현재 페이지의 URL의 바꾸기

<a href = "javascript:location.replace('http://대처할 URL')"> replace </a>

 

자바스크립트로 reload바꾸기

<a href = "javascript:location.reload()"> reload</a

==================================================================================================

자바스크립트에서 페이지 이동 시킬때 location.href를 많이 사용한다.

하지만 location.replace 메세드도 종종 이용하는데 두가지의 차이점은 아래와 같다.

표#1

 

location.href

location.replace 

 기능

새로운 페이지로 이동된다.

기존페이지를 새로운 페이지로 변경시킨다. 

 형태

속성 

메서드 

 주소 히스토리

기록된다 

기록되지 않는다.

 사용예

location.href='abc.php' 

location.replace('abc.php') 

 

location.href는 객체의 속성이며, loaction.replace()는 메서드(함수)로 작동된다.

href는 페이지를 이동하는 것이기 때문에 뒤로가기 버튼을 누른경우 이전 페이지로 이동이 가능하지만,

replace는 현재 페이지를 새로운 페이지로 덮어 씌우기 때문에 이전 페이지로 이동이 불가능하다.

 

href는 일반적인 페이지 이동시 이용을 하면 되고,

replace의 경우는 이전페이지로 접근이 필요없는경우 보안상 덮어씌우는 것도 괜찮을듯 하다.

'개발 > 실전' 카테고리의 다른 글

document.getElementById  (0) 2014.03.12
<% %>와 <script>차이 점 <%! 설명  (0) 2014.03.12
JOIN과 UNION  (0) 2014.03.11
doGet, doPost  (0) 2014.03.10
액션서블릿 흐름  (0) 2014.03.05

doGet, doPost

개발/실전 2014. 3. 10. 11:24

get, post 방식

- 폼을 통해 입력한 자료를 서버에 전달

 

doPost

1. 결과값이 주소만 출력 

ex) 168/freeT.kch.jsp

2. form을 통해 전송하는 방식

3. 동적 자원에 접근

4. 많은 양의 복잡한 정보를 전송

5. 요청 파라미터들이 요청 몸체 내에 넣어져 전송

 

doGet

1.결과값이 주소안의 내용을 같이 출력

ex) 168/freeT.kch.jsp/input?useID="---"

2. 폼의 자료들을 Query String형태로 서버에 전송

3. 정적 자원에 접근

'개발 > 실전' 카테고리의 다른 글

document.getElementById  (0) 2014.03.12
<% %>와 <script>차이 점 <%! 설명  (0) 2014.03.12
JOIN과 UNION  (0) 2014.03.11
location 객체  (0) 2014.03.11
액션서블릿 흐름  (0) 2014.03.05

액션서블릿 흐름

개발/실전 2014. 3. 5. 18:00

스트럿츠 설정의 핵심은

 

web.xml 파일과 struts-config.xml 파일 셋팅과 스트럿츠 태그 라이브러리 사용에 있다고

보셔도 됩니다.  의존 빈도가 높습니다.

 

 

web.xml 과 struts-config.xml 파일의 샘플 내용은.. 저도 예전에 어느 지식인의 글 답변에서

복사 해둔 것을 맨 아래에 붙여 두겠습니다.  그곳에도 주석이 달려 있으니 참고 하시기 바랍니다.

 

 

web.xml 과 struts-config.xml 에서는 스트럿츠에 관련된 모든 사전 설정을 지정 합니다.

스트럿츠는 일반적인 서블릿을 말고, 액션 서블릿이란것을 사용합니다.  그냥 서블릿에서

발전된 형태라고 생각하셔도 됩니다.

 

 

web.xml 에서는 해당 액션 서블릿을 호출할때의 이름에 따른 실행될 클래스 등을 미리 선언 해두는 정보를

담고 있습니다.  기존 서블릿 셋팅과 큰차이가 없습니다.

 

struts-config.xml 에서는 특정한 액션 서블릿이 호출 될때 작동할 사전 설정값을 지정 합니다.

 

어떤 액션 폼을 사용할것인지, 값 체크를 할것인지, 어떤 클래스를 실행 할것인지, 액션 내용 처리 후에

어떤 페이지를 처리 할것인지, 어떤 값을 파라메터로 넘길 것인지 등등...

 

이러한 프로세스의 플로우에 대해서 지정해두는 것으로.. 여기 셋팅이 어떻게 보면 스트럿츠 셋팅의 핵심입니다.

 

액션 서블릿의 대략적인 흐름은 아래 처럼 흘러갑니다.

 

먼저 *.do 형식 처럼 액션 서블릿을 호출 합니다.  (index.do 이런식으로 url 호출한단 얘기입니다)

web.xml 에 지정된대로 ActionServlet.class 를 호출 하고

호출 url 에 따라 struts-config.xml 에 지정된 class를 호출하면서 request와 response를 전달합니다.

 

이때 지정된 ActionForm이 있으면 해당값이 올바른지에 대해서도 검증을 수행 합니다.

폼이 지정된 경우 데이터 검증을 실행 하고 오류의 경우에는 페이지를 다시 되돌리고,

없는 경우에는 해당 클래스를 수행 합니다.

 

해당 클래스 (보통 로직을 수행 하죠..)를 수행 한 후에, 그 결과에 따라서

미리 지정된 (또는 클래스내에서 지정한) 페이지를 호출 하기 위해 ActionFoward 객체를 생성하고

해당 액션 포워드를 실행 합니다 (즉, 결과 페이지를 사용자에게 보여줍니다)

 

-.-.... 어려우시겠지만.. 기존에 서블릿 흐름을 알고 계신다면.. 한두개의 단계만 추가 됬음을 아실겁니다.

 

 

그리고 스트럿츠 태그 라이브러리는 기존에 제공되는 jstl 이라는 기본 태그라이브러리 외에 따로

스트럿츠 용으로 제공되는 태그라이브러리가 있습니다.

struts-bean, -html, -logic, -tiles 등이 있습니다.  jstl과 마찬가지로 스트럿츠 태그라이브러리 역시

태그에 익숙해지면 소스 코딩량을 상당히 줄일수 있으며, 코딩 속도도 빨라지게 됩니다.

 

아래는 위에서 말씀 드린.. 저도 지식인에서 떠놓은 web.xml과 struts-config.xml 의 샘플 주석 문입니다.

참고 하세요

 

 

==========================================

//servlet등록

<servlet>

//서블릿이름 세팅
    <servlet-name>action</servlet-name>

//서블릿의 패키지 클래스명 세팅. ActionServlet은 Struts가 제공하는

//컨트롤러역활을 하는 서블릿클래스입니다.
    <servlet-class>
        org.apache.struts.action.ActionServlet
    </servlet-class>

//서블릿 포기시 파라미터
    <init-param>

//모듈별 struts관련 세팅정보를 담은 xml파일 지정
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>

//WAS구동시 Servlet인스턴스 생성  음수면, 최초 요구시 생성
    <load-on-startup>1</load-on-startup>
</servlet>


//url의 끝에 .do로 시작하면 action이라는 이름의 서블릿에서 처리

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>


 
 
struts-config.xml 안의 내용은
 
<?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
          "http://struts.apache.org/dtds/struts-config_1_3.dtd">
    <struts-config>
//사용하는 폼빈설정 , 폼빈은 스트러츠에서 제공하는 파라미터 정보를 담기위한
//빈즈형식의 클래스입니다.
        <form-beans>
            //폼빈명과, 폼빈의 클래스위치
            <form-bean name="logonForm" type="app.LogonForm"/>
        </form-beans>
//url과 액션정보 맵핑
        <action-mappings>
            //Welcome.do라는 요청이 오면 해당 페이지로 포워딩
            <action path="/Welcome" forward="/pages/Welcome.jsp"/>
            //마찬가지로 해당 url이오면 해당 페이지로 포워딩
            <action path="/Logon" forward="/pages/Logon.jsp"/>
            //LogonSubmit.do라는 요청이 오면, app.LogonAction이라는 클래스를 실행하고,
            //파라미터정보는 logonForm에 담으며, logonForm의 생명주기는 request에 따르고
            //validate를 실행하며(폼빈유효성검증), 검증 실패시 Logon.jsp를 호출
            <action path="/LogonSubmit" type="app.LogonAction" name="logonForm"
                 scope="request" validate="true" input="/pages/Logon.jsp">
                //액션의 리턴메세지가 success일경우 Welcome.jsp포워딩
                <forward name="success" path="/pages/Welcome.jsp"/>
                //액션의 리턴메세지가 success일경우 failure.jsp포워딩

                <forward name="failure" path="/pages/Logon.jsp"/>
            </action>
            <action path="/Logoff" type="app.LogoffAction">
                <forward name="success" path="/pages/Logoff.jsp"/>
            </action>
        </action-mappings>
        //다국어나, 메세징관리를 위한 *.properties 설정
        <message-resources parameter="resources.application"/>
    </struts-config>
 위는 단순한 xml세팅정보입니다

'개발 > 실전' 카테고리의 다른 글

document.getElementById  (0) 2014.03.12
<% %>와 <script>차이 점 <%! 설명  (0) 2014.03.12
JOIN과 UNION  (0) 2014.03.11
location 객체  (0) 2014.03.11
doGet, doPost  (0) 2014.03.10