[DAY47]★★★(복습必)톰켓 설치

NA YE SOM·2023년 9월 8일

톰켓 설치




workspace가 바뀐다는것
-> eclipse에서 설정해 놓은 환경들이
모두 초기화된다는 것
(setting해놓은 환경설정이 싹다 바뀌는것)
(글꼴, 테마, 인코딩 전부 다시해야함)


-> JAVASCRIPT는 안해도 됨


-> 이미 UTF 8 되어있음


-> D2CODING이나 나눔고딕
-> 글자크기는 알아서


<들여쓰기 설정>

  • 개발 디폴트 : Space 갯수 4개 -> 2개로 줄이기










    -> 확장자 js인 파일도 들여쓰기 세팅함

html 템플릿 가져다 쓸거임 -> 메뉴에서 없음녀



-> 사용할 웹 어플리케이션 서버 (WAS:와스)
라고 부름

  • 웹 서버 : Html css js 3개 파일(정적 파일)실행 시 사용하는 것
  • JSP(Java Server Page) : html에 java를 넣을 수 있는 구성을 가지고 있음
    -> jsp는 태그 사이사이에 변수를 넣을 수 있음
    -> '동적파일'(웹화면이 동적으로 만들어짐)
    -> 변수들에 의해서 웹페이지를 동적으로 만들수있음

* 웹 어플리케이션 서버(상위개념) : 동적파일인 jsp 파일을 실행할 수 있는 파일

-> JSP를 처리해줄 수 있는 서버 : Tomcat(톰켓)

jsp 실행을 위해서는 톰켓이 필요함 -> 없으면 실행안됨




-> installer로 가지고 가기


-> 열어서 바로 보여야 함

JAVA HOME이랑 같은자리로

자바설치 -> 자바 홈 만들기
오라클 설치 -> 오라클 홈 만들기

톰켓 홈 -> 카탈리나 홈


-> 내 pc 우클릭 -> 속성
(고급시스템 설정으로 가기)





-> 항목의 구분 ;(세미콜론)

(공백 안들어가게 조심해야함)

처음에는 목록이었고 언제 바뀔지 모르는것 : ms에서도 모름

톰켓은 설치버전도 있으나 그냥 압축받아서 위치지 지정시 환경변수 세팅함

톰켓이 어디에 있는지 이클립스에서 등록해줘야함


-> server(web application server : was와스)





-> 톰켓 등록방법



-> 톰켓 direcotry 설정인데 아까 해서 안나옴
-> 그냥 finish



-> log가 찍힘

-> 최종적으로 시작되었습니다 나오면 됨


-> 시작, 종료 방법 수동으로 처리됨




환경설정된 파일이 copy되어서 넘어감


-> 해당 설정 중 필요한것은 서버에 와서 수정함
(본진은 x)


xml 참여시켜서 사용
-> spring가면 많이 사용
(각종 설정들 담고있는 파일들)

-> 오른쪽 outline ,tastlist 지우기

project 제일 먼저
-> 밑에 packgage
-> directory
(다른 파일들 추가해서 사용하기)


-> static 코드 필요했으면 vscode에서 했으면 됨


-> Dynamic web Project선택시 여기있는걸 다 쓸 수 있음


-> javastudy에서는 java project를 저장하고
-> src 밑에 main 밑에 java를 저장해라


-> 이프로젝트 실행시
: http://localhost/01_servlet/*


-> 번호만 빼고 servlet으로 바꾸기

-> 1번 프로젝트에서 실행되는 모든 실행결과는 주소에 localhost servlet이 들어감






servlet ajva파일 시작


-> servlet생성 ~ 소멸과정을 약속된 메소들을 보는것


servlet은 기본적으로 java파일이라 class임


크롬으로 이주소를 입력하면 지금 serlvet이 보여짐

->반대) 이 servlet을 실행을 하면 크롬창을 보여줌

url mapping의 정책

: 바꾸고 싶으면 바꾸고 되고 ,추가하고싶으면 추가하면됨
-> 안바꾸면 servlet이 url mapping값으로 들어감
-> 8080포트번호는 생략

★★★주소정리(외우기!)

contextRoot어디서 바꿀 수 있는지 보기!

contextRoot : 번호나오는것 싫어서 -> servlet으로 바꾼 과정

-> 이런거 정하는것이 개발자임
-> 이주소로 접속하면 이 자바파일이 열린다
-> HelloServlet을 열면 이 servlet이 열린다

-> 주소하고 자바파일하고 연결되고 있는 중임

(각종 form 요소 input,select 서버로 보내는것 -> submit(서브밋)을 servlet이 받음)

=> 서브밋이 servlet을 받는 java측 구성요소임

(html을 보내면 servlet이 받아서 출력하는가?)

HTML에서 JAVAscript에서 이동하려고 요청하는 행위(a태그,

a태그 -> 자바스크립트하고 기능이 같았음(
location 객체의 hyperreference속성) 동일함

-> 어제까지 ) 비동기 요청(async)

