Literally, both of them have meanings. In terms of running results, the functions of the two are similar, but the running process of the two is quite different.
<% @ Include %> the command is the compile-time syntax, that is, when compiling, copy the content of the target file pointed to by the command to the position where the command is located and replace the command, finally, a file is formed, and only one file is available during running.
<JSP: Include> the action is the runtime syntax. When the file containing the <JSP: Include> action is executed to this tag, it will switch to the target file pointed to by the execution tag, after the target file is executed, the content after the tag is executed. During running, two files are involved, just like method calls.
So when should I use the <% @ include %> command and the <JSP: Include> label? Because the <% @ include %> command is static and the <JSP: Include> command is dynamic, if a piece of code is executed, you can use the <% @ include %> command. If a piece of code may be executed but may not be executed, you can use <JSP: Include>.
In practical applications, the navigation part and the copyright part of many websites are the same and will appear in each file. Therefore, you can consider placing the content in a separate file, then use the <% @ include %> command to reference and use it.