목록분류 전체보기 (326)
삶 가운데 남긴 기록 AACII.TISTORY.COM
putty로 접속시 expected key exchange group packet from server 라는 메시지와 함께 접속이 되지 않을 때 1. 서버 목록에서 접속할 서버를 불러옵니다. 2. 좌측 메뉴중에서 접속(connection) - SSH - 키교환(kex) 3. 우측 Algorithm selection policy 항목의 up 버튼이나 down 버튼을 눌러서 디피-헬만 그룹 14(Diffie-Hellman group)을 맨위로 디피-헬만 그룹1을 두번째로 설정해야 합니다. 즉, Diffe-Hellman group exchange 를 3번째로 옮겨 놓은 뒤 저장하시고 접속하시면 됩니다. 아니면 putty 최신 버전을 설치해 보십시오..
글자가 많은 PPT 디자인 글자가 많으므로 simple하게 하고 도형이나 색깔 이런 저런 장식을 모두 빼고 어두운 바탕에 테마색 만으로 구성합니다. 화면을 3:7로 분할해서 3에는 요약 내용을 배치하고 7에는 본문을 배치합니다. 일관되게 정렬해서 가독성을 높입니다. 이미지 텍스트 조합법 배경 이미지의 여백에 텍스트를 넣습니다. 텍스트 색은 배경 이미지의 색의 일부로 선택합니다. 이미지의 여백이 없는 경우 마스크 레이어를 추가한 뒤 마스크 레이어의 투명도를 조절해서 텍스트의 가독성을 높입니다. 이 때 마스크 레이어는 텍스트의 반대색(명도)으로 합니다. 배경 이미지 화면을 분할하여 분할된 화면에 텍스트를 배치합니다. 분할된 경계 부분이 어색할 경우 경계를 투명도와 그라테이션을 넣어봅니다. 로고 디자인 방법 ..
jsp에서 커스텀 태그를 사용할 수도 있지만 표준 액션 태그는 jsp 컨테이너에서 기본적으로 제공하는 태그입니다. 서블릿의 RequestDispatcher 객체의 forward() 기능을 수행하는 태그입니다. example14.jsp request parameter인 ?p=example2.jsp 을 받아 example14.jps에서 example2.jsp으로 forward 합니다. ?p=test.jsp 으로 실행하면 test.jsp로 forward 하게 됩니다. 서블릿에서 RequestDispatcher 객체의 include() 메소드 기능을 실행합니다. 지시자 태그와 다른점은 지시자 태그는 컴파일 시 같이 포함되어 컴파일 되는 반면에 표준 액션태그인 는 실행시 포함되므로 동적으로 include 시킬 수..
내장 객체 서블릿에서는 변수, 메소드, 객체를 선언하고 초기화 한 후에 사용하지만 jsp에서는 내장되어 있는 객체들이 있어서 선언 및 초기화를 하지 않고 바로 사용할 수 있는 내장 객체들이 있습니다. 내장 객체들과 같은 이름으로 객체를 선언하려고 하면 오류가 발생합니다. request : HttpServletRequest 객체 response : HttpServletResponse 객체 session : HttpSession 객체 application : ServletContext 객체 config : ServletConfig 객체 out : JspWriter 객체(출력 처리) pageContext : PageContext 객체(jsp 페이지 처리 객체) request, response 객체 logInO..
JSP jsp는 템플릿코드(html 태그 등)와 서블릿 코드를 섞어서 같이 작성할 수있습니다. 컨테이너는 jsp를 해석해서 서블릿으로 변환 후 소스를 컴파일 합니다. 이러한 변환 작업은 최초 요청시 변환되고 이후 요청은 변환없이 이미 변환된 서블릿을 통해 수행됩니다. 예제 WebContent 경로에 우클릭 후 new->JSP file을 선택 후 example1.jsp로 생성합니다. Hello 태그는 지시자이며 page, include, taglib가 있고 페이지에 대한 정보를 설정합니다. 태그는 멤버 변수 혹은 메소드를 선언합니다. 태그는 서블릿(자바)으로 변환되어 서버측에서 수행됩니다. 태그는 out.print() 으로 변환되어 서블릿의 변수 값이 클라이언트(HTML)으로 전송되어 표기됩니다. 는 JS..
서블릿 오류 처리 오류를 처리할 페이지를 web.xml에 지정하면 오류가 발생하면 해당 페이지로 이동시킵니다. try-catch와 중복으로 설정한다면 try-catch문이 우선 처리 됩니다. try-catch문은 해당 블록만 오류를 처리하는 반면 web.xml은 웹 어플리케이션 전체에 대해 처리할 수 있습니다. web.xml에 태그가 설정되어 있을 때 나 에 지정한 오류가 발생하면 태그에 지정된 오류 페이지가 실행됩니다. web.xml에 다음과 같은 태그를 추가합니다. 404 /errorHandle java.lang.NullPointerException /errorHandle 이어서 오류를 처리할 errorHandle을 위해 ErrorHandleServlet.java를 작성합니다. package net...
리스너 리스너는 특정 이벤트가 발생했을 때 수행되는 메소드를 제공하는 객체입니다. 웹에서는 ServletContext와 HttpSession, HttpServletRequest 가 이벤트가 발생하는 곳입니다. 그래서 각각 이벤트를 처리할 수 있는 이벤트 리스너를 제공합니다. ServletContext는 서버 시작 시점, HttpSession은 클라이언트 접속시, 그리고 HttpServletRequest는 클라이언트가 서비스를 요청시를 의미합니다. 특정 이벤트가 발생했을 때 실행되기 원하는 내용을 해당 이벤트 핸들러 객체를 상속받아 구현한다음, 개발된 리스너를 WAS(컨테이너)가 인식 하도록 web.xml에 등록해주어야 합니다. HttpServletRequest 객체 생성/삭제 이벤트 리스너 구현 예제 T..
장거리 남만 교역하면서 공예로 관리기술 랭작(항해하면서 생산시 대성공) 하는 방법을 포스팅 해보겠습니다. 준비물: 공예3~12랭크, 다량의 행동력 회복 음식 or 헤파이토스 가호, 각종 발주서, 주조비법서(함부르크 도구점 주인), 장인의 교습서(간디아 투자보상), 숙련장인의 교습서(야파 투자보상), 석공에 관한책(상투메 투자보상), 공작실 달린 배있으면 좋고 없어도 그만 공예3(주조비법서): 건포도1(보르도 교역소 구입) -> 와인 생산(1~2) -> 일본 (관리기술 랭크가 낮을 때 강력 추천, 점점 와인 개수가 늘어나서 동아시아 가는 동안 적재를 와인으로 꽉 채울 수 있음) 공예5(장인의 교습서): 종이2(런던, 마르세유, 베이루트에서 구입) -> 서양서적 생산(1~2) -> 대만(관리기술 랭크가 낮을..
대항해시대 온라인의 생산 랭크 를 올리년 요령은 레시피에서 자신의 랭크에 맞는 생산품을 생산하는 것입니다. 유용한 생산품은 강조 처리 했습니다. 공예 부스터를 장착하시면 랭크를 빠르게 올리실 수 있습니다. 레시피: 조선공입문 공예편( 앤트워프, 그로닝겐, 포르투, 말라가 등에서 구입) 1랭크 : 통나무(아조레스, 라스팔마스) -> 갑판 청소용 브러쉬, 구명도구 레시피: 주조비법서(함부르크에서 구입) 2랭크: 밀(세비야, 낭트, 포르투, 엔트워프 등) -> 맥주 3랭크: 건포도(보르도,르아브르) -> 와인(일본에서 거래) 3랭크: 밀 -> 아콰비트 4랭크: 와인(보르도) -> 브랜디 5랭크: 밀 -> 위스키 레시피: 조미료 대전(팔마 도구점) 2랭크: 올리브(발렌시아, 팔마, 튀니스, 카사블랑카, 시라쿠사..
필터 필터는 서블릿 2.3부터 추가되었습니다. 서블릿이 실행되기 전과 후에 필터링 기능 및 추가 기능을 수행할 수 있습니다. 예를 들어 로그 기록이나 한글 처리 같은 기능을 추가 할 수 있습니다. 기존 예제에서는 일일이 서블릿에서 한글 처리를 지정해줬지만 필터에서 일괄적으로 설정할 수 있습니다. 또한 하나의 서블릿에 필터를 여러개 지정해줄 수 있습니다. 필터는 javax.servlet.Filter를 상속 받아서 구현합니다. init()는 필터 객체가 생성될 때 한 번 만 호출되는 메소드입니다. destroy()는 필터 객체가 제거될 때 한 번 만 호출되는 메소드입니다. doFilter()메소드는 필터의 내용을 구현하는 메소드로 web.xml에 필터링 설정한 서블릿이 실행될 때마다 호출됩니다. 예제로 Fl..
Redirect sendRedirect(String location) 메소드를 이용하여 새로운 location으로 request를 재지정 할 수 있습니다. WebContent 경로 아래에 site.html 파일을 작성합니다. 네이버 다음 줌 구글 작업중인 패키지 경로에 새 서블릿 SendRedirectTest.java를 생성합니다. package net.aacii.test; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServlet..
로그인 html 프로젝트의 WebContent 폴더 아래에 새 html 파일을 생성하고 이름을 login.html 으로 설정합니다. ID: PW: 로그아웃 로그인/로그아웃 서블릿 작업중인 패키지 경로에 새 서블릿 LoginOut.java 를 생성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import j..
세션은 클라이언트 마다 개별적으로 생성되어 클라이언트의 브라우저를 종료할 때까지 서버쪽에서 그 객체(정보)를 유지합니다. HttpSession 생성 HttpSession객체는 개발자가 수동으로 생성하는게 아니라 HttpServletRequest의 getSession() 메서드를 이용해서 객체를 획득합니다. 새 서블릿 SessionTest.java를 생성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpSe..
쿠키(Cookie) 클라이언트 단위로 상태정보를 유지해야 할 때 쿠키를 사용합니다. 예를들어 로그인 후 로그아웃 할 때까지 인증 상태를 유지 한다던지, 쇼핑몰 장바구니에 선택한 상품 정보들을 유지 한다던지 같은 유지 정보들을 관리합니다. 쿠키는 텍스트로 name=value 형태로 저장하며 만료 일자나 시간을 지정할 수 있습니다. 쿠키 저장(전송) 작업중인 패키지에 클래스 CookieTest.java를 생성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; im..
ServletContext 서블릿 컨텍스트는 서버 쪽에서 웹 어플리케이션 단위로 값(정보)를 유지하는 방법입니다. 서블릿 컨테이너가 시작될 때 ServletContext 객체가 자동으로 생성되어 웹 어플리케이션이 종료될 때까지 계속 유지 합니다. init() 메소드를 재정의하여 추출 작업중인 패키지에서 class 파일을 하나 생성하고 이름을 ServletContextTest.java로 만들고 아래처럼 작성합니다. package net.aacii.test; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax..