개발일기

학원 수업 26일차 220926

hhana 2022. 10. 26. 11:39
  • 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