Java EE 웹 개발, 어디서 시작하고 어떤 기술이 필요합니까? [닫은]


216

적어도 기본 수준에서 Java 웹 응용 프로그램 (.NET 배경에서 오는)을 작성하는 방법을 배우고 싶습니다. 간단한 CMS 유형 응용 프로그램을 처음부터 구축하고 배포 할 수 있기를 원합니다.

정확히 무엇을 배워야합니까?

Tomcat은 Java를위한 훌륭한 웹 서버 인 것 같습니다.

웹에는 어떤 옵션이 있습니까? ORM에 대한 최대 절전 모드가 있음 을 알고 있습니다 .

Java에 MVC가 있습니까? 무엇에 대한 JSP ? MVC와 JSP를 함께 사용할 수 있습니까? 넷빈즈 ?

어쩌면 이것들 모두를 다루는 책일까요?

답변:


261

(2020 년 3 월 업데이트)

우선, "Java EE"는 2019 년 9 월 이후 버전 8부터 시작 하여 " Jakarta EE " 로 이름이 바뀌 었습니다. 역사적으로, 버전 1.2부터 1.4까지의 "J2EE"라는 용어도있었습니다. "Java EE"는 버전 5에서 8까지 적용되었습니다. Java 플랫폼, Enterprise Edition, Wikipedia의 히스토리 도 참조하십시오 .

정확히 무엇을 배워야합니까?

나는 당신이 이미 HTML , CSSJS 와 같은 클라이언트 측 기술에 익숙하다고 가정 하므로 그것에 대해서는 자세히 설명하지 않을 것입니다. 또한 기본 Java에 이미 익숙하다고 가정합니다. Oracle의 The Java Tutorials를 따르고 가능하면 OCP 서적 이나 코스를 받으십시오.

그런 다음 JSP / Servlet으로 시작하여 Java 웹 개발의 기본 개념을 학습 할 수 있습니다. 좋은 튜토리얼은 Oracle의 Java EE 5 튜토리얼 2 부 3-8 과 Coreservlets.com ( 초급-중급고급, JDBC )에서 찾을 수 있습니다. Java EE 6부터 JSP는 JSF를 위해 Java EE 학습서에서 제거되었으며 JSP는 기본적으로 그 이후로 변경되지 않았습니다. 그렇기 때문에 상당히 오래된 Java EE 5 튜토리얼을 안전하게 사용할 수 있습니다. JSP와 관련하여 가장 중요한 것은 2003 년부터 <%스크립틀릿을 사용하여 JSP 파일에 일반 Java 코드를 작성하는 %>것이 공식적으로 권장되지 않는다는 사실입니다 . JSP 파일에서 Java 코드를 피하는 방법은 무엇입니까? 따라서 스크립틀릿을 다루는 자습서는 건너 뛰고 나쁜 학습 습관을 배우게됩니다.

스택 오버플로에서 JSP , Servlets , JSTLEL 에 대한 멋진 위키 페이지를 통해 필수 사항을 배우고 더 유용한 링크를 찾을 수 있습니다.


Tomcat은 Java를위한 훌륭한 웹 서버 인 것 같습니다.

그것은. 그러나 기능에는 한계가 있습니다. 기본적으로 베어 본 서블릿 컨테이너이며 거대한 Java EE API의 JSP / 서블릿 부분 만 구현합니다. EJB 또는 JPA로 가고 싶다면 WildFly , TomEE , Payara , Liberty , WebLogic 등과 같은 다른 것을 선택하고 싶습니다 . 그렇지 않으면 Java EE 대신 Spring을 사용해야합니다. 핵심 엔진을 수정하지 않고 베어 본 서블릿 컨테이너에 EJB를 설치할 수는 없습니다. Tomcat이 기본적으로 TomEE를 재창조 한 경우입니다. Java EE 란 정확히 무엇입니까?를 참조하십시오 . , Maven을 통해 JSF 라이브러리를 올바르게 설치하고 구성하는 방법은 무엇입니까? 그리고 어떻게 설치하고 톰캣에 CDI를 사용 하는가?


ORM에 대한 최대 절전 모드가 있음을 알고 있습니다.

이전에는 JPA가 존재하지 않고 EJB2가 끔찍한 J2EE 시대에 Hibernate는 독립형 프레임 워크였으며 종종 EJB를 대체하기 위해 Spring과 함께 사용되었습니다. Java EE 5 (2006)에 JPA가 도입 된 이후, Hibernate는 JPA 구현이되었습니다. Jakarta EE tutorial part VIII 에서 JPA를 배울 수 있습니다 . 또한 EJB3는 Spring에서 배운 교훈을 바탕으로 훨씬 향상되었습니다. 도 참조 때 함께 봄 또는 EJB3 또는 모두를 사용할 필요하거나 편리?


