학원 수업 26일차 220926
- 9-10
web server vs WAS ?
https://gyoogle.dev/blog/web-knowledge/Web%20Server%EC%99%80%20WAS%EC%9D%98%20%EC%B0%A8%EC%9D%B4.html
서블릿?
https://tomcat.apache.org/download-10.cgi
아파치 톰캣 10버전 설치해보자
인스톨러로 설치하면 기본 동작 프로그램으로 실행됨
여러가지 버전으로 테스트하려면 zip로
자바 웹버전
- 10-11
webapp 폴더에 jsp 파일을 생성해야 웹에서 접근 가능
WEB_INF 폴더에 만들면 외부에서 접근 불가능! 내부에서만 접근 가능
Java Resources > src/main/java 위에서
우클릭 > new > servlet > (next 누르면 url mappings가능 / finish 했다면 아랫줄 참고)
servlet을 만들어 자바로 구현 가능 하지만 불편해! -> jsp가 나옴
@WebServlet("/test") //http://localhost:8080/web_test/test 페이지가 안뜨면? 아랫줄 참고
public class TestController extends HttpServlet { //http://localhost:8080/web_test/TestController 로 주소가 지정되어있다면 webapp > WEB-INF > web.xml 파일에서 servlet 내용 삭제
(아직 xml안배웠으니까 이렇게 하는거임)
jsp 탄생 배경
MVC패턴을 이용해서 웹 프로젝트를 만듦
(M모델, V뷰, C컨트롤러)
- 11-12
서버 추가 가능
두개 동시에 켜면 오류남 하나만 켜
프로젝트 위에서 우클릭 > Java EE Tools > Generate Deployment Descriptor stub 클릭하면 > web.xml 파일 생김
<servlet>
<servlet-name>Test02Controller</servlet-name>
<servlet-class>controller.Test02Controller</servlet-class> <!-- 클래스 이름을 넣어 Copy Qualified Name -->
</servlet>
<servlet-mapping> <!-- url 매핑할게요 -->
<servlet-name>Test02Controller</servlet-name>
<url-pattern>/test02</url-pattern>
</servlet-mapping>
xml파일에서 servlet으로 url 지정하든가
@Webservlet("/url") 어노테이션으로 주소 지정하든가 둘중 하나만 해
두개 이름이 달라지면 url이 두개가 되어버림(혼동)
두개 이름이 같으면 충돌
톰캣 9, 10 호환성 문제
javax -> jakarta로 변경되었음
https://www.samsungsds.com/kr/insights/java_jakarta.html
- 12-1
Clean Tomcat Work Directory
Project > Clean 하는 이유? 서버 충돌 리셋
톰캣 10으로 만든걸 톰캣9에서 구동시키고 싶은데 확인해보자
프로젝트 폴더에서 우클릭 > Properties > Targeted Runtimes에서 New로 9버전 추가해도 불가!
Show all runtimes를 클릭하면 추가된게 보이지만 호환이 안된다 적용불가
jsp = html + java기능도 사용 가능
- 2-3
target runtime 삭제
(아까 여러개 만들어놔서 지저분함)
이클립스 [window] - [preferences] > server[server] - [Runtime Environment] 여기
JSP https://namu.wiki/w/JSP ASP는 우리나라에서는 거의 안씀 돈 많이줘도 가지마 이직 못해
MVC패턴(모델, 뷰, 컨트롤러)
자바소스(Servlet java), 뷰(.jsp)를 분리할 수 있어서 유지보수가 편해짐
- 3-4
상대경로 절대경로
서버
웹 서버
클라우드서버 AWS 구글클라우드 MS클라우드(Azure애저)
- 4-5
컨텍스트 주소 context path
<a href="<%=request.getContextPath() %>/board/list">게시판</a>
<body>
<a href="/web01">HOME</a>
<a href="<%=request.getContextPath() %>">HOME</a> print
<a href="<%= %>">HOME</a> print 표현식
<a href="<%! %>">HOME</a> 서론부
<a href="<% %>">HOME</a> 실행영역
<hr> <!-- -------------------- -->
<h1>웹01 페이지입니다.</h1>
</body>
주소 맨뒤/index.jsp 생략 가능
서버 더블클릭 후 Modules tab을 눌러 Path를 "/프로젝트명" -> "/" 로 변경
출처: https://offetuoso.tistory.com/entry/JSP-Web-Project-URL-생략-프로젝트-명-포트
- 5-6
tools에 넣어둔 ojdbc11.jar 파일 web01>src>main>webapp>WEB-INF>lib 폴더에 복붙해 넣기
//db board 테이블의 정보를 읽어와서 request.getRequestDispatcher("")로 접근해볼게요
String driver = "oracle.jdbc.OracleDriver.class";
//oracle.jdbc.driver.OracleDriver.class //오라클 왈 : 이거 곧 없앨거야
https://tomcat.apache.org/tomcat-10.0-doc/jndi-datasource-examples-howto.html