Is this a beginning project? Because there is so much you need to know, maybe smaller projects would be good to try first. Here are my suggestions:
* Pick an IDE
. NetBeans and Eclipse are free and professional quantity. Either is fine.
* Pick a database. MySql and PostGres are free and professional quality. Either is fine.
* Learn a little about the database you picked. Create some tables. Learn SQL and create a few "reports".
* Write an application that uses JDBC to print a report to the console.
* You may want to consider Hibernate, which is another way other than JDBC to communicate with a database. You interact with objects more than SQL. Not necessary, but useful.
* Write an application that will get user input from the console and create, remove, update, or delete a row in a table or tables.
* Pick a Servlet
Container technology. Tomcat
, Jetty, JBoss
are examples. If you use Netbeans you may want to use GlassFish.
* Learn about HTTP, HTML, CSS
* Pick JSP
or ThymeLeaf. JSP is more widely used but I think ThymeLeaf is more powerful and easier.
* If you want, update your JDBC/Hibernate report to HTML/JSP. Make this a small project because next...
* You should pick a dynamic web framework. The two biggies are Spring and Struts
. I've used Spring, so I'd recommend it.
* Write "Hello, World!" in Spring/Struts
* Write a simple Login page that checks the database for the password.
* Okay, now write your application!
Oh, and I just notice you want to write a mobile app. Well, there may be a whole other way to go about that! I'll add this to the Mobile forum.