Java에 MVC가 있습니까? JSP는 어떻습니까? MVC와 JSP를 함께 사용할 수 있습니까? 자바 빈즈?

당신은 할 수 있지만 , 뷰 (변환, 검증, 변경 청취자 등)와 모델을 묶을 때 바퀴 의 많은 재창조입니다 . Java EE의 MVC 프레임 워크를 JSF 라고 합니다. Java EE 6 이전에는 상당히 레거시 뷰 기술인 JSP에서 실행되었습니다. JSP는 Facelets 로 대체되었습니다 . Jakarta EE tutorial part III chapters 7-17에서 JSF를 배울 수 있습니다 . 그런데 Tomcat에서도 JSF를 사용할 수 있으며 별도로 설치해야합니다. 설치 지침은 Mojarra 홈페이지 에서 찾을 수 있습니다. 완전한 Java EE 구현 인 WildFly, TomEE, Payara, Liberty, WebLogic 등은 이미 JSF (및 CDI, BV, JSONP, JAX-RS, EJB, JPA 등)를 기본적으로 제공하므로 별도로 할 필요가 없습니다. 별도로 설치하십시오. Maven을 통해 JSF 라이브러리를 올바르게 설치하고 구성하는 방법을 참조하십시오 .


어쩌면 이것들 모두를 다루는 책일까요?

여러 권의 책이 있습니다. Jakarta EE에 초점을 둔 책 , JSF초점을 맞춘 책, JPA에 초점을 맞춘 책 으로 시작하는 것이 좋습니다 . 주제를 다루는 가장 최근의 책을 선택하십시오. 먼저 사용 가능한 최신 버전을 조사한 후 선택한 책이 해당 내용을 포함하는지 확인하십시오. 따라서 현재 Jakarta EE 8 및 JSF 2.3을 사용할 수있는 동안 Java EE 5 또는 JSF 1.0 등을위한 오래된 책을 선택하지 마십시오.

마지막으로, roseindia, tutorialspoint, javabeat, journaldev, javatpoint, codejava 등과 같이 가르치는 대신 광고 수입에 중점을 둔 아마추어가 유지 관리하는 코드 스 니펫 스크래핑 사이트를 무시하십시오. 광고 링크를 방해하여 쉽게 알아볼 수 있습니다. 배너 및 포함 된 JSP 코드 조각 스크립틀릿 .

또한보십시오:


그레이트! 유용합니다. 감사합니다. .Net에서 보통 Wrox Press의 책은 .net의 모든 지식을 다룰 수 있습니다. 매우 두꺼운 책.
gfan

5
StackOverflow에 핀 포스트 기능이 없습니까? 그랬 으면 좋겠다. 그래서 나는이 대답을 고정시킬 수 있었다. 감사!
dww

JavaEE 5 학습서에 대한 대안이 있어야합니다. 나는 멍청한 놈임을 잘 알고 있으며, 아주 잘 알고 있습니다. 하지만 ... 튜토리얼에서 배우려고합니다. 매우 잠겨 있으며 특정 설정에 따라 다릅니다. 그래서 NetBeans를 배워야합니다. 그런 다음 서버를 포기하고 glassfish로 완전히 옮겨서 가장 쉬운 방법으로 실행하고 배우는 샘플 코드를 찾으려고 노력해야합니다. 서버에서 실행할 수 없습니다. 대신 나는 maven build라는 것을 만났다. 나는 일식이 nutz가되는 것을 시도했다고 생각했다! 분명히 나는 ​​maven도 배울 필요가있다. 그리고 이것, 다른 사람과 악마의 할아버지는 ...
brat

@brat : 답변에는 대안 및 서적에 대한 링크가 포함되어 있습니다.
BalusC

