목록중앙 HTA (2106기) story/JSP story(Apache) (19)
날아라쩡글이의 블로그입니다.
세미프로젝트의 방식에서 사용한 개발방식은 model1의 개발방식이다. 특징 요청 하나당 JSP가 하나씩 필요하다. 디자인 요소(HTML태그) 와 로직요소(자바코드)가 하나의 JSP파일에 같이 존재한다. 단점 로직요소의 재사용성이 떨어진다. 디자인요소나 로직요소 중 하나만 바꾸려고 해도 JSP파일 내용을 전부를 수정해야한다. 유지보수가 어렵다 장점 애플리케이션의 구조가 단순하다. 빠르게 개발에 진입이 가능하다. 구조가 쉽다 그러나 장점보다는 단점을 극복하고 싶다. 그렇게 등장한 방식은 model2방식으로 (MVC패턴이라고 불린다. ) MVC패턴을 활용한 웹 어플리케이션 개발 방식이다. 역사 최초의 객체지향언어는 smalltalk이라고 한다. 1970년에 완성되었고, 그때는 web에 대한 존재가 없었다. 최..
개발을 만드는 방식은 2가지로 나눈다. model1방식 jsp를 사용하여, 요청 1개당 jsp 1개가 완성된다. 을 사용하기 때문에 많은 어려움이 있다. model2방식 mvc패턴의 웹개발방식으로 spring을 사용하는 개발방식이다 많은 라이브러리를 사용하고, SQL mapper 이라는 myBatis를 사용하고, ORM인 jpa방식으로 DB access가 간편하다. 남은 1달간 열심히 배워볼것이다. 시즌 1에서 불편한 부분은 시즌 2에서 해결될 예정이다.
1. 검색버튼 클릭했을 경우 제일 중요한 부분은 form을 get으로 추가하는 것이 제일 중요하다. 2.a태그 선택시 event가 실행되도록 하는 함수 나중에 추가하는 경우
cos.jar를 lib에 입력해야 사진이 올라갈 수 있다. 이미지파일 input은 file로 설정 action이 설정되어있지 않으면 입력이 되지 않는다. form은 반드시 post로 지정한다. enctype을 반드시 multipart/form-data로 지정한다. enctype은 폼입력값을 어떤 형태로 서버로 저장할지 지정하는 속성이다. enctype을 지정하지 않으면 enctype="application/x-www-form-urlencoded" 기본값이다. -폼 입력값이 서버로 전달되는 형식 : name=아이폰13&maker=애플&price=1500000 -첨부파일을 서버로 전달할 수 없다.전달시 imagefile=license.txt처럼 파일의 이름만 전달되고 파일은 서버로 전달되지 않는다. enct..
sesion이 참조하는 객체에서 'login user'로 저장된 객체를 조회한다. 값이 null이라면 로그인하지않은 상태, 값이 null이 아니라면 로그인상태인것을 확인할 수 있다. if문을 이용하여, null이면 로그인, 회원가입 버튼 및 링크를 표시할 수 있다. null이 아니면 로그아웃 버튼 및 링크를 표시한다. 로그인 세션에 정보를 담는 절차로 , 로그인처리는 사용자 전용객체에 사용자 정보를 저장하는 것이다. 인증과정을 거친 뒤 모든 객체에서 user의 정보를 가져올 수 있다. 브라우져가 꺼질 때까지 session에 항상 내정보가 들어가고 지금 요청한 사람이 누구인지 알 수 있다. -로그인 처리가 완료되면 사용자 전용객테에 사용자 정보가 저장되어 있기 때문에 클라이언트가 서버로 요청을 보내면 그 ..
속성이란 객체로써의 값 요청파라미터는 문자열로써의 값이다. sercletContext는 1층공고문으로 모두이용가능하고 서버가 꺼질 때까지 사용이 가능하다 프로젝트당 하나씩 생긴다. HttpSession은 집의 공고문이다. 특정클라이언트 당 하나씩 생기고 로그아웃시까지 유지된다. 시한폭탄을 가지고 있어서 타임아웃전까지만 사용이 가능하다. PageContext는 JSP당 하나씩 생긴다. 그렇기 때문에 하나의 자바코드로 변환되고 페이지당 하나씩 사용이가능하다. HttpServletRequest응답전까지 사용이가능하고 MVC패턴시 중요하게 사용이 가능하다. 속성을 나중에는 많이 사용이 가능한다. 웹 개발 방식에서 사용을 많이하고 있다. MVC패턴을 이해하고 있어야지 사용이 가능한데, MVC패터는 request가..
최초요청시에는 reponse헤더에는 JsessionId가 없다. Tomcat이 요청객체를 받았을 때에도 세션아이디가 존재하지 않는다. 클라이언트로부터 첫 요청을 받으면 httpSession객체를 생성한다. 첫 요청에 대한 응답을 보낼 떄 응답헤더에 JsessionId라는 이름으로 새로 생성한 httpSession객체의 아이디를 전달한다. 그리고 응답할 때 JessionId를 전달한다. 응답헤더로 전달받은 JsessonId의 값을 쿠키파일을 생성해서 저장한다. 해당쿠키파일은 브라우져가 종료하면 삭제된다. 클라이언트가 서버로 요청을 할 때마다, 항상 요청헤더에 JsessionId로 자신의 HttpSession객체를 식별하는 값을 전달한다. 다시 요청메세지를 보낼 때 요청객체에는 세션아이디가 존재하게 된다. ..
apache - > common -> codec. down -> 1.15.jar만 복붙한다 lib에 암호화는 평문을 암호화로 제작하는 방법이다. 암호화를 평문으로 다시 변경하는 방법은 복호화 방법이다. 평문으로 다시 변경하지 못하는것은 단방향 방법이다. 현재 우리가 진행하는 암호화 방식의 경우 String secretPassword = DigestUtils.sha256Hex(password); 으로 암호화를 작성한다. 내용길이와 상관없이 특정문자로 변경을 시키는 방법으로, 원본데이터와 상관없이 일정길이의 text가 존재한다. hash함수로 16진수의 값을 64글자로 작성한다. 경우의 수가 엄청나게 증가한다. 똑같은 수로 유추는 가능하지만, 원래값이 무엇인지는 확인이 불가한다.
http는 클라이언트의 서버를 유지할 수 없다. 한번 응답을 하게 되면 끊게 되고, 클라이언트의 정보를 저장하지 않는ㄴ다. httpSession은 클라이언트의 정보를 보관하는 것이다. 처음으로 응답 요청을 최초로 요청하게 될 경우 세션아이디가 포함되어있지 않다. 세션아이디가 요청 객체에 존재하지 않은 상태로, 오청객체로 전달하게 된다. httpsession객체가 없는 것을 보고 새롭게 생성한다. HttpSession객체는 A의 전용의 객체로 16진수 32자리의 ID가 생성하게 된다. 응답메세지를 전달할 경우 HTML컨텐츠가 포함되면서 JSessionID가 HEADER부에 존재하여 포함되어 전달하게된다. A 사용자인 브라우져가 재요청을 하게되는 경우 A객체의 ID를 가지고 있는 httpSession객체가 ..
https://getbootstrap.kr/docs/5.1/getting-started/introduction/ 시작하기 세계에서 가장 인기있는 프레임워크인 Bootstrap으로 반응형, 모바일 우선 사이트를 jsDelivr와 스타터 페이지 템플릿을 통해 시작해보세요. getbootstrap.kr 스타터템플릿을 복사한다 이클립스에서 template을 검색하고 JSP Files의 template에서 new로 새롭게 등록하고 name을 설정 context는 newJsp로 선택한다 앞으로 JSP파일을 등록할 때 그부분을 선택하고 등록하면 된다. html에서 이부분을 등록하고 new라고 눌러줘야 부트스트랩을 사용할 수 있다. 사용자지정 사용자가 지정해서 선택할 수 있다. 레이아웃, 컨텐츠, 도우미, 유틸리티까지..
W3S의 부트스트랩을 이용하여, 다양한 화면이 구성되게 색상, table, 네비게이션 바, cards, 버튼, Alerts, Jumbtron, toast를 지원해준다. 정돈된 화면을 만들 수 있다. 폴더자체가 어떤 그룹이 되는 것이다. 주소의 표기법에는 2가지가 존재한다. 링크 작성시 작성하는 방법이다. 상대주소 표기법 "/"으로 시작하는 방법 빼고는 나머지로 작성하는 방법 현재 주소 표시창의 주소를 기준으로 이동할 주소를 작성한다. "/"으로 시작하지 않는다. 절대주소 표기법 "/"으로 시작하는 주소이다. 현재 주소표시창의 주소를 활용하지 않는다. 링크 1번과 2번의 방식은 정말 다른 방식이다. 상대주소 표기법의 방법 주소창의 주소 http:// localhost..
한페이지에 표시할 데이터 int rowsParpage = 10; 10개까지 표시할 부분을 final로 상수로 만든다. 10개 표현, 20개 표현 현재 표시할 page 번호 입력하기 메인페이지에서 cpno를 1로 링크의 값을 설정한다. 전체사원리스트에서 currentPageNo가 값을 받기위해 int currentPageNo = Integer로 getParemeter을 입력받는다.
input에서 해당값으로 출력을 원할 경우 value속성추가 option은 selected에 추가하되 3항 연산자를 이용한다. ? "selected" : ""으로 표현 checked도 삼항연산자로 작성한다 수정화면의 경우 조회가 이뤄지고, 수정작업후 리스트화면이 구현되면 된다. disable은 제출대상에서 제외된다. 그렇기 때문에 preparStatement로 값을 가져올 때, setObject로 설정하고, JDBCType을 NUMERIC로 설정해준다. null을 입력하는 것이라고 인식시킨다. 혹은 if문으로 null값인지 아닌지로 표현할 수 있지만 가독성을 위하여 설정한다. 수정하는 것은 어렵다. 수정을 하고 error가 난다면? stop - > clean - > tomcatClean - > 다시 st..
Java홈페이지의 에디션을 확인하면 Java SE = standard : 데스크탑에서 실행되는 응용프로그램 개발과 관련된 자바의 기술사용시 사용 Java EE = 서버에서 실행되는 프로그램 개발과 관련된 자바의 기술이 정의 Java ME = micro edition : 핸드폰과 관련된 기술 가 존재한다 Java EE를 확인하면, javaservlet.package가 존재한자. 자바의 web관련된 package이다 class interfaces는 이렇게 존재한다. 메소드를 확인해보면 destory()와 init(servletConfig), service(ServletRequest req, ServletResponse res)를 주로 사용한다. destroy()의 메소드는 폐기전의 실행이되며, _jspPes..
조회작업의 경우 응답의 컨텐츠를 html으로 보낼 수 있지만, insert,update,delete의 작업의 경우 재요청하는 응답을 보내야한다. 총 2번의 응답과 요청이 이뤄진다고 할 수 있다. 재요청의 URL의 응답으로 어떤작업인지가 제일 중요하다. 이전까지는 post방식으로 클라이언트에게 서버로 요청파라미터를 전달하였다. form태그 안에 폼의 입력요소를 추가하고 form태그의 메소드 속성을 post로 설정하여 form태그안에서 submit타입의 버튼을 클릭해서 값을 제출하였다. 무한대로의 입력이 가능하고 데이터를 제한하지 않는다. 서버에 제한은 둘 수 있지만, http상에서는 제한을 두지않는다. getParameter로 값을 읽어올 수 있다. 값을 키값의 쌍값으로 body부로 전달하는 방법 요청을 ..
Apache.org에서 Tomcat을 다운받고 설치하였고, 글씨를 encoding으로 UTF-8으로 변경을 전부 해주었다. 모듈의 path는 localhost:8080 / sample / home.jsp로 webserver주소와/ 웹프로젝트의 식별자로 배포된이름 / jsp의 이름을 설정해주었다. http란 hyper text transfer protocal로 브라우져가 요청 주체가 되었고, 클리아이언트 역활을 한다. 웹서버는 tomcat으로 제공주체, 분석처리, html으로 응답을 제공한다. 정적 html content는 요청하는 클라이언트가 상관없이 시간은 상관없이, 같은 내용이 나온다. 동적 html content는 요청하는 클리어언트에 따라서 로그인, 사용자, 시간, 그리고 각기 다른 내용의 htm..
tomcat 웹 어플리케이션 서버 (Web Application Server) (WAS) 클라이언트의 요청을 분석해서 적정할 웹어플리케이션을 실행시킨다. 웹어플리케이션 실행결과로 생성된html 컨텐츠를 클라이언트에게 응답으로 보낸다. tomcat은 서블릿 /JSP엔진 혹은 서블릿/JSP컨테이너 이다. 객체 생성 후 라이프 스타일로 관리한다. 생성, 유지, 폐기 시킨다. 웹 페이지 는 주소를 의미한다. 서버로 들어오기 위해서는 클라이언트가 url주소를 입력해야한다. (링크를 클릭) 해당 url서버로 전달하고 응답한다. 자원, 프로그램, 해당page로 응답을 보내기도 한다. 웹 브라우져 클라이언트의 역활을 수행한다. url을 서버로 전송해서 웹페이지를 요청하거나 웹어플리케이션의 실행을 요청한다. 웹 서버 서..