JakartaEE

From BC$ MobileTV Wiki
(Redirected from JEE)
Jump to: navigation, search
JakartaEE web application stack (formerly Java EE)

Java 2 Platform, Enterprise Edition (originally abbreviated J2EE; later simplified as Java platform, Enterprise Edition or JEE) is one of several secondary/supporting parts of the overall Java platform ecosystem, designed for the mainframe-scale (then of course "web-scale" which became the more trendy term) computing needs typical of large enterprises. Sun Microsystems (together with industry partners such as IBM) designed J2EE to simplify application development in a thin client tiered environment. Later, after the Oracle takeover, with the release of JDK 8 this part of the Java ecosystem was rebranded as simply "Java Enterprise Edition" dropping the somewhat confusing "2" numerical version. Then, in JDK 9+ with Java's faster release cycles and Oracle's focus on "backend Java" as well as core & JVM performance, stewardship of Java on the web was transferred to the Eclipse foundation's Jakarta project under the new name "Jakarta Enterprise Edition" (both simplify the prior J2EE abbreviation to JEE, so that is the proper acronym going forward).

In concept, JEE was designed to simplify web tier application development and decrease the need for excessively large-size programming teams and programmer re-training by creating vanilla Java-based, standardized, reusable, modular components (such as JSTL which encourages modularization and JSF which enforces and requires modularization); and by enabling the platform to handle many aspects of programming and deployment automatically.

JakartaEE architecture

In practice, outside of the Enterprise, often times the use of full-blown JEE solutions such as JSF can be overkill for small teams, and a combination of simple Servlets called by front-end JavaScript code (AJAX) and/or a careful balance of modular JSP or JSTL can be sufficient to accomplish many dynamic web application needs. However, the benefits of JSF can certainly be realized in small projects/teams as well, with the advantages of being able to leverage powerful frameworks' existing components (Vaadin, PrimeFaces, MyFaces, IceFaces, RichFaces etc), having a consistent & enforceable structure once initially setup, and, encouraging more code re-use over the project's lifecycle all being worth consideration of the extra setup costs. These concepts eventually inspired the WebComponents movement which is now tackling a similar fragmentation and consistency problem in an era of JavaScript frameworks and lack of portability.


Java J2EE evolution


Specifications


Versions

J2EE (1.2-1.4)

[3]

JavaEE 5-8

JakartaEE 8-9

[4] [5]

[6] [7] [8] [9] [10] [11] [12]

Microprofile

[13] [14]


Language

JSP

Java (cup of java) Logo
Java Server Pages (JSP) icon

Java Server Pages (commonly abbreviated JSP) are a JAVA technology for server-side processing of web-based application layer dynamic pages (or documents), typically used for presenting specific information to an end-user.[15]

[16]

JSTL

[18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47]


JSF

Java Server Faces (JSF) is a UI component framework and standard for Java Web application development. JSF is a J2StE (Java 2 server-based technology) for example, the JSF UI components and their state are represented on the server with a defined life-cycle of the UI components (views) on the front-end and corresponding data models (backing beans) on the back-end to hold data and state. A JSF application runs in a standard web server/container, for example Tomcat or Jetty (each of which can now be embedded into an application as a JAR file).

JSF is part of the Java EE standard and is most commonly used in Enterprise applications which tend to have strict component requirements and prefer support contracts for all parts of the technology stack used in their applications. JSF does also enjoy a niche following within certain open source Java web application development contexts (however, despite the openness of the JSF specification, the open source community tends to favour smaller sets of dependencies and customizability over the well-defined components of JSF, which is likely more a side-effect of open source typically focusing on smaller-scale applications with low complexity and quick turn-around time to development). JSF in general, would appeal to two usages most though:

  1. Rapid-prototype Applications (with low-to-no needs for customizations or complex/highly-specialized web components) as a proof-of-concept or basis for further development
  2. Enterprise Applications (potentially even those needing complex/highly-specialized web components) which need support contracts in place with 3rd-party companies for all libraries and components used in their development and maintenance, and preference for strict adherence to standards over customizability

Usages in between these two extremities of the Java-based web development spectrum may prefer to use other Java technologies or combinations than JSF (i.e. plain JSP, JSTL, Tiles, Struts, Spring-Web, etc).

[53] [54] [55] [56] [57] [58] [59] [60] [61] [62] [63] [64] [65] [66] [67] [68] [69] [70] [71] [72] [73] [74] [75] [76] [77] [78] [79] [80] [81] [82] [83] [84] [85] [86] [87] [88] [89] [90] [91] [92] [93]

Servers

As opposed to J2SE code (which runs on any machine upon which the JVM is installed), in order to run J2EE code, a J2EE-compatible servlet container must be used. Furthermore, in order to reach pages in a web application developed in J2EE via the public internet (WWW), a Web Server must be configured to "serve" the pages. Several J2EE Web Servers exist which provide the dual purpose of serving pages to the world wide web and processing J2EE code in a built-in servlet container.

The following are some of the most popular J2EE Web Servers and J2EE servlet containers:


Tomcat

[94]

TomEE

Complete Java EE with Apache's open source implementation of non-Tomcat-supported J2EE technologies such as CDI, EJB, JPA, JSF, JSP, JSTL, JTA, Servlet, Javamail, Bean Validation, JAX-RS, JAX-WS, JMS, Connector.

[95] [96] [97]

Resin

  • Caucho Resin: http://caucho.com/ | DOWNLOAD (commercial J2EE web server which uses Tomcat "under the hood" with several optimizations & additional Enterprise features)


Jetty


JBoss

WildFly

Both the open source WildFly Application Server and cloud-based OpenShift are both based on the commercial JBoss Enterprise Application Server.


WebLogic

Glassfish

WAS

[99]



Frameworks

MyFaces


PrimeFaces


RichFaces


IceFaces


