들어가기 전에
모든 프로그램의 시작은 "Hello World" 를 한 번 출력해 보는거 아시죠?
이번 학습에서는 편안한 마음으로 따라 하면서 Hello World를 한 번 출력해봄으로써 내가 웹개발을 할 수 있는 준비가 다 되었구나 정도만 느끼면 좋을것 같습니다.
학습 목표
1. 자바 웹 어플리케이션을 작성할 수 있습니다.
핵심 개념
- 자바 웹 어플리케이션
- HttpServlet
- Dynamic Web Project
학습하기
모든 프로그램의 시작은 "Hello World" 를 한 번 출력해 보는거 아시죠?
이번 학습에서는 편안한 마음으로 따라 하면서 Hello World를 한 번 출력해봄으로써 내가 웹개발을 할 수 있는 준비가 다 되었구나 정도만 느끼면 좋을것 같습니다.
학습 목표
1. 자바 웹 어플리케이션을 작성할 수 있습니다.
핵심 개념
URL 주소
http://localhost:8080/{프로젝트이름}/{URL Mapping값}
http://localhost:8080/firstweb/HelloServlet
package examples;
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 javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<h1>Hello World</h1>");
}
}
https://www.edwith.org
comment
제 경우는 톰캣이 이미 실행중이어서 Servlet이 실행이 되지 않았습니다.
제컴이 맥OS라 톰캣설치 디렉터리>bin 에서 "./shutdown.sh" 실행해준 뒤, Rus on Server 실행해주니 잘 동작하였네요.
참고로 톰캣에서 제공하는 Running.txt에 OS별 셧다운 명령이 설명되어 있습니다.
==========================
...
5) Shut Down Tomcat
(5.1) Tomcat can be shut down by executing one of the following commands:
On Windows:
%CATALINA_HOME%\bin\shutdown.bat
or
%CATALINA_HOME%\bin\catalina.bat stop
On *nix:
$CATALINA_HOME/bin/shutdown.sh
or
$CATALINA_HOME/bin/catalina.sh stop
...
==========================
에러 뜰때마다 울화통 터지시고 어 이것봐라? 내가 고쳐봐야지 ㅎㅎ가 아니라 진짜 살인마려울 정도로 고통받으시는분은... 이정도 단계에서 교양강의 하나 배웠다 치고 그만 두시는것도... 진짜로. 이 정도 에러는 정말 아무것도 아니거든요... 마감기한 타임어택 하고 있느라 예민한것도 아니고 난이도도 높은것도 아닌데 해결하는 과정이 재미없고 화가 난다? 이거 이거... 더 앞으로 나아가단 진짜로 멘탈이 터질겁니다.
Run on server 한 후 http://localhost:8080/firstweb//HelloServlet이 URL로 접속하시면 텍스트 잘 뜰 겁니다. 톰캣, Servlet, Java 버전과 상관 없을 것 같습니다.
최신 버전들은 Run on server 한 후 URL 주소가 http://localhost:8080/firstweb/WEB-INF/classes/examples/HelloServlet.java 이럴 거예요. 근데 영상에서도 http://localhost:8080/firstweb//HelloServlet 입니다.
여기서 막 화내는 분들 있는데, 비록 2018년도 강의지만 이렇게 좋은 강의들을 무료로 공부할 수 있다는 것에 감사해야 한다고 생각합니다.
톰캣만 실행할 때는 잘 뜨는데 이클립스로 띄우려고하면 404에러만 뜹니다.
인터넷에 있는거 다 해봐도 안되네요.
24.03.29.
package examples;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
/**
* Servlet implementation class HelloServlet
*/
@WebServlet("/HelloServlet")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public HelloServlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<h1>Hello World</h1>");
}
}
톰캣 10.1.7
java jdk 11
servlet 4.0
서버가 안 잡히는 오류가 발생하여 servlet버전을 6.0 -> 4.0으로 바꾸었더니 실행됨
댓글들 보소 ㅋㅋ 재밌네
2022.07.31
그대로 적었는데 PrintWriter 부분과 out 부분이 빨간 밑줄 쳐지며 실행해도 아무것도 나오지 않습니다. 참고로 버전이 10.0인데 버전의 문제인가요?
1. firstweb 이라는 dynamic 웹프로젝트를 eclipse에서 생성하고 해당 프로젝트에서 Hello Servlet!이라는 서블릿 클래스를 작성하면 작성된 서블릿은 eclipse 내부에서 설정한 런타임, 즉 톰캣이라는 WAS에 의해 동작이 되고 그 이후 웹 브라우저를 이용해서 톰캣 서버에 URL 요청을 보내고 Hello Servlet이 실행되는 결과를 웹 브라우저로 확인 가능
2022/04/23
2022.03.10
220220 감사합니다.
실행할때 Run On Server에서 선택할 tomcat이 안보이시는 분들은 아래 사이트 참고하세요! 해결됩니다.
https://na27.tistory.com/214
20220126
IntelliJ로 진행하시고픈 분들 + servlet 버튼 없는 분들 참고하세요
https://suyeonchoi.tistory.com/m/33
+ intelliJ Community(무료버전) 에서는 tomcat 연동이 불가합니다.
유료 버전을 구매하시거나 체험판을 다운로드 하셔서 진행해주세요
톰캣 옛날꺼 받으라하고 영상은 최신꺼 쓰는건 엿먹이는거임?
20220107
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
//응답 결과로 text를 보냄
PrintWriter out = response.getWriter();
//printerwriter 객체를 리턴
out.println("<h1>Hello World</h1>");
//응답 결과로 출력
Mac OS에서 계속 오류가 났었는데
Eclipse 2019.09 버전과 강의에서 사용한 jdk 1.8.0로 설치하니 잘 되네요.
404 에러가 뜬다면 jre 경로와 java 버전을 체크해보세요
이클립스 : https://www.eclipse.org/downloads/packages/release/2019-09/r
jdk-8u121 : https://files-cdn.liferay.com/mirrors/download.oracle.com/otn-pub/java/jdk/8u121-b13/
혹시 왼쪽(위치는 설정 나름이긴 함.) 뷰영역에서 폴더에 조그마한 빨강x표시 뜨고 404 에러 나시면 여기 참조해보세요.
https://www.boostcourse.org/web316/lecture/254268?isDesc=false
톰캣 패치 설정을 잘못했는지 톰캣이 톰캣,톰캣(2) 이렇게 2개가 떠서 경로설정이 문제였는지 따라했더니 해결되었습니다.
Mac OS에서 이클립스로 실행해보았는데 App Transport Security policy requires the use of a secure connection. 이라면서 안되네요.. 구글링해보니까 info.plist? 관련문제 같은데 해결하신분?