I have created a login, register and query features. I am using Hibernate for persisting the data. But i have created Separate classes for each features, like LoginServlet.java, LoginDao.java, RegisterServlet, RegisterDao, QueryServlet, QueryDao. But I have also created different package for Servlet classes, and Dao classes. Is that ok? I guess that's not a perfect MVC. What all problems can i face in future as per this style of coding?
What you have is a layered architecture where you have decoupled your presentation layer with persistence layer. When you implement an MVC, you need to present your view using JSP, FreeMarker, Velocity etc as well. You servlet should act only as a controller and should not be responsible for preparing the view for your request. It should dispatch the request to a JSP or appropriate view template after getting data from a Model (in your case DAO layer).
As for package structure, you can segregate them either by layer or by functionality and layer.
Thanks for your reply Piyush. Yes, servlets just acts as a controller and dispatches the request to appropriate JSP. i also have a bean package where i have classes like LoginBean.java, RegisterBean.java, QueryBean.java. There is a jsp folder inside WEB_INF. It contains all the jsp files. Any other advices or suggestions.