Spring

Spring is a layered Java/J2EE application platform & development framework, which includes:

  1. The most complete lightweight container, providing centralized, automated configuration and wiring of your application objects. The container is non-invasive, capable of assembling a complex system from a set of loosely-coupled components (POJOs) in a consistent and transparent fashion. The container brings agility and leverage, and improves application testability and scalability by allowing software components to be first developed and tested in isolation, then scaled up for deployment in any environment (J2SE or J2EE).
  2. Dependency Injection (annotation-based) coding pattern
  3. Aspect-Oriented programming paradigm
  4. A common abstraction layer for transaction management, allowing for pluggable transaction managers, and making it easy to demarcate transactions without dealing with low-level issues. Generic strategies for JTA and a single JDBC DataSource are included. In contrast to plain JTA or EJB CMT, Spring's transaction support is not tied to J2EE environments.
  5. A JDBC abstraction layer that offers a meaningful exception hierarchy (no more pulling vendor codes out of SQLException), simplifies error handling, and greatly reduces the amount of code you'll need to write. You'll never need to write another finally block to use JDBC again. The JDBC-oriented exceptions comply to Spring's generic DAO exception hierarchy.
  6. Integration with Toplink, Hibernate, JDO, and iBATIS SQL Maps: in terms of resource holders, DAO implementation support, and transaction strategies. First-class Hibernate support with lots of IoC convenience features, addressing many typical Hibernate integration issues. All of these comply to Spring's generic transaction and DAO exception hierarchies.
  7. AOP functionality, fully integrated into Spring configuration management. You can AOP-enable any object managed by Spring, adding aspects such as declarative transaction management. With Spring, you can have declarative transaction management without EJB... even without JTA, if you're using a single database in Tomcat or another web container without JTA support.
  8. A flexible MVC web application framework, built on core Spring functionality. This framework is highly configurable via strategy interfaces, and accommodates multiple view technologies like JSP, Velocity, Tiles, iText, and POI. Note that a Spring middle tier can easily be combined with a web tier based on any other web MVC framework, like Struts, WebWork, or Tapestry.
  1. Spring - WebMVC: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/mvc.html | SRC[105][106][107][108]
  2. Spring - Data: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference[109]
  3. Spring - Web Services: http://static.springsource.org/spring-ws/sites/1.5/
  4. Spring - Security: http://static.springsource.org/spring-security/site/index.html


[110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135]

Spring Boot

[136]

[137] [138] [139] [140] [141] [142] [143] [144] [145] [146]

DAO

Data Access Object (DAO).

[147] [148] [149] [150] [151] [152]

Spring Web (MVC)

Spring Data JDBC Generic DAO Implementation -- Most Lightweight ORM Ever: http://architects.dzone.com/articles/spring-data-jdbc-generic-dao

[153] [154] [155] [156] [157] [158]

Thymeleaf

[159]

Struts

Struts (now an open source project Apache Struts) is a leading framework for creating Java Web Applications. Web applications differ from conventional websites in that web applications can create a dynamic response. Many websites deliver only static pages. A web application can interact with databases and business logic engines to customize a response. Web applications based on JavaServer Pages sometimes commingle database code, page design code, and control flow code. In practice, we find that unless these concerns are separated, larger applications become difficult to maintain.

The library's choice of name has much significance in relation to the functionality of Struts. In engineering, a "strut"[160] is a structural component designed to resist force/pressure and keep two or more components separate, performing the opposite function of a "tie". As this definition reveals, Struts was designed to keep functionality and presentation separate. Web applications based on JSP sometimes mix database code, page design code and control flow code, which can make large applications extremely difficult to maintain. Struts separates them by using the Model-View-Controller (MVC) architecture, originally developed for the Smalltalk language. The Model represents the business or database code (i.e. server-side Java EJB or POJO), the View represents the page design code (i.e. HTML), and the Controller represents the navigational code (i.e. client-side JavaScript and/or server-side Java request processing code). Templates for the view layer are usually done with JSP, but XML/XSLT is also supported.

The web application programmer writes the Model code, and creates a central configuration file, which binds together Model, View and Controller.


Tiles

Originally a sub-module of Struts, Tiles (now its own open source project Apache Tiles) can now be used independently of Struts in any project. With respect to the definition of a Strut, Tiles focuses on the presentation layer (or the View, of the Model-View-Controller paradigm). In particular, Tiles acts as a templating framework, simplifying the development of web application user interfaces. It can be used to divide up the viewing area (i.e. active/available browser window area, not entire screen) into separate regions such as "header", "menu" (i.e. nav), "body", "section", "article" and "footer". In many ways, its concepts have much in common (and likely some influence) with the introduction of these semantic elements to HTML5, and their subsequent markup for responsive placement in CSS3. Before the existence of these technologies, it was the only way to modularize the screen real estate and differentiate different logical areas of a Java-based web application.


Vaadin

[162] [163]


Velocity

Apache Velocity Engine is a free and open-source templating engine. Velocity permits you to use a simple yet powerful template language to reference objects defined in Java code. It is written in 100% pure Java and can be easily embedded into your own applications


Stripes

Stripes is a presentation framework for building web applications using the latest Java technologies. The main driver behind Stripes is that web application development in Java is just too much work! It seems like every existing framework requires gobs of configuration. Struts is pretty feature-light and has some serious architectural issues (see Stripes vs. Struts for details). Others, like WebWork 2 and Spring-MVC are much better, but still require a lot of configuration, and seem to require you to learn a whole new language just to get started.



Tools


Resources

[176]


Tutorials

[181]






[208] [209] [210]


External Links

[211]

The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application: https://stackoverflow.com/questions/8701307/the-absolute-uri-http-java-sun-com-jsp-jstl-core-cannot-be-resolved-in-either

refs with no name must have content

[213] [214] [215] [216] [217] [218] [219]

