Start developing without any frameworks, and you will certainly notice yourself if you need it or not. If more than half of your code is the infrastructure for your web components, this may be the key to choosing a structure rather than developing it yourself.
As a best example, use System.out.println() for logging, improve it with some specialized package that also provides features such as writing to a file and then adding formatting to the message log, and when you realize that you spent half a year to develop your own poor home version of log4j (or something else), someone will complain and say that you had to choose a logging system from the very beginning and spend one or two weeks to learn how to use it.
Don't get me wrong, sometimes just wrappers of System.out.println() are enough, and the framework only adds overhead. Unfortunately, this scenario is rare these days ...
EDIT: I (or used to be) the developer of the anti-framework in the kernel, so I learned all of the above “hard way”.
For web frame suggestion: Apache Wicket
source share