잘. 많은 것을 커버하는 유일한 것. Coreserv ... 여기저기서 스 니펫을 가져와야했습니다. 나는 공식 JavaEE tut에 지금 푹 빠져있다 :) 다운로드 해야하는 SDK를 찾으려면 예제 코드를 실행하려면 JDK 10에서 작동하지 않는 GlassFish 서버가 있습니다 : (, 시작시 NullPointerException. hack stackoverflow.com / questions / 47458119 /… 그래서 다운로드가 필요합니다 ... 등등 .. 나는 배우기 위해 농구대를 뛰어 넘기 위해 조금 아래로 내려 가고 있다고 생각합니다. :(. 그들은 그것을 쉽게 만들지 않습니다.
멍청한

28

정확히 무엇을 배워야합니까?

최소한

  • 자바 언어
  • 데이터베이스 액세스를위한 JDBC를 포함한 Java API
  • IDE 또는 텍스트 편집기 + Ant
  • Java EE, 기본적으로 서블릿 및 JSP
  • 서블릿 컨테이너 (예 : Tomcat)

Tomcat은 Java를위한 훌륭한 웹 서버 인 것 같습니다.

"괜찮아"입니다. EJB를 사용하지 않는다면 다른 것을 배울 필요가 없습니다. Glassfish 3는 요즘 꽤 시원해 보이지만 아직 많이 가지고 있지는 않습니다. 웹 서버보다 "더 많은"것입니다. 서블릿 컨테이너입니다 (서블릿 기술을 사용하여 앱을 실행할 수 있음).

웹에는 어떤 옵션이 있습니까?

다양한 골조에 대하여 실제로, 하나를 선택하는 것은 실제로 "어려워"입니다. 그들 모두를 시도하는 것은 매우 유혹적이지만 궁극적으로는 불가능합니다.

ORM에 대한 최대 절전 모드가 있음을 알고 있습니다.

나는 다소 반 ORM이지만 "전체"ORM이 필요한 경우 최대 절전 모드가 필요합니다. Spring의 JDBC 지원 또는 iBatis와 같은 "부분"ORM을 시도 할 수도 있습니다.

Java에 MVC가 있습니까? JSP는 어떻습니까? MVC와 JSP를 함께 사용할 수 있습니까? 콩?

예, 대부분의 Java 웹 프레임 워크는 MVC를 수행합니다. Spring의 MVC는 훌륭하지만 다른 것을 추천 할 수는 없습니다 (특히 Struts 1이 아닙니다!). JSP는 HTML (또는 XML) 템플릿 엔진입니다. Java 코드가 내장 된 구식 JSP는 좋지 않습니다. 태그 파일과 라이브러리가있는 현대 JSP는 꽤 좋습니다.

대부분의 프레임 워크에서 JSP를 사용하여 V를 렌더링 할 수 있다고 가정합니다. Spring의 MVC와 Struts는 그렇게합니다. 일부는 다른 것을 사용할 수도 있습니다 (Velocity, Freemarker 등).

콩은 단지 객체에 대한 관습입니다. 기본적으로 getter 및 setter (또는 일부 대안)를 사용하고 있으며 일부 규칙을 따르고 있음을 의미합니다. 이것들은 특정 도구로 객체를 조작 할 수 있도록해야합니다. 일반적인 예는 GUI이며, 일부 도구를 사용하면 GUI 구성 요소를 빌드하여 임의의 Bean을 편집 할 수 있습니다 (예 : 필드를 편집하기위한 양식을 렌더링 함).


16

웹 개발의 일반적인 모든 용의자 인 HTML, CSS 및 JavaScript가 필요합니다.

Tomcat에는 웹 서버가 내장되어 있지만 서블릿 / JSP 엔진 입니다. Apache는 순수한 웹 서버입니다.

HTML 출력을 생성하는 서블릿을 생성하기위한 템플릿 언어 인 JSP를 배워야합니다. 스크립틀릿이 아닌 JSTL을 사용하여 작성하려고합니다.

CRUD 응용 프로그램을 수행하는 경우 JDBC 및 관계형 데이터베이스를 학습해야합니다. Hibernate 또는 다른 ORM을 시도하기 전에 그렇게해야합니다. 왜냐하면 그것이 기초가되기 때문입니다.

JavaBeans는 Java 객체의 표준 일뿐입니다.

당신이 그것을 원한다면 Spring 프레임 워크를 추천합니다.


Tomcat에 웹 서버가 내장되어 있다고 말하면 다른 것은 무엇입니까? 나는 그것이 웹 서버라고 생각했다?
mrblah 2009

6
@mrblah-Tomcat은 서블릿 엔진입니다. 서블릿 클래스 (jsp가 바뀌는 것)를 처리하고 출력을 브라우저에 제공하기 위해 만들어졌습니다. 이와 함께 웹 서버와 마찬가지로 모든 일반 파일 (이미지, html, CSS 등)도 제공합니다. PHP 모듈로 Apache와 비교할 수 있습니다.
Nemi

13

Java에 MVC가 있습니까?

Java에는 Struts2 , Spring MVC 와 같은 다른 프레임 워크가 있습니다.

JSP는 어떻습니까?

JSP 는 템플릿 라이브러리입니다. FreeMarkerVelocity 와 같은 대안이 거의 없습니다 . AFAIK Freemarker 는 훌륭한 템플릿 라이브러리로 부상하고 있습니다. JSP 보다 가볍습니다 . 이 FreeMarker 확인 : JSP에 대한 열린 대안-JavaWorld

MVC와 JSP를 함께 사용할 수 있습니까?

이전에 언급 한 프레임 워크로 MVC를 사용합니다. 모든 프레임 워크는 JSP를 지원하지만 각 프레임 워크 문서에서 다른 템플릿 라이브러리에 대한 지원을 확인해야합니다. AFAIK Struts2 는 Freemarker를 매우 잘 지원합니다.

콩?

나는 그것에 대해 많이 모른다. 그러나 Bean을 사용하여 양식 데이터를 데이터베이스에 직접 맵핑 할 수 있습니다.

어쩌면 이것들 모두를 다루는 책일까요?

각 프레임 워크에는 자체 책이 있습니다. 대한 Struts2 - 액션 스트럿츠 2

String MVC -Spring 및 Spring MVC에 대한 책을 추천하는 다음 질문을 살펴보십시오. 스프링 프레임 워크스프링 북에 대한 책 제안 : 어떤 것을 선택해야합니까

Fremarker 는 매우 훌륭한 문서를 가지고 있습니다 -FreeMarker Manual

Java로 웹 개발을 시작하기 위해 -

대체 텍스트

http://www.amazon.com/SCWCD-Exam-Study-Kit-Certification/dp/1930110596


5

나는 전통적인 Java 웹 개발 옵션의 대부분을 꽤 무겁게 생각하고 좋은 대안이 있습니다.

  • Play 는보다 동적 인 JVM 기반 언어가 아닌 순수 Java를 고수하면서 가볍고 간단하며 빠른 개발에 중점을 둔 MVC 프레임 워크입니다. 상당히 새롭지 만 이미 인상적이며 좋은 커뮤니티가 빠르게 구축되었습니다.

  • Grails 는 Java 기반 스크립팅 언어 인 Groovy로 작성되고 사용되는 Ruby on Rails에서 영감을 얻은 MVC 프레임 워크 입니다. Grails는 강력한 커뮤니티와 함께 ​​성숙하고 강력하며 널리 존중됩니다. Groovy는 기본적으로 더 나은 구문과 클로저와 같은 훌륭한 기능을 갖춘 Java의 상위 세트이므로 학습하는 것이 Java를 배우는 좋은 방법입니다.

  • RESTful 웹 사이트 / 서비스 / 애플리케이션을 구축해야하는 경우 Restlet 은 훌륭한 프레임 워크입니다. 저는 큰 팬입니다. 간단하고 간단하면서도 유연합니다. 훌륭한 커뮤니티도 있습니다.

  • Google의 App Engine 도 흥미로운 옵션입니다. 관심이 있거나 없을 수도 있지만 호스팅되는 API이지만 상당히 간단한 API와 좋은 SDK가 있습니다.

나는 다른 사람들이 있다고 확신하지만 이것들은 내 머리 꼭대기에서 생각할 수있는 것들입니다.

행운을 빌고 재미있게 보내!


아, 그리고 나는 방금 전날 Prudence를 발견했습니다 : threecrickets.com/prudence
Avi Flax

3

나는 PHP / C 프로그래밍이고 그루비가 자바 프로그래밍에 내재 된 모든 클래스와 패러다임을 배우지 않고도 자바로 뛰어들 수 있다는 것을 발견했다. Groovy를 사용하면 Java와 사용 가능한 모든 도구 / 프레임 워크 / 라이브러리에 대해 자세히 배우는 데 시간이 걸리면서 생산성을 빠르게 높일 수있었습니다.


3

html, css, xml, javascript 등을 사용하지 않으면

Vaadin 프레임 워크를 사용해보십시오. 문서화가 잘되어 있고 배우기 쉽고 간단한 UI로보기 좋은 UI를 만들 수 있습니다. (자바 코드 만 작성하면 물론 서블릿 서버가 필요합니다. Tomcat 또는 Jetty가 좋습니다.)


2

java를 잘 배우면 서블릿과 JSP를 배우고 MVC를 사용하려면 Struts 또는 Spring 또는 다른 java / java 지원 프레임 워크로 이동하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.