[220] [221] [222] [223] [224]

[225]

[226] [227] [228] [229] [230] [231] [232] [233]


References

  1. Eclipse Foundation Formally Releases Jakarta EE 9 Spec: https://devops.com/eclipse-foundation-formally-releases-jakarta-ee-9-spec/
  2. The Jakarta EE Working Group Releases Jakarta EE 9 Specifications to Lay the Foundation for True Cloud Native Java : https://www.globenewswire.com/news-release/2020/12/08/2141176/0/en/The-Jakarta-EE-Working-Group-Releases-Jakarta-EE-9-Specifications-to-Lay-the-Foundation-for-True-Cloud-Native-Java.html
  3. Developing Web Services with Java 2 Platform, Enterprise Edition (J2EE) 1.4 Platform: https://www.oracle.com/technical-resources/articles/javaee/j2ee-ws.html
  4. Java EE 8 to Jakarta EE 8 Migration: https://adambien.blog/roller/abien/entry/java_ee_8_to_jakarta
  5. Jakarta EE 8: The new era of Java EE explained: https://developers.redhat.com/blog/2019/09/12/jakarta-ee-8-the-new-era-of-java-ee-explained/
  6. JakartaEE platform's Jenkins CI/CD instance: https://ci.eclipse.org/jakartaee-platform/
  7. Jakarta EE 9.1 Release Plan: https://eclipse-ee4j.github.io/jakartaee-platform/jakartaee9/JakartaEE9.1ReleasePlan
  8. Getting Started With Jakarta EE 9: https://dzone.com/articles/getting-started-with-jakarta-ee-9
  9. Understanding Jakarta EE 9: https://www.eclipse.org/community/eclipse_newsletter/2020/november/1.php
  10. Jakarta EE 9 with WildFly Preview: https://www.wildfly.org/news/2020/11/12/Jakarta-EE-9-with-WildFly-Preview/
  11. The Road to Jakarta EE 9: https://www.infoq.com/news/2020/10/the-road-to-jakartaee-9/
  12. Jakarta EE 9 -- "Hello World" example application: http://www.mastertheboss.com/javaee/jakarta-ee/jakarta-ee-9-hello-world-example-application
  13. Jakarta MicroProfile spec - What You Need to Know: https://dzone.com/articles/microprofile-what-you-need-to-know
  14. Building Microservices with Eclipse MicroProfile: https://www.baeldung.com/eclipse-microprofile
  15. JavaServer Pages Technology - SUN official page: http://java.sun.com/products/jsp/
  16. Difference Between JSF, Servlet, and JSP: https://www.baeldung.com/jsf-servlet-jsp
  17. JSTL 1.2 reference: https://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm
  18. Tutorial -- Create JSP custom tag library: http://viralpatel.net/blogs/tutorial-create-custom-tag-library-taglib-in-jsp/ (QUICKEST, CLEAREST TUTORIAL ON JSTL)
  19. JSTL tutorials with examples: http://www.apekshit.com/JSTL-Tutorial-for-beginners-with-Example/c/26
  20. Java Server Pages - Standard Tag Library (JSTL) tutorial: https://o7planning.org/en/10429/java-jsp-standard-tag-library-jstl-tutorial
  21. Writing Custom Functions in JSTL: https://stackoverflow.com/questions/27201778/writing-custom-functions-in-jstl
  22. Custom Tags, TLD, Tag Files, El Functions, what is the difference?: http://blog.idleworx.com/2010/04/custom-tags-tld-tag-files-el-functions.html
  23. Custom Tags and Custom EL Functions in JSP Pages: http://blog.idleworx.com/2010/04/custom-tags-and-custom-el-functions-in.html
  24. Caching in JSP and JSTL: http://www.caucho.com/resin-3.0/performance/caching.xtp
  25. JSTL c:import: https://www.owasp.org/index.php/JSP_JSTL
  26. XSLT and Caching content in JSTL: http://flylib.com/books/en/3.299.1.51/1/
  27. The JSP Standard Tag Library (JSTL) -- Handling Variable-Length Data in MVC-Based JSP Pages: http://courses.coreservlets.com/Course-Materials/pdf/msajsp/09-JSTL.pdf
  28. Introducing to JSP Standard Tag Library: http://www.zentut.com/jsp-tutorial/introducing-to-jsp-standard-tag-library/
  29. How to resolve -- Can not find the tag library descriptor for "http://java.sun.com/jsp/jstl/core": https://stackoverflow.com/questions/5987908/how-to-resolve-can-not-find-the-tag-library-descriptor-for-http-java-sun-co
  30. NetBeans IDE 6.x Tutorial for Java Web Applications Part 2 -- Using JSTL to handle internationalization: http://www.javaguicodexample.com/javawebjsfjspjstlnetbeans4_1.html
  31. How to internationalize a Java web application?: https://stackoverflow.com/questions/4276061/how-to-internationalize-a-java-web-application
  32. How to iterate an ArrayList inside a HashMap using JSTL?: https://stackoverflow.com/questions/2117557/how-to-iterate-an-arraylist-inside-a-hashmap-using-jstl
  33. Show JDBC ResultSet in HTML in JSP page using MVC and DAO pattern: https://stackoverflow.com/questions/5003142/show-jdbc-resultset-in-html-in-jsp-page-using-mvc-and-dao-pattern
  34. (Does using) JSTL in JSF2 Facelets… make sense?: https://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense
  35. Nice walkthrough of JSTL features (SLIDES): https://es.slideshare.net/tuoitrecomvn/session-7-jstl-gio-trnh-bch-khoa-aptech
  36. The JSTL Expression Language: http://www.informit.com/articles/article.aspx?p=30946&seqNum=7
  37. IBM DeveloperWorks -- Part 1 - The JSTL Expression Language (EL): https://www.ibm.com/developerworks/library/j-jstl0211/index.html
  38. Passing java bean properties to JSTL: https://stackoverflow.com/questions/16133956/passing-java-bean-properties-to-jstl
  39. jsp:usebean of c:set variable: https://stackoverflow.com/questions/19594971/jsp-usebean-of-cset
  40. JSTL or JSP 2.0 EL for getter with argument: https://stackoverflow.com/questions/5780504/jstl-or-jsp-2-0-el-for-getter-with-argument/5780555#5780555
  41. Access to class attributes with JSTL: https://stackoverflow.com/questions/24654542/access-to-class-attributes-with-jstl
  42. JSTL SQL Tag sql:param Example: https://www.codejava.net/java-ee/jstl/jstl-sql-tag-param
  43. JSTL-Form Action And Passing Parameter: http://www.java2s.com/Code/Java/JSTL/JSTLFormActionAndPassingParameter.htm
  44. fn:join() and fn:split() JSTL Functions: https://beginnersbook.com/2013/12/fn-join-and-fn-split-jstl-functions/
  45. Ternary operator in JSTL/EL: https://stackoverflow.com/questions/14482451/ternary-operator-in-jstl-el/14505934#14505934
  46. Example use of a Ternary operator in JSTL/EL: https://code-examples.net/en/q/dcfc13
  47. How to resolve “DSP Taglib did not match expected version” error: http://www.ateam-oracle.com/how-to-resolve-dsp-taglib-did-not-match-expected-version-error
  48. JavaServer Faces 2.3 Quick Reference: http://dzone.com/articles/javaserver-faces-23-1
  49. Java Server Faces (archive): http://web.archive.org/web/20121020123212/http://www.javaserverfaces.org/
  50. Getting started with JavaServer Faces 1.2, Part 1: Building basic applications: http://www.ibm.com/developerworks/java/tutorials/j-jsf1/
  51. JavaServer Faces (JSF) what's it used for?: https://readlearncode.com/java-ee/what-is-javaserver-faces-jsf/
  52. JSF for nonbelievers -- Walkthrough the 6 Phases of the JSF application lifecycle: http://www.ibm.com/developerworks/library/j-jsf2/
  53. The Definitive Guide to Apache MyFaces and Facelets (BOOK): https://www.apress.com/gp/book/9781590597378 | SRC | O'Reilly/SafariBooks
  54. How to get ServletContext in JSF 2: http://www.mkyong.com/jsf2/how-to-get-servletcontext-in-jsf-2/
  55. JSF commandButton Tag: http://www.roseindia.net/jsf/commandButton.shtml
  56. PrimeFaces CRUD Generator plugin for NetBeans: https://blogs.oracle.com/geertjan/entry/youtube_primefaces_crud_generator_for
  57. Why You Should Avoid JSF (for almost everything but some Enterprise applications): http://java.dzone.com/articles/why-you-should-avoid-jsf
  58. JSF Versus JSP, Which One Fits Your CRUD Application Needs?: http://java.dzone.com/articles/code-less-do-more-jsf-versus-0
  59. How to invoke a JSF managed bean asynchronously through JavaScript: http://www.theserverside.com/tutorial/How-to-invoke-a-JSF-managed-bean-asynchronously-through-JavaScript?track=NL-1806&ad=900932&src=900932
  60. Java Server Faces in Real-Life Applications: http://dzone.com/articles/java-server-faces-in-real-life-applications
  61. IBM Dev -- Creating custom JSF components: https://www.ibm.com/support/knowledgecenter/SSRTLW_9.0.1/com.ibm.etools.jsf.doc/topics/taddcustcomp2lib.html
  62. Delving Into Components: https://web.archive.org/web/20080303152642/https://netbeans.org/kb/55/vwp-about_components.html
  63. Update JSF components in sequence from bean: https://stackoverflow.com/questions/42176105/update-jsf-components-in-sequence-from-bean
  64. <f:ajax> Unable to attach <f:ajax> to non-ClientBehaviorHolder parent: https://stackoverflow.com/questions/3539992/fajax-unable-to-attach-fajax-to-non-clientbehaviorholder-parent
  65. How to programmatically ajax-update specific component in backing bean: https://stackoverflow.com/questions/16101392/how-to-programmatically-ajax-update-specific-component-in-backing-bean
  66. JSF - <f:ajax>: https://www.tutorialspoint.com/jsf/jsf_ajax.htm
  67. JSF - valueChangeListener: https://www.tutorialspoint.com/jsf/jsf_valuechangelistener_tag.htm
  68. JSF - <h:DataTable>: https://www.tutorialspoint.com/jsf/jsf_display_datatable.htm
  69. JSF - Add Data to DataTable: https://www.tutorialspoint.com/jsf/jsf_add_datatable.htm
  70. JSF - <h:graphicImage>: https://www.tutorialspoint.com/jsf/jsf_graphicimage_tag.htm
  71. Invisible comments in JSF 2.0?: https://stackoverflow.com/questions/3500738/invisible-comments-in-jsf-2-0
  72. 4 ways to pass parameter from JSF page to backing bean: https://www.mkyong.com/jsf2/4-ways-to-pass-parameter-from-jsf-page-to-backing-bean/
  73. Send additional parameter to Ajax event listener: https://stackoverflow.com/questions/39143601/send-additional-parameter-to-ajax-event-listener/39144025
  74. How to pass parameter to f:ajax in h:inputText? f:param does not work: https://stackoverflow.com/questions/10396244/how-to-pass-parameter-to-fajax-in-hinputtext-fparam-does-not-work
  75. Show loading progress when making JSF Ajax request: https://stackoverflow.com/questions/7880843/show-loading-progress-when-making-jsf-ajax-request
  76. Why use Javascript in a JSF form application: https://www.ibm.com/blogs/systems/use-javascript-jsf-form-application/
  77. How to include JavaScript file in JSF: https://www.mkyong.com/jsf2/how-to-include-javascript-file-in-jsf/
  78. JSF 2 Templating with Facelets example: https://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/
  79. Installing the JavaServer Faces Web application framework: https://www.theserverside.com/tutorial/Installing-the-JavaServer-Faces-Web-application-framework
  80. JSF 1.2 tutorial with Eclipse and Tomcat: http://balusc.omnifaces.org/2008/01/jsf-tutorial-with-eclipse-and-tomcat.html
  81. JSF 2.0 tutorial with Eclipse and Glassfish: http://balusc.omnifaces.org/2011/01/jsf-20-tutorial-with-eclipse-and.html
  82. JSF 2.2 tutorial with Eclipse and WildFly: http://balusc.omnifaces.org/2014/10/jsf-22-tutorial-with-eclipse-and-wildfly.html
  83. JavaServer Faces -- introduction to JSF 2.3: http://rieckpil.de/whatis-java-server-faces-an-introduction-to-jsf-2-3/ | SRC
  84. Hello World Example with JSF 2.0: https://examples.javacodegeeks.com/enterprise-java/jsf/hello-world-example-with-jsf-2-0/
  85. JSF Example Using JSF 2.0, eclipse, and maven: http://www.javawebtutor.com/articles/jsf/jsf_maven_example.php
  86. Creating JSF/CDI Maven project on Eclipse: https://www.javacodegeeks.com/2016/02/creating-jsfcdi-maven-project-eclipse.html
  87. Setting application URL on WAS server, where does "/faces/" come from in URL?: http://stackoverflow.com/questions/20265953/setting-application-url-on-was-server-where-does-faces-come-from/
  88. Deploying a JSF 2.3 Application on Tomcat 9: http://alibassam.com/deploying-jsf-2-3-application-tomcat-9/
  89. How to install CDI in Tomcat?: http://balusc.omnifaces.org/2013/10/how-to-install-cdi-in-tomcat.html
  90. JavaServer Faces 2.2 requires Dynamic Web Module 2.5 or newer: https://stackoverflow.com/questions/22361005/javaserver-faces-2-2-requires-dynamic-web-module-2-5-or-newer
  91. Set project stage for JavaServer Faces with JNDI configuration/lookup in Glassfish v3: https://stackoverflow.com/questions/8491904/set-project-stage-for-javaserver-faces-with-jndi-configuration-lookup-in-glassfi
  92. Removing /faces/ from URL in JSF applications: http://stackoverflow.com/questions/27584686/removing-faces-from-url-in-jsf-applications
  93. Customize FacesServlet <url-pattern> to get rid of .xhtml extension: https://stackoverflow.com/questions/18508329/customize-facesservlet-url-pattern-to-get-rid-of-xhtml-extension/
  94. Tomcat Server Failed to Start From Eclipse: https://dzone.com/articles/tomcat-server-failed-to-start-from-eclipse
  95. Apache TomEE: http://openejb.apache.org/apache-tomee.html
  96. TomEE WebProfile vs. TomEE MicroProfile vs. TomEE+ vs. TomEE PluME: https://tomitribe4.wpengine.com/blog/tomee-webprofile-vs-tomee-microprofile-vs-tomee-vs-tomee-plume/
  97. Custom Identity Store with Jakarta Security in TomEE: https://www.tomitribe.com/blog/custom-identity-store-with-jakarta-security-in-tomee/
  98. Jetty (legacy): http://sourceforge.net/projects/jetty/
  99. wikipedia: Comparison_of_application_servers#Java
  100. MyFaces - Quick Start guide: https://cwiki.apache.org/confluence/display/MYFACES/Quick+Start
  101. MyFaces components list: https://myfaces.apache.org/tomahawk-project/tomahawk/tagdoc.html
  102. PrimeFaces extensions showcase: http://fractalsoft.net/primeext-showcase-myfaces/views/home.jsf
  103. A reference guide to the components of the RichFaces 4.x framework (latest): http://docs.jboss.org/richfaces/4.3.X/4.3.2.Final/Component_Reference/en-US/html_single/
  104. Developer Guide to RichFaces 4.x latest: http://docs.jboss.org/richfaces/4.3.X/4.3.2.Final/Developer_Guide/en-US/html_single/
  105. Serving Web Content with Spring MVC: https://spring.io/guides/gs/serving-web-content/
  106. Maven central - Spring WebMVC: https://mvnrepository.com/artifact/org.springframework/spring-webmvc
  107. Spring MVC Tutorial: https://www.javatpoint.com/spring-mvc-tutorial
  108. Spring WebMVC overview: https://www.tutorialspoint.com/spring/spring_web_mvc_framework.htm
  109. Spring Data -- CRUD repository example: https://www.concretepage.com/spring-5/spring-data-crudrepository-example | SRC - Annotations config | SRC - XML config
  110. What is Spring Framework? From Dependency Injection to Web MVC: https://www.marcobehler.com/guides/spring-framework
  111. What is Spring bean?: http://dolszewski.com/spring/spring-bean/
  112. Differences Between applicationContext.xml and spring-servlet.xml in Spring: https://www.baeldung.com/spring-applicationcontext-vs-spring-servlet-xml
  113. Spring Boot With JavaServer Pages (JSP): https://www.baeldung.com/spring-boot-jsp
  114. Spring Tutorials & Guides (ROUNDUP): https://dzone.com/articles/spring-tutorials-and-guides
  115. The Complete Spring Tutorial: http://www.vaannila.com/spring/spring-tutorial/spring-tutorial.html
  116. Migrating from earlier versions of the Spring Framework: https://github.com/spring-projects/spring-framework/wiki/Migrating-from-earlier-versions-of-the-spring-framework
  117. How Fast is Spring?: https://spring.io/blog/2018/12/12/how-fast-is-spring
  118. Spring 4 & JPA with Hibernate: http://www.baeldung.com/2011/12/13/the-persistence-layer-with-spring-3-1-and-jpa/
  119. Are Annotations Bad?: https://dzone.com/articles/are-annotations-bad (answer: YES, if used in excess or depended on in the wrong places)
  120. Access Strategies in JPA and Hibernate – Which is better, field or property access?: https://thoughts-on-java.org/access-strategies-in-jpa-and-hibernate/
  121. Mastering Spring MVC: http://www.javaworld.com/article/2078034/spring-framework/mastering-spring-mvc.html
  122. Project Lombok: https://projectlombok.org (a Java library that promises a solution to "excessive boilerplate code")
  123. Spring vs. Spring Boot -- A Comparison of These Java Frameworks: https://dzone.com/articles/spring-vs-spring-boot
  124. REST Query Language with Spring Data JPA Specifications: https://www.baeldung.com/rest-api-search-language-spring-data-specifications
  125. Complete Guide to Spring RestTemplate: https://reflectoring.io/spring-resttemplate/
  126. Keyset Pagination with Spring: https://vladmihalcea.com/keyset-pagination-spring/
  127. Fully Reactive -- Spring, Kotlin and JavaFX playing together: https://blog.jetbrains.com/idea/2019/10/fully-reactive-spring-kotlin-and-javafx-playing-together/
  128. Spring Security – Roles and Privileges: https://www.baeldung.com/role-and-privilege-for-spring-security-registration
  129. Spring Security - Authentication and Authorization In-Depth: https://www.marcobehler.com/guides/spring-security
  130. Building Enterprise Java Applications the "Spring" way: https://dzone.com/articles/building-enterprise-java-applications-the-spring-w | SRC - Eclipse Microprofile with Hammock
  131. Top 40 Questions for a Spring Framework Interview: https://dzone.com/articles/top-40-questions-for-a-spring-framework-interview
  132. RestTemplate vs. WebClient: https://dzone.com/articles/resttemplate-vs-webclient (RestTemplate from spring-web being deprecated, use WebClient from spring-webflux instead)
  133. Sending HTTP requests with Spring WebClient: https://reflectoring.io/spring-webclient/
  134. Spring Microservices Security Best Practices: https://piotrminkowski.com/2021/05/26/spring-microservices-security-best-practices/
  135. A Java 17 and Jakarta EE 9 baseline for Spring Framework 6: https://spring.io/blog/2021/09/02/a-java-17-and-jakarta-ee-9-baseline-for-spring-framework-6
  136. Spring Boot Docker Deployment: https://techmark.pk/spring-boot-docker-deployment-dzone-java/
  137. How to Internationalize a Spring Boot Application: https://reflectoring.io/spring-boot-internationalization/ | SRC
  138. Paging with Spring & Spring Boot: https://reflectoring.io/spring-data-mvc-pagination/
  139. Spring vs. Spring MVC vs. Spring Boot -- How Do They Compare?: https://dzone.com/articles/spring-boot-vs-spring-mvc-vs-spring-how-do-they-compare
  140. Reactive Spring Boot -- Part 3 - A JavaFX Spring Boot Application: https://blog.jetbrains.com/idea/2019/11/tutorial-reactive-spring-boot-a-javafx-spring-boot-application/ | SRC
  141. Productive Web Development in Java with IntelliJ IDEA, Spring Boot, and Vaadin: https://blog.jetbrains.com/idea/2020/07/webinar-productive-web-development-in-java-with-intellij-idea-spring-boot-and-vaadin/
  142. JavaEE & Spring Boot (with Okta OAuth/OIDC) side-by-side API examples: https://dzone.com/articles/develop-a-rest-api-using-java-and-jetty | SRC
  143. Build a Simple Spring Boot App With Spring Data JPA & Postgres: https://dzone.com/articles/build-a-simple-spring-boot-app-with-spring-data-jp (using Okta as the Auth provider)
  144. Spring Boot 2 with JSP View: https://dzone.com/articles/spring-boot-2-with-jsp-view
  145. Health Checks with Spring Boot: https://reflectoring.io/spring-boot-health-check/
  146. Shutdown Spring Boot Applications Gracefully: https://dzone.com/articles/shutdown-spring-boot-applications-gracefully
  147. JPA/EJB3 killed the DAO: http://www.adam-bien.com/roller/abien/entry/jpa_ejb3_killed_the_dao
  148. Has JPA Killed the DAO?: http://www.infoq.com/news/2007/09/jpa-dao
  149. Data Access Object (DAO) design pattern in Java - Tutorial Example: http://javarevisited.blogspot.ca/2013/01/data-access-object-dao-design-pattern-java-tutorial-example.html
  150. Spring Projects Best Practices (Part 1): https://dzone.com/articles/spring-projects-best-practices-episode-i
  151. The "REST With Spring" Course -- tutorial files: https://github.com/eugenp/tutorials
  152. Spring Data JPA – How to Return DTOs from Native Queries: https://thorben-janssen.com/spring-data-jpa-dto-native-queries/
  153. Spring MVC tutorial: http://mhimu.wordpress.com/2007/11/27/spring-mvc-tutorial/ (Spring 2.0, 2007)
  154. Spring MVC Quick Start: Spring MVC Fast Tutorial: http://maestric.com/doc/java/spring (Spring 2.5, 2008)
  155. Mastering Spring MVC: http://www.javaworld.com/javaworld/jw-04-2009/jw-04-springmvc.html (Spring 2.5.2, 2009)
  156. Spring MVC Tutorial with Eclipse and Tomcat (Spring 2.5.5, 2009): http://www.myhomepageindia.com/index.php/2009/02/08/spring-mvc-tutorial-with-eclipse-and-tomcat.html
  157. Spring MVC Tutorial 1: http://www.vaannila.com/spring/spring-mvc-tutorial-1.html (Spring 3.0, 2010)
  158. Spring 3 hello world example: http://www.mkyong.com/spring3/spring-3-hello-world-example/ (Spring 3.0.5, 2011)
  159. TodoMVC with Thymeleaf and HTMX: https://www.wimdeblauwe.com/blog/2021/10/04/todomvc-with-thymeleaf-and-htmx/
  160. wikipedia: Strut
  161. Struts Architecture: http://struts.apache.org/release/2.0.x/docs/architecture.html
  162. Getting Started with Vaadin Framework 8: https://dzone.com/storage/assets/5874409-dzone-rc85-gettingstartedwithvaadin.pdf
  163. How to Build a Coronavirus Dashboard in Java (using Vaadin): https://dzone.com/articles/how-to-build-a-coronavirus-dashboard-in-java
  164. Convert JSP pages to JSP documents (JSPX) with Jsp2x: http://diaryproducts.net/about/programming_languages/java/convert_jsp_pages_to_jsp_documents_jspx_with_jsp2x
  165. What is Rxjava?: https://www.quora.com/What-is-Rxjava
  166. The Essential RxJava Guide for Android Developers: http://blog.jimbaca.com/essential-rxjava-guide-for-android-developers/
  167. RXJava by Example: https://www.infoq.com/articles/rxjava-by-example
  168. Introduction to RxJava: https://www.baeldung.com/rx-java
  169. Using RxJava 2 - Tutorial: https://www.vogella.com/tutorials/RxJava/article.html
  170. RxJava Tutorial: https://howtodoinjava.com/rxjava/rxjava-tutorial/
  171. RxJava - Quick Guide: https://www.tutorialspoint.com/rxjava/rxjava_quick_guide.htm
  172. JHipster mini book (E-BOOK): http://www.jhipster-book.com/#!/
  173. Full Stack Reactive with React and Spring WebFlux: https://www.infoq.com/presentations/reactive-spring-flux-react (live demo fail due to NPM "downloading the internet & its friends", with broken dependency lib, 1.8m+ lines of code)
  174. Full Stack Reactive with Spring WebFlux, WebSockets, and React: https://developer.okta.com/blog/2018/09/25/spring-webflux-websockets-react
  175. Use React and Spring Boot to Build a Simple CRUD App: https://developer.okta.com/blog/2018/07/19/simple-crud-react-and-spring-boot
  176. Java EE web development, where do I start and what skills do I need?: https://stackoverflow.com/questions/1958808/java-ee-web-development-where-do-i-start-and-what-skills-do-i-need
  177. http://jsfcompref.com/
  178. JSP File Upload: http://www.developershome.com/wap/wapUpload/wap_upload.asp?page=jsp3
  179. JSP Tutorial index: http://www.jsptut.com/
  180. Another JSP Tutorial, mostly scraped from JSPtut: http://www.jsptutorial.net/
  181. Transition from Java EE to Jakarta EE: https://blogs.oracle.com/javamagazine/post/transition-from-java-ee-to-jakarta-ee
  182. Java Servlet Redirect vs Forward - RequestDispatcher.forward() and Response.sendRedirect(): https://www.mysamplecode.com/2011/06/java-servlet-redirect-vs-forward.html
  183. How do I efficiently iterate over each entry in a Java Map?: https://stackoverflow.com/questions/46898/how-do-i-efficiently-iterate-over-each-entry-in-a-java-map
  184. JSP and JSTL tutorials: http://www.herongyang.com/jsp/
  185. A JSTL primer, Part 2 - Getting down to the core: http://www.ibm.com/developerworks/java/library/j-jstl0318/
  186. A JSTL primer, Part 3 - Presentation is everything: http://www.ibm.com/developerworks/java/library/j-jstl0415/
  187. A JSTL primer, Part 4 - Accessing SQL and XML content: http://www.ibm.com/developerworks/java/library/j-jstl0520/
  188. JSF 2 + Spring 3 integration example: http://www.mkyong.com/jsf2/jsf-2-0-spring-integration-example/
  189. JSF 2.0 + Spring + Hibernate integration example: http://www.mkyong.com/jsf2/jsf-2-0-spring-hibernate-integration-example/
  190. JSF 2 param example: https://www.mkyong.com/jsf2/jsf-2-param-example/
  191. JSF 2 dataTable example: https://www.mkyong.com/jsf2/jsf-2-datatable-example/
  192. How to add row in JSF dataTable: https://www.mkyong.com/jsf2/how-to-add-row-in-jsf-datatable/
  193. JSF 2 dataTable sorting example: https://www.mkyong.com/jsf2/jsf-2-datatable-sorting-example/
  194. How to update row in JSF dataTable: https://www.mkyong.com/jsf2/how-to-update-row-in-jsf-datatable/
  195. How to delete row in JSF dataTable: https://www.mkyong.com/jsf2/how-to-delete-row-in-jsf-datatable/
  196. PrimeFaces "hello world" example: http://www.mkyong.com/jsf2/primefaces/primefaces-hello-world-example/
  197. How to retrieve and display images from a database in a JSP page?: http://stackoverflow.com/questions/2340406/how-to-retrieve-and-display-images-from-a-database-in-a-jsp-page/2341322#2341322
  198. What is the difference between creating JSF pages with .jsp or .xhtml or .jsf extension: https://stackoverflow.com/questions/7914660/what-is-the-difference-between-creating-jsf-pages-with-jsp-or-xhtml-or-jsf-ex
  199. Should I be doing JSPX instead of JSP?: https://stackoverflow.com/questions/28235/should-i-be-doing-jspx-instead-of-jsp#28472
  200. Convert JSP pages to JSP documents (JSPX) with Jsp2x: https://diaryproducts.net/about/programming_languages/java/convert_jsp_pages_to_jsp_documents_jspx_with_jsp2x
  201. Iterating through a List<CustomClass> in jsp (jsp:getProperty?): https://stackoverflow.com/questions/11342440/iterating-through-a-listcustomclass-in-jsp-jspgetproperty
  202. Use JSTL forEach loop's varStatus as an ID: https://stackoverflow.com/questions/6600738/use-jstl-foreach-loops-varstatus-as-an-id
  203. Evaluate empty or null JSTL c tags: http://stackoverflow.com/questions/2811626/evaluate-empty-or-null-jstl-c-tags?rq=1
  204. How to specify useBean tag for array in JSTL: https://stackoverflow.com/questions/21759969/how-to-specify-usebean-tag-for-array-in-jstl
  205. How to Set Up Hot Code Replacement with Tomcat and Eclipse: http://www.redfin.com/blog/how_to_set_up_hot_code_replacement_with_tomcat_and_eclipse/
  206. Tomcat Web Application Deployment: https://tomcat.apache.org/tomcat-9.0-doc/deployer-howto.html
  207. TomEE & Eclipse: http://tomee.apache.org/tomee-and-eclipse.html
  208. Step-by-step Maven Tomcat WAR file deploy example: https://www.theserverside.com/video/Step-by-step-Maven-Tomcat-WAR-file-deploy-example
  209. How to deploy a JAR file to Tomcat the right way: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-deploy-a-JAR-file-to-Tomcat-the-right-way
  210. Step-by-step Jenkins Tomcat deploy of a WAR file: https://www.theserverside.com/video/Step-by-step-Jenkins-Tomcat-deploy-of-a-WAR-file
  211. Use of <async-supported>true</async-supported> in web.xml: https://stackoverflow.com/questions/36740624/async-supportedtrue-async-supported-in-web-xml
  212. Java Server Pages (JSP) tutorial for Beginners: https://o7planning.org/en/10263/java-jsp-tutorial
  213. How to fix Cannot change version of project facet Dynamic Web Module to 3.0 Error in Eclipse: https://crunchify.com/how-to-fix-cannot-change-version-of-project-facet-dynamic-web-module-to-3-0-error-in-eclipse/
  214. ServletException, HttpServletResponse and HttpServletRequest cannot be resolved to a type: https://stackoverflow.com/questions/13951127/servletexception-httpservletresponse-and-httpservletrequest-cannot-be-resolved
  215. Maven Compile GWT & OpenJDK 11: https://stackoverflow.com/questions/53962230/maven-compile-gwt-openjdk-11
  216. JSF 2.0 tutorial with Eclipse: http://balusc.omnifaces.org/2011/01/jsf-20-tutorial-with-eclipse-and.html
  217. JSF (JavaServer Faces) - Tutorial: https://www.vogella.com/tutorials/JavaServerFaces/article.html
  218. JSF Example with Eclipse and Tomcat: https://examples.javacodegeeks.com/enterprise-java/jsf/jsf-example-eclipse-tomcat/
  219. Creating JavaServer Faces Application In Eclipse: http://javawebtutor.com/articles/jsf/jsf_application_in_eclipse.php
  220. The Road to Jakarta EE 9: https://www.infoq.com/news/2020/10/the-road-to-jakartaee-9/
  221. Understanding Jakarta EE 9: https://www.eclipse.org/community/eclipse_newsletter/2020/november/1.php
  222. Jakarta EE 9.1 Release Contents and Status: http://www.eclipse.org/community/eclipse_newsletter/2021/march/1.php?mc_cid=c21d390a56&mc_eid=b6be4fbfe8
  223. Jakarta EE 9.1 now available: https://sdtimes.com/java/jakarta-ee-9-1-now-available/?activecampaign_id=123002
  224. Jakarta EE 9.1 and the Road to Jakarta EE 10: https://www.infoq.com/news/2021/06/jakarta-ee-9-1/
  225. Java EE, Jakarta EE, MicroProfile, or maybe all of them: https://developer.ibm.com/languages/java/articles/java-ee-jakarta-ee-microprofile-or-maybe-all-of-them/
  226. Fixing java.util.MissingResourceException: Can't find bundle for base name javax.servlet.LocalStrings, locale es_ES: https://stackoverflow.com/questions/31561603/java-util-missingresourceexception-cant-find-bundle-for-base-name-javax-servle
  227. Error java.util.MissingResourceException: Can't find bundle for base name localemsgs_en_US, locale en_US: https://community.jaspersoft.com/questions/823206/javautilmissingresourceexception-cant-find-bundle-base-name-localemsgsenus-locale
  228. Solve java.util.MissingResourceException: Can't find bundle for base name com...config, locale zh_CN: https://blogs.oracle.com/chengfang/solve-javautilmissingresourceexception:-cant-find-bundle-for-base-name-comconfig,-locale-zhcn
  229. Error -- "java.util.MissingResourceException: Can't find bundle for base name resources/extn/extnbundle, locale en_KR": https://www.ibm.com/support/pages/error-javautilmissingresourceexception-cant-find-bundle-base-name-resourcesextnextnbundle-locale-enkr
  230. javax.servlet.ServletException: Can't find bundle for base name messages, locale es: https://stackoverflow.com/questions/16310029/javax-servlet-servletexception-cant-find-bundle-for-base-name-messages-locale
  231. Can't find bundle for base name: https://stackoverflow.com/questions/2083159/cant-find-bundle-for-base-name
  232. MissingResourceException: Can't find bundle for base name: https://stackoverflow.com/questions/35000232/missingresourceexception-cant-find-bundle-for-base-name
  233. Can't find bundle for base name /Bundle, locale en_US: https://stackoverflow.com/questions/12986234/cant-find-bundle-for-base-name-bundle-locale-en-us/21512564

See Also

Java | Servlet | Applet | JMS | AEM