JakartaEE

From BC$ MobileTV Wiki
(Redirected from Spring)
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-10

[4] [5]

[6] [7] [8] [9] [10] [11] [12] [13] [14] [15]

[16] [17] [18]

Microprofile

[19] [20]


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.[21]

[22]

JSTL

[24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34] [35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49] [50] [51] [52] [53]


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).

[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] [94] [95] [96] [97] [98] [99] [100]

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

[101]

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.

[102] [103] [104]

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

[106]



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[112][113][114][115]
  2. Spring - Data: https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#reference[116]
  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


[117] [118] [119] [120] [121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140] [141] [142] [143]

Spring Boot

[144]

[145] [146] [147] [148] [149] [150] [151] [152] [153] [154] [155]

DAO

Data Access Object (DAO).

[156] [157] [158] [159] [160] [161]

Spring Web (MVC)

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

[162] [163] [164] [165] [166] [167]

Thymeleaf

[168]

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"[169] 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

[171] [172]


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

[185]


Tutorials

[190]






[217] [218] [219]


External Links

[220]

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

[222] [223] [224] [225] [226] [227] [228]

[229] [230] [231] [232] [233]

[234]

[235] [236] [237] [238] [239] [240] [241] [242]


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. What is Jakarta EE?: https://blog.payara.fish/jakarta-ee-java-ee-guide
  9. Getting Started With Jakarta EE 9: https://dzone.com/articles/getting-started-with-jakarta-ee-9
  10. Understanding Jakarta EE 9: https://www.eclipse.org/community/eclipse_newsletter/2020/november/1.php
  11. Jakarta EE 9 with WildFly Preview: https://www.wildfly.org/news/2020/11/12/Jakarta-EE-9-with-WildFly-Preview/
  12. The Road to Jakarta EE 9: https://www.infoq.com/news/2020/10/the-road-to-jakartaee-9/
  13. Jakarta EE 9 -- "Hello World" example application: http://www.mastertheboss.com/javaee/jakarta-ee/jakarta-ee-9-hello-world-example-application
  14. Jakarta EE8, EE9, EE9.1. …. What???: https://ralph.blog.imixs.com/2022/01/17/jakarta-ee8-ee9-ee9-1-what/
  15. Migrating from “javax.” to “Jakarta.” package namespace: https://www.youtube.com/watch?v=mukr2Q_zBm4
  16. Java for the enterprise - What to expect in Jakarta EE 10: https://blogs.oracle.com/javamagazine/post/java-for-the-enterprise-what-to-expect-in-jakarta-ee-10
  17. New Features in JakartaEE 10 -- JSON Processing and JSON Binding: https://jaxenter.com/jakarta-json-processing-177030.html
  18. Jakarta EE 10 -- Security Involves Three Specifications: https://newsroom.eclipse.org/eclipse-newsletter/2022/march/jakarta-ee-security-specifications
  19. Jakarta MicroProfile spec - What You Need to Know: https://dzone.com/articles/microprofile-what-you-need-to-know
  20. Building Microservices with Eclipse MicroProfile: https://www.baeldung.com/eclipse-microprofile
  21. JavaServer Pages Technology - SUN official page: http://java.sun.com/products/jsp/
  22. Difference Between JSF, Servlet, and JSP: https://www.baeldung.com/jsf-servlet-jsp
  23. JSTL 1.2 reference: https://www.tutorialspoint.com/jsp/jsp_standard_tag_library.htm
  24. Tutorial -- Create JSP custom tag library: http://viralpatel.net/blogs/tutorial-create-custom-tag-library-taglib-in-jsp/ (QUICKEST, CLEAREST TUTORIAL ON JSTL)
  25. JSTL tutorials with examples: http://www.apekshit.com/JSTL-Tutorial-for-beginners-with-Example/c/26
  26. Java Server Pages - Standard Tag Library (JSTL) tutorial: https://o7planning.org/en/10429/java-jsp-standard-tag-library-jstl-tutorial
  27. Writing Custom Functions in JSTL: https://stackoverflow.com/questions/27201778/writing-custom-functions-in-jstl
  28. 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
  29. Custom Tags and Custom EL Functions in JSP Pages: http://blog.idleworx.com/2010/04/custom-tags-and-custom-el-functions-in.html
  30. Caching in JSP and JSTL: http://www.caucho.com/resin-3.0/performance/caching.xtp
  31. JSTL c:import: https://www.owasp.org/index.php/JSP_JSTL
  32. XSLT and Caching content in JSTL: http://flylib.com/books/en/3.299.1.51/1/
  33. 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
  34. Introducing to JSP Standard Tag Library: http://www.zentut.com/jsp-tutorial/introducing-to-jsp-standard-tag-library/
  35. 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
  36. NetBeans IDE 6.x Tutorial for Java Web Applications Part 2 -- Using JSTL to handle internationalization: http://www.javaguicodexample.com/javawebjsfjspjstlnetbeans4_1.html
  37. How to internationalize a Java web application?: https://stackoverflow.com/questions/4276061/how-to-internationalize-a-java-web-application
  38. 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
  39. 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
  40. (Does using) JSTL in JSF2 Facelets… make sense?: https://stackoverflow.com/questions/3342984/jstl-in-jsf2-facelets-makes-sense
  41. Nice walkthrough of JSTL features (SLIDES): https://es.slideshare.net/tuoitrecomvn/session-7-jstl-gio-trnh-bch-khoa-aptech
  42. The JSTL Expression Language: http://www.informit.com/articles/article.aspx?p=30946&seqNum=7
  43. IBM DeveloperWorks -- Part 1 - The JSTL Expression Language (EL): https://www.ibm.com/developerworks/library/j-jstl0211/index.html
  44. Passing java bean properties to JSTL: https://stackoverflow.com/questions/16133956/passing-java-bean-properties-to-jstl
  45. jsp:usebean of c:set variable: https://stackoverflow.com/questions/19594971/jsp-usebean-of-cset
  46. 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
  47. Access to class attributes with JSTL: https://stackoverflow.com/questions/24654542/access-to-class-attributes-with-jstl
  48. JSTL SQL Tag sql:param Example: https://www.codejava.net/java-ee/jstl/jstl-sql-tag-param
  49. JSTL-Form Action And Passing Parameter: http://www.java2s.com/Code/Java/JSTL/JSTLFormActionAndPassingParameter.htm
  50. fn:join() and fn:split() JSTL Functions: https://beginnersbook.com/2013/12/fn-join-and-fn-split-jstl-functions/
  51. Ternary operator in JSTL/EL: https://stackoverflow.com/questions/14482451/ternary-operator-in-jstl-el/14505934#14505934
  52. Example use of a Ternary operator in JSTL/EL: https://code-examples.net/en/q/dcfc13
  53. 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
  54. JavaServer Faces 2.3 Quick Reference: http://dzone.com/articles/javaserver-faces-23-1
  55. Java Server Faces (archive): http://web.archive.org/web/20121020123212/http://www.javaserverfaces.org/
  56. Getting started with JavaServer Faces 1.2, Part 1: Building basic applications: http://www.ibm.com/developerworks/java/tutorials/j-jsf1/
  57. JavaServer Faces (JSF) what's it used for?: https://readlearncode.com/java-ee/what-is-javaserver-faces-jsf/
  58. JSF for nonbelievers -- Walkthrough the 6 Phases of the JSF application lifecycle: http://www.ibm.com/developerworks/library/j-jsf2/
  59. The Definitive Guide to Apache MyFaces and Facelets (BOOK): https://www.apress.com/gp/book/9781590597378 | SRC | O'Reilly/SafariBooks
  60. How to get ServletContext in JSF 2: http://www.mkyong.com/jsf2/how-to-get-servletcontext-in-jsf-2/
  61. JSF commandButton Tag: http://www.roseindia.net/jsf/commandButton.shtml
  62. PrimeFaces CRUD Generator plugin for NetBeans: https://blogs.oracle.com/geertjan/entry/youtube_primefaces_crud_generator_for
  63. Why You Should Avoid JSF (for almost everything but some Enterprise applications): http://java.dzone.com/articles/why-you-should-avoid-jsf
  64. JSF Versus JSP, Which One Fits Your CRUD Application Needs?: http://java.dzone.com/articles/code-less-do-more-jsf-versus-0
  65. 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
  66. Java Server Faces in Real-Life Applications: http://dzone.com/articles/java-server-faces-in-real-life-applications
  67. IBM Dev -- Creating custom JSF components: https://www.ibm.com/support/knowledgecenter/SSRTLW_9.0.1/com.ibm.etools.jsf.doc/topics/taddcustcomp2lib.html
  68. Delving Into Components: https://web.archive.org/web/20080303152642/https://netbeans.org/kb/55/vwp-about_components.html
  69. Update JSF components in sequence from bean: https://stackoverflow.com/questions/42176105/update-jsf-components-in-sequence-from-bean
  70. <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
  71. 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
  72. JSF - <f:ajax>: https://www.tutorialspoint.com/jsf/jsf_ajax.htm
  73. JSF - valueChangeListener: https://www.tutorialspoint.com/jsf/jsf_valuechangelistener_tag.htm
  74. JSF - <h:DataTable>: https://www.tutorialspoint.com/jsf/jsf_display_datatable.htm
  75. JSF - Add Data to DataTable: https://www.tutorialspoint.com/jsf/jsf_add_datatable.htm
  76. JSF - <h:graphicImage>: https://www.tutorialspoint.com/jsf/jsf_graphicimage_tag.htm
  77. Invisible comments in JSF 2.0?: https://stackoverflow.com/questions/3500738/invisible-comments-in-jsf-2-0
  78. 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/
  79. Send additional parameter to Ajax event listener: https://stackoverflow.com/questions/39143601/send-additional-parameter-to-ajax-event-listener/39144025
  80. 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
  81. Show loading progress when making JSF Ajax request: https://stackoverflow.com/questions/7880843/show-loading-progress-when-making-jsf-ajax-request
  82. Why use Javascript in a JSF form application: https://www.ibm.com/blogs/systems/use-javascript-jsf-form-application/
  83. How to include JavaScript file in JSF: https://www.mkyong.com/jsf2/how-to-include-javascript-file-in-jsf/
  84. JSF 2 Templating with Facelets example: https://www.mkyong.com/jsf2/jsf-2-templating-with-facelets-example/
  85. Installing the JavaServer Faces Web application framework: https://www.theserverside.com/tutorial/Installing-the-JavaServer-Faces-Web-application-framework
  86. JSF 1.2 tutorial with Eclipse and Tomcat: http://balusc.omnifaces.org/2008/01/jsf-tutorial-with-eclipse-and-tomcat.html
  87. JSF 2.0 tutorial with Eclipse and Glassfish: http://balusc.omnifaces.org/2011/01/jsf-20-tutorial-with-eclipse-and.html
  88. JSF 2.2 tutorial with Eclipse and WildFly: http://balusc.omnifaces.org/2014/10/jsf-22-tutorial-with-eclipse-and-wildfly.html
  89. JavaServer Faces -- introduction to JSF 2.3: http://rieckpil.de/whatis-java-server-faces-an-introduction-to-jsf-2-3/ | SRC
  90. Hello World Example with JSF 2.0: https://examples.javacodegeeks.com/enterprise-java/jsf/hello-world-example-with-jsf-2-0/
  91. JSF Example Using JSF 2.0, eclipse, and maven: http://www.javawebtutor.com/articles/jsf/jsf_maven_example.php
  92. Creating JSF/CDI Maven project on Eclipse: https://www.javacodegeeks.com/2016/02/creating-jsfcdi-maven-project-eclipse.html
  93. 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/
  94. Deploying a JSF 2.3 Application on Tomcat 9: http://alibassam.com/deploying-jsf-2-3-application-tomcat-9/
  95. How to install CDI in Tomcat?: http://balusc.omnifaces.org/2013/10/how-to-install-cdi-in-tomcat.html
  96. 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
  97. 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
  98. Removing /faces/ from URL in JSF applications: http://stackoverflow.com/questions/27584686/removing-faces-from-url-in-jsf-applications
  99. 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/
  100. What is JSF? Introducing JavaServer Faces: https://www.infoworld.com/article/3322533/what-is-jsf-introducing-javaserver-faces.html
  101. Tomcat Server Failed to Start From Eclipse: https://dzone.com/articles/tomcat-server-failed-to-start-from-eclipse
  102. Apache TomEE: http://openejb.apache.org/apache-tomee.html
  103. 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/
  104. Custom Identity Store with Jakarta Security in TomEE: https://www.tomitribe.com/blog/custom-identity-store-with-jakarta-security-in-tomee/
  105. Jetty (legacy): http://sourceforge.net/projects/jetty/
  106. wikipedia: Comparison_of_application_servers#Java
  107. MyFaces - Quick Start guide: https://cwiki.apache.org/confluence/display/MYFACES/Quick+Start
  108. MyFaces components list: https://myfaces.apache.org/tomahawk-project/tomahawk/tagdoc.html
  109. PrimeFaces extensions showcase: http://fractalsoft.net/primeext-showcase-myfaces/views/home.jsf
  110. 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/
  111. 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/
  112. Serving Web Content with Spring MVC: https://spring.io/guides/gs/serving-web-content/
  113. Maven central - Spring WebMVC: https://mvnrepository.com/artifact/org.springframework/spring-webmvc
  114. Spring MVC Tutorial: https://www.javatpoint.com/spring-mvc-tutorial
  115. Spring WebMVC overview: https://www.tutorialspoint.com/spring/spring_web_mvc_framework.htm
  116. Spring Data -- CRUD repository example: https://www.concretepage.com/spring-5/spring-data-crudrepository-example | SRC - Annotations config | SRC - XML config
  117. What is Spring Framework? From Dependency Injection to Web MVC: https://www.marcobehler.com/guides/spring-framework
  118. What is Spring bean?: http://dolszewski.com/spring/spring-bean/
  119. Differences Between applicationContext.xml and spring-servlet.xml in Spring: https://www.baeldung.com/spring-applicationcontext-vs-spring-servlet-xml
  120. Spring Boot With JavaServer Pages (JSP): https://www.baeldung.com/spring-boot-jsp
  121. Spring Tutorials & Guides (ROUNDUP): https://dzone.com/articles/spring-tutorials-and-guides
  122. The Complete Spring Tutorial: http://www.vaannila.com/spring/spring-tutorial/spring-tutorial.html
  123. Migrating from earlier versions of the Spring Framework: https://github.com/spring-projects/spring-framework/wiki/Migrating-from-earlier-versions-of-the-spring-framework
  124. How Fast is Spring?: https://spring.io/blog/2018/12/12/how-fast-is-spring
  125. Spring 4 & JPA with Hibernate: http://www.baeldung.com/2011/12/13/the-persistence-layer-with-spring-3-1-and-jpa/
  126. Are Annotations Bad?: https://dzone.com/articles/are-annotations-bad (answer: YES, if used in excess or depended on in the wrong places)
  127. Autowiring in Spring: https://dzone.com/articles/autowiring-in-spring
  128. Access Strategies in JPA and Hibernate – Which is better, field or property access?: https://thoughts-on-java.org/access-strategies-in-jpa-and-hibernate/
  129. Mastering Spring MVC: http://www.javaworld.com/article/2078034/spring-framework/mastering-spring-mvc.html
  130. Project Lombok: https://projectlombok.org (a Java library that promises a solution to "excessive boilerplate code")
  131. Spring vs. Spring Boot -- A Comparison of These Java Frameworks: https://dzone.com/articles/spring-vs-spring-boot
  132. REST Query Language with Spring Data JPA Specifications: https://www.baeldung.com/rest-api-search-language-spring-data-specifications
  133. Complete Guide to Spring RestTemplate: https://reflectoring.io/spring-resttemplate/
  134. Keyset Pagination with Spring: https://vladmihalcea.com/keyset-pagination-spring/
  135. Fully Reactive -- Spring, Kotlin and JavaFX playing together: https://blog.jetbrains.com/idea/2019/10/fully-reactive-spring-kotlin-and-javafx-playing-together/
  136. Spring Security – Roles and Privileges: https://www.baeldung.com/role-and-privilege-for-spring-security-registration
  137. Spring Security - Authentication and Authorization In-Depth: https://www.marcobehler.com/guides/spring-security
  138. Building Enterprise Java Applications the "Spring" way: https://dzone.com/articles/building-enterprise-java-applications-the-spring-w | SRC - Eclipse Microprofile with Hammock
  139. Top 40 Questions for a Spring Framework Interview: https://dzone.com/articles/top-40-questions-for-a-spring-framework-interview
  140. RestTemplate vs. WebClient: https://dzone.com/articles/resttemplate-vs-webclient (RestTemplate from spring-web being deprecated, use WebClient from spring-webflux instead)
  141. Sending HTTP requests with Spring WebClient: https://reflectoring.io/spring-webclient/
  142. Spring Microservices Security Best Practices: https://piotrminkowski.com/2021/05/26/spring-microservices-security-best-practices/
  143. 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
  144. Spring Boot Docker Deployment: https://techmark.pk/spring-boot-docker-deployment-dzone-java/
  145. How to Internationalize a Spring Boot Application: https://reflectoring.io/spring-boot-internationalization/ | SRC
  146. Paging with Spring & Spring Boot: https://reflectoring.io/spring-data-mvc-pagination/
  147. 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
  148. 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
  149. 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/
  150. 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
  151. 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)
  152. Spring Boot 2 with JSP View: https://dzone.com/articles/spring-boot-2-with-jsp-view
  153. Health Checks with Spring Boot: https://reflectoring.io/spring-boot-health-check/
  154. Shutdown Spring Boot Applications Gracefully: https://dzone.com/articles/shutdown-spring-boot-applications-gracefully
  155. Spring Boot Tutorial - Nice & Easy tutorial (VIDEO): https://www.youtube.com/watch?v=QuvS_VLbGko
  156. JPA/EJB3 killed the DAO: http://www.adam-bien.com/roller/abien/entry/jpa_ejb3_killed_the_dao
  157. Has JPA Killed the DAO?: http://www.infoq.com/news/2007/09/jpa-dao
  158. 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
  159. Spring Projects Best Practices (Part 1): https://dzone.com/articles/spring-projects-best-practices-episode-i
  160. The "REST With Spring" Course -- tutorial files: https://github.com/eugenp/tutorials
  161. Spring Data JPA – How to Return DTOs from Native Queries: https://thorben-janssen.com/spring-data-jpa-dto-native-queries/
  162. Spring MVC tutorial: http://mhimu.wordpress.com/2007/11/27/spring-mvc-tutorial/ (Spring 2.0, 2007)
  163. Spring MVC Quick Start: Spring MVC Fast Tutorial: http://maestric.com/doc/java/spring (Spring 2.5, 2008)
  164. Mastering Spring MVC: http://www.javaworld.com/javaworld/jw-04-2009/jw-04-springmvc.html (Spring 2.5.2, 2009)
  165. 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
  166. Spring MVC Tutorial 1: http://www.vaannila.com/spring/spring-mvc-tutorial-1.html (Spring 3.0, 2010)
  167. Spring 3 hello world example: http://www.mkyong.com/spring3/spring-3-hello-world-example/ (Spring 3.0.5, 2011)
  168. TodoMVC with Thymeleaf and HTMX: https://www.wimdeblauwe.com/blog/2021/10/04/todomvc-with-thymeleaf-and-htmx/
  169. wikipedia: Strut
  170. Struts Architecture: http://struts.apache.org/release/2.0.x/docs/architecture.html
  171. Getting Started with Vaadin Framework 8: https://dzone.com/storage/assets/5874409-dzone-rc85-gettingstartedwithvaadin.pdf
  172. How to Build a Coronavirus Dashboard in Java (using Vaadin): https://dzone.com/articles/how-to-build-a-coronavirus-dashboard-in-java
  173. 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
  174. What is Rxjava?: https://www.quora.com/What-is-Rxjava
  175. The Essential RxJava Guide for Android Developers: http://blog.jimbaca.com/essential-rxjava-guide-for-android-developers/
  176. RXJava by Example: https://www.infoq.com/articles/rxjava-by-example
  177. Introduction to RxJava: https://www.baeldung.com/rx-java
  178. Using RxJava 2 - Tutorial: https://www.vogella.com/tutorials/RxJava/article.html
  179. RxJava Tutorial: https://howtodoinjava.com/rxjava/rxjava-tutorial/
  180. RxJava - Quick Guide: https://www.tutorialspoint.com/rxjava/rxjava_quick_guide.htm
  181. JHipster mini book (E-BOOK): http://www.jhipster-book.com/#!/
  182. 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)
  183. Full Stack Reactive with Spring WebFlux, WebSockets, and React: https://developer.okta.com/blog/2018/09/25/spring-webflux-websockets-react
  184. 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
  185. 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
  186. http://jsfcompref.com/
  187. JSP File Upload: http://www.developershome.com/wap/wapUpload/wap_upload.asp?page=jsp3
  188. JSP Tutorial index: http://www.jsptut.com/
  189. Another JSP Tutorial, mostly scraped from JSPtut: http://www.jsptutorial.net/
  190. Transition from Java EE to Jakarta EE: https://blogs.oracle.com/javamagazine/post/transition-from-java-ee-to-jakarta-ee
  191. Java Servlet Redirect vs Forward - RequestDispatcher.forward() and Response.sendRedirect(): https://www.mysamplecode.com/2011/06/java-servlet-redirect-vs-forward.html
  192. 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
  193. JSP and JSTL tutorials: http://www.herongyang.com/jsp/
  194. A JSTL primer, Part 2 - Getting down to the core: http://www.ibm.com/developerworks/java/library/j-jstl0318/
  195. A JSTL primer, Part 3 - Presentation is everything: http://www.ibm.com/developerworks/java/library/j-jstl0415/
  196. A JSTL primer, Part 4 - Accessing SQL and XML content: http://www.ibm.com/developerworks/java/library/j-jstl0520/
  197. JSF 2 + Spring 3 integration example: http://www.mkyong.com/jsf2/jsf-2-0-spring-integration-example/
  198. JSF 2.0 + Spring + Hibernate integration example: http://www.mkyong.com/jsf2/jsf-2-0-spring-hibernate-integration-example/
  199. JSF 2 param example: https://www.mkyong.com/jsf2/jsf-2-param-example/
  200. JSF 2 dataTable example: https://www.mkyong.com/jsf2/jsf-2-datatable-example/
  201. How to add row in JSF dataTable: https://www.mkyong.com/jsf2/how-to-add-row-in-jsf-datatable/
  202. JSF 2 dataTable sorting example: https://www.mkyong.com/jsf2/jsf-2-datatable-sorting-example/
  203. How to update row in JSF dataTable: https://www.mkyong.com/jsf2/how-to-update-row-in-jsf-datatable/
  204. How to delete row in JSF dataTable: https://www.mkyong.com/jsf2/how-to-delete-row-in-jsf-datatable/
  205. PrimeFaces "hello world" example: http://www.mkyong.com/jsf2/primefaces/primefaces-hello-world-example/
  206. 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
  207. 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
  208. Should I be doing JSPX instead of JSP?: https://stackoverflow.com/questions/28235/should-i-be-doing-jspx-instead-of-jsp#28472
  209. 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
  210. Iterating through a List<CustomClass> in jsp (jsp:getProperty?): https://stackoverflow.com/questions/11342440/iterating-through-a-listcustomclass-in-jsp-jspgetproperty
  211. Use JSTL forEach loop's varStatus as an ID: https://stackoverflow.com/questions/6600738/use-jstl-foreach-loops-varstatus-as-an-id
  212. Evaluate empty or null JSTL c tags: http://stackoverflow.com/questions/2811626/evaluate-empty-or-null-jstl-c-tags?rq=1
  213. How to specify useBean tag for array in JSTL: https://stackoverflow.com/questions/21759969/how-to-specify-usebean-tag-for-array-in-jstl
  214. 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/
  215. Tomcat Web Application Deployment: https://tomcat.apache.org/tomcat-9.0-doc/deployer-howto.html
  216. TomEE & Eclipse: http://tomee.apache.org/tomee-and-eclipse.html
  217. Step-by-step Maven Tomcat WAR file deploy example: https://www.theserverside.com/video/Step-by-step-Maven-Tomcat-WAR-file-deploy-example
  218. 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
  219. 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
  220. Use of <async-supported>true</async-supported> in web.xml: https://stackoverflow.com/questions/36740624/async-supportedtrue-async-supported-in-web-xml
  221. Java Server Pages (JSP) tutorial for Beginners: https://o7planning.org/en/10263/java-jsp-tutorial
  222. 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/
  223. ServletException, HttpServletResponse and HttpServletRequest cannot be resolved to a type: https://stackoverflow.com/questions/13951127/servletexception-httpservletresponse-and-httpservletrequest-cannot-be-resolved
  224. Maven Compile GWT & OpenJDK 11: https://stackoverflow.com/questions/53962230/maven-compile-gwt-openjdk-11
  225. JSF 2.0 tutorial with Eclipse: http://balusc.omnifaces.org/2011/01/jsf-20-tutorial-with-eclipse-and.html
  226. JSF (JavaServer Faces) - Tutorial: https://www.vogella.com/tutorials/JavaServerFaces/article.html
  227. JSF Example with Eclipse and Tomcat: https://examples.javacodegeeks.com/enterprise-java/jsf/jsf-example-eclipse-tomcat/
  228. Creating JavaServer Faces Application In Eclipse: http://javawebtutor.com/articles/jsf/jsf_application_in_eclipse.php
  229. The Road to Jakarta EE 9: https://www.infoq.com/news/2020/10/the-road-to-jakartaee-9/
  230. Understanding Jakarta EE 9: https://www.eclipse.org/community/eclipse_newsletter/2020/november/1.php
  231. 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
  232. Jakarta EE 9.1 now available: https://sdtimes.com/java/jakarta-ee-9-1-now-available/?activecampaign_id=123002
  233. Jakarta EE 9.1 and the Road to Jakarta EE 10: https://www.infoq.com/news/2021/06/jakarta-ee-9-1/
  234. 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/
  235. 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
  236. 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
  237. 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
  238. 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
  239. 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
  240. Can't find bundle for base name: https://stackoverflow.com/questions/2083159/cant-find-bundle-for-base-name
  241. MissingResourceException: Can't find bundle for base name: https://stackoverflow.com/questions/35000232/missingresourceexception-cant-find-bundle-for-base-name
  242. 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