Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I’m planning on making a Java web application using Amazon Web Services Elastic Beanstalk. AWS Elastic Beanstalk basically provides PaaS on top of AWS’s cloud computing resources.

The problem I’m having is trying to learn how to make a Java web application. I’m familiar with making basic programs with Java (1st year computer science stuff) and have read the Head First java book, however I’m totally clueless when it comes to a large project like this.

I’ve tried to find a suitable tutorial in the AWS docs, but as far as I can tell it assumes you know how to make Java applications. I tried the Oracle Java docs, and I’ve been searching the internet for something useful.


The problem is that all the resources I find assume familiarity with what I’m trying to learn. Ideally I would like an article or tutorial that describes the process and how to make a Java web app that assumes only basic knowledge of the Java programming language.

So if anyone can offer any advice, or docs that could help me achieve that goal, I would greatly appreciate your help :-)


Thanks in advance, and I apologize if it seems that Googling could answer this question, but I have honestly looked quite hard to find some way of learning this and have come up with nothing. So I’ve come to you guys - the experts ;) - who presumably knew as little as I did at the start.



Basic details of the app:
It will have a web based interface as well as Android and iOS apps to connect to it. It will be of medium complexity and will involve user interaction. For the browser based part it will involve taking payments from users if they wish to buy a premium part of the service.

share|improve this question

closed as off-topic by gnat, MichaelT, Simon, Kilian Foth, Glenn Nelson Dec 17 '13 at 12:12

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, MichaelT, Simon, Glenn Nelson
If this question can be reworded to fit the rules in the help center, please edit the question.

6 Answers 6

I don't know the technologies stack of Elastic Beanstalk but in case you can use Java web development API (Servlets and JSP) then I highly recommend that you read Head First Servlets and JSP, 2nd Edition .

Your familiarity with Java programming will serve you well.

You can also check the official The Java EE 6 tutorial, it is an extensive coverage of the the Java EE technologies umbrella including Servlets, JSP, JSF, EJB, Web Services and persistence API.

Regarding the connectivity of iOS/Android apps, you can create Web Services and REST APIs in Java web applications, no problem with this at all.

share|improve this answer
    
Thanks for demystifying some of it for me. –  Jon Aug 20 '11 at 11:49

You may benefit from learning the plain-vanilla version of a java web app first, and that might have a better chance of tutorials at your level. I haven't done Java web apps for many years, but when I was learning, it was JSP pages, the Tomcat container, and the Struts Framework that I started with. I'm sure modern eqivalents are similar.

share|improve this answer
1  
I agree with this but I would go with jsp+sitemesh for views, and springframework. And hibernate for ORM. –  Kevin Aug 19 '11 at 21:58
2  
@Kevin, Sitemesh and Spring are great for web applications but I would hardly recommend it for a beginner trying to understand the basics. –  maple_shaft Aug 19 '11 at 23:22
1  
I disagree. I wish someone would have pointed out this stuff when I started. Instead I suffered through doing just about everything the hard way. –  Kevin Aug 20 '11 at 3:53
    
Thanks for the advice guys :) –  Jon Aug 20 '11 at 11:48

For a beginner I would recommend Play Framework. It is a newer Java web framework that's kind of similar to Ruby on Rails. It's well documented, easy to get started with and you can deploy your application as a war file that will work with the popular application servers (Not sure about the AWS Elastic Beanstalk, but it does work with several other cloud platforms).

Play has most of what you need out of the box and a nice module system that allows you to easily work with many of the popular Java frameworks. One of the great things about Java web development is that there are so many independent technologies to choose from, but it's difficult to figure out how to put all of the pieces together when you're getting started.

share|improve this answer
    
Thanks for pointing out Play. At least from an initial look it does seem like exactly what I wanted: i.e. they have comprehensive Docs that even I could follow, also they have a very nice and usable website - you may think that's shallow but for me a good website is an indicator that these guys care about getting new developers on board (there's also no excuse for a web-framework to have a lousy website!). –  Jon Aug 20 '11 at 11:58

Is your goal to make a web application, or to sell Java web development services? If you want to make a web application, and build on your Java expertise, I suggest you look at Grails. Grails builds on the power of Groovy to define powerful DSLs for web development, eliminating almost all the noise of Java. (No XML!) The Grails documentation is clear and concise, and the SpringSource tool suite is an excellent IDE. You can produce a WAR from a Grails project that will run anywhere a Java WAR will run.

share|improve this answer
    
My goal is to make a web application, and so I want to use the most appropriate technology for the job. Thanks for pointing out Grails, it looks like there's going to be quite a lot of choosing before I even start coding! –  Jon Aug 20 '11 at 12:08

You are right getting prepared to a lot of choosing - that is the only way on today's market of Java frameworks as it is. Have a look at HybridJava. That is only 13 printed pages. Probably you will not use it by some reasons (there may be many) but at least you will better understand how problematic are all the rest of more than 50 offerings in this area.

share|improve this answer

Elastic Beanstalk uses Tomcat 7 for Java hosting. The PaaS service helps you with deploying and running a standard application once you are ready to release it to the public, but it doesn't do anything to simplify the actual development process.

If you are starting from scratch developing a web application it would be wise to consider other languages and frameworks like Ruby on Rails or Django. These tend to be more beginner-friendly and there are plenty of other PaaS vendors like Heroku that are even easier than Elastic Beanstalk. However if you really would like to stick to the Java platform, Grails and Play are good alternatives to using plain Java.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.