submit요청이든 a태그이든
-> 모든걸 받아내는것 servlet임

servlet container (servlet보관소)에 저장된다.

-> hello servlet이 container에 저장됨
-> 이전까지는 같은 이름의class 2개 만들 수 있었음(package만 바꾸면 (ex) person ))
-> 하지만,servlet은 안됌

(동일한 이름의 servlet은 만들수없음)

-> ★★HelloServlet 다시는 만들수 없음






WEB-INF(information) 폴더임
-> 저기서 수정하는건 쓸게많음

★★★외우기!!!!





---> 각종 메소들들이 만들어짐

life cycle : 위 메소드들의 실행순서






-> servlet실행시 ) html이 답으로 나옴

★★★ 계속 수업시간에 쓸 예정

HtppServletRequest





-> 있으면 자동으로 호출안됨










-> 나중에 코드 정신없이 살펴보면서 수정해야 하니까
여기서 한군데로 모아두면 더 좋은 구성임

submit 요청방식 (2가지방법)

1. a 태그의 hyperreference 속성

-> 이 sublet의 doGet 메소드가 열림

2.form 안에다가 다 넣기




테스트해보고 지울 파일

servlet 실행은 tomcat이 함

-> 우클릭 : start

vscode로 실행하면 live창이 뜸
-> 주소 바꾸기

본진이 따로 있고 복사한 것이 따로 있음
-> 복사한것이 eclipse환경이라 안됨
(애플리케이션 베포시 : 본진 방법 배움)

POST방식의 요청


destory 지우기




view port는 반응형 작업할때 집어넣는것



-> 자동으로 담겨있음




dopost다음에 doget호출되면 문제 x







-> 다시 바꿔두기


하나는 xml 하나는 java 2군데서 할 수 있는일이 상당히 많아짐

contorller : 서블릿으로 만들어짐
수많은 요청, 주소를 처리해야 해서 하나의 url 패턴만 쓸 수는 없음
-> 여러개 써야함

-> ignore해야함(너무많이 올라감)

1.ignore먼저

  1. 그다음에 올리기




-> 나중에 spring할때는 maven도 추가




ctrl + f : zip
-> zip 파일 안올라가게 되어있음
(우리는 굳이 풀 필요 x)


jspstudy 파일만들기

원격지 remote하기



-> 리눅스 : 붙여넣기(그냥 우클릭)


요청, 응답

파라미터 보내는 법, 파라미터 받는법

client측에서 server로 보내는법











*servlet : 요청을 받아주는 자바 클래스, 요청과 응답을 모두 관장하는 자바클래스




-> api 요청시 : 자바수업에서도 했음



-> HTML실행하기

★★★ 보내고 받는것 (기본)
-> a태그 수정해서 이름과 나이 둘다 보내보기

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println(name);
System.out.println(age);





post방식을 a링크로 요청할 수 없음





-> 한번깨진 인코딩은 돌릴 수 없음

encoding이 가장 기본임(가장 먼저하기)

-> 프레임워크는 내장되어있어서 안해도 됨

요청 파라미터의 null처리












Optional 클래스 - java 클래스


-> 만약에 없으면) 대신 쓸 값을 지정할 수 있음
(null값의 처리가 가능함)






★★★ a태그와 같은 자바 스크립트(a태그를 이용해서 요청하는것) = location 객체의 hyperreference속성 쓰는것





★★★ event걸리면 다 이런식으로 요청하기(submit이 아니라면 - 그 이외에 모든 요청 : 삭제버튼, 조회버튼, 모든 요청들은 다 click event 걸어서 작업해야함)



this : event대상



-> 태그에 명시되어있는 태그 : attribute
-> 눈에 보이지 않은 hidden값임

버튼의 부모의 데이터 속성값을 보내면 됨
->

-> data속성 써주면 됨



-> name속성이 요청 parameter의 이름으로 등록
-> name속성이 없으면 안보낸 것이 됨






3.value가없으면,입력을 안하고 전송시에 null인가?


-> integer.parseInt 여기서 optional로 처리안되서 발생함





-> 아직 우리나라 java 11으로 setting 안되어서 isEmpty로 쓰기


애초에 빈문자열 또는 정수가 아닌 입력
(여전히 나이에다가 18세같이 한글을 섞거나 36.5세 소수점 넣으면 -> 여전히 뻗어버림)
--> 대비책을 만들고자하면 ) 자바에는 없음
--> 자바스크립트에서 막기
-> front단에서 완전히 막기

정규식 : 사용자의 입력 패턴을 막으라고 배웠음 -> but, 단점) 매우 어려움

애초에 공백 아니면 잘못된 입력 막아버리기(잘못된 입력 막아버리기)







-> 정규식 잘 활용하면 좋음 but 어려움
(googling 많이하기)

-> 3장 : 정규식 : js 쪽에서 정리해보고 찾아보기

exception 발생안되게 ->


<뉴렉처 강의>

profile
개발자 velog

0개의 댓글