Comprehensive Overview of Skills and Knowledge Required for a Java Web Project
This article outlines the complete set of front‑end, back‑end, database, server, and deployment technologies and best‑practice knowledge a developer needs to build and run a simple yet functional Java Web application, providing a clear big‑picture roadmap for beginners.
Recently the author has completed several Java Web projects, both commercial and personal, and writes this article to record the skills and knowledge required throughout the project lifecycle, offering beginners a comprehensive perspective and a roadmap for targeted learning.
The typical architecture of a website is divided into front‑end and back‑end. In classic Java Web development the presentation layer is built with JSP, complemented by HTML, CSS, JavaScript and AJAX. The back‑end implements business logic in Java and interacts with a database, following the MVC (Model‑View‑Controller) pattern. The back‑end code is usually organized into layers such as controller, service, DAO, and persistence, with optional interface layers for decoupling, and more complex projects may add caching, clustering, and load‑balancing layers.
Key technologies include front‑end basics (HTML, CSS, JS, AJAX, JSP) and template engines (Tiles, Velocity, FreeMarker); persistence frameworks (MyBatis, Hibernate); the Spring ecosystem (Spring, Spring MVC) for dependency injection and AOP; Maven for build automation; Log4j for logging; Git for version control; relational databases (MySQL, Oracle) and NoSQL stores (MongoDB, Redis). Mastering these enables developers to start writing Java Web applications.
After coding, the application must be deployed to an application server such as Tomcat, Jetty, or JBoss. Application servers run dynamic technologies like JSP and Servlets. A separate web server (e.g., Nginx or Apache) handles HTTP requests and forwards them to the application server, providing load balancing, CDN acceleration, and improved performance in production environments.
Servers are essentially computers running a *nix operating system (CentOS, Ubuntu, etc.) without a graphical interface, hosting server software like Tomcat, Jetty, Nginx, or Apache. Understanding the operating system and basic shell commands is essential for managing these environments.
In summary, building a simple Java Web project involves writing code with the aforementioned frameworks, provisioning a Linux host, installing a web server and an application server, deploying the code, and accessing the application via the host’s IP address.
Knowledge Points List
Development
View layer technologies – HTML, CSS, JS, AJAX, Tiles, Velocity, FreeMarker
Persistence layer technologies – MyBatis, Hibernate
Spring, Spring MVC
Project build tool – Maven
Logging – Log4j
Version control – Git
Database Technologies
SQL statements
Parameter tuning
Operating System
Proficient with a Linux distribution, its principles, and shell commands
Server Technologies
Understanding and using an application server (Tomcat)
Understanding and using a web server (Nginx)
Additional Topics
Cache Technologies
Understanding and using a cache system (Redis, Memcache, EhCache)
Non‑Relational Databases
Understanding and using a NoSQL database (MongoDB)
Middleware
JMS – ActiveMQ, Kafka
RPC – Dubbo
Design Patterns
Familiarity with major design patterns
Networking
Understanding a network framework (Netty)
Familiarity with HTTP and TCP protocols
Java Virtual Machine
Understanding JVM runtime principles and memory layout
JVM parameter tuning
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Java Captain
Focused on Java technologies: SSM, the Spring ecosystem, microservices, MySQL, MyCat, clustering, distributed systems, middleware, Linux, networking, multithreading; occasionally covers DevOps tools like Jenkins, Nexus, Docker, ELK; shares practical tech insights and is dedicated to full‑stack Java development.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
