Tell me more ×
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 want to dive into Java Web Development, but I don’t know where to start because I am overwhelmed with Frameworks, JSRs, modules and the like.

Coming from a PHP and Ruby (on Rails) background, it may seem awkward to go the other way ’round—still there are a lot of places where Java is (and probably will be) prevalent. I know basic Java concepts, syntax and OOP, and I have done (too much) nonsense in existing projects in JSP. I am already using SVN and GIT, but like coding PHP and Ruby mostly via VIM, i’ve also done versioning from the command line.

But this time I want to learn to build a new project from the ground up, in a more, let’s say, academic way (instead of the hackery to date). Looking at e. g. Eclipse frightens me. Then there is Struts, Spring, JPA, Hibernate, Seam, just to throw in some buzzwords, that I cannot put into clear relation to each other.

Can you point me to some tutorials or books that could help me? What are the technologies you absolutely have to know, the JSRs that are widely implemented in the industry?

Or, if you are an employer: What does a “Junior Java Web developer” have to know?

Thanks for your suggestions!

share|improve this question
1  
Perhaps this belongs on Programmers.SE? – Glenn Nelson Jan 11 '11 at 0:24
If you're just going for employment opportunities, .NET web deb may be an easier place to start. It's also popular, and you basically have 2 options for frameworks, Webforms and MVC. Tools mostly play nice together and the developer community is pretty active and you'll get a lot of support. – R0MANARMY Jan 11 '11 at 0:39
Take a look at this question programmers.stackexchange.com/questions/34999/… – CoolBeans Jan 11 '11 at 1:21
1  
why are you afraid of eclipse? Its just an IDE... – hvgotcodes Jan 11 '11 at 1:28
@hvgotcodes Compared to a simple text editor, an IDE is quite a lot more :) – Svish Apr 22 at 8:48

migrated from stackoverflow.com Jan 12 '11 at 4:36

5 Answers

up vote 7 down vote accepted

Java is overwhelming. You do not need to know it all to be productive.

Then there is Struts, Spring, JPA, Hibernate, Seam, just to throw in some buzzwords, that I cannot put into clear relation to each other

To get started, you need Tomcat, Java, a good IDE (like netbeans or eclipse). If you want a database, then get MySQL also.

This will allow you to make useful apps. Work through some simple apps that get screen input, invoke a servlet, and then some database functions. Keep in mind your MVC design pattern. For the database, implement a DAO layer at the least.

Hibernate - a nicer way to use MySQL. It's built on JPA. Hibernate isn't easy, but you can get a LOT of bang for the 'complexity buck' by implementing the most useful parts of it.

Struts - an aging framework for your presentation layer. It's ok. Spring - complex "Inversion of Control" container/framework. I avoid it.

Or, if you are an employer: What does a “Junior Java Web developer” have to know?

I am looking for Java web developers right now. I would be delighted if a candidate

  1. had installed Tomcat, Java, and MySQL (or similar)
  2. can create a war file using ant and had some experience with ant config files
  3. could install said war file into Tomcat manually and by using the Tomcat application manager
  4. understood the basics of relational databases (SQL, tables, PKs, FKs, indexes)
  5. can write servlets and configure Tomcat to execute them
  6. could code jsps using c and el taglibs
  7. could discuss design patterns, especially MVC
  8. can tie all this together to make simple web apps
  9. can write understandable Java code that shows a good knowledge of the basic Java collections, OO techniques, and interfaces.
  10. basic CSS
  11. Has done the above every day for one year
  12. uses a code manager
  13. uses a bug tracker
  14. reads, speaks, and writes English well enough
  15. will give me 8 honest hours a day
  16. will work unpaid OT on occasion

I could go on. Not every candidate is an expert in everything. For example if a candidate has never used a bug tracker but is open to using one, that's fine. I'd hire the right RoR guy even if he/she had pretty minimal Java experience. The language can be trained.

share|improve this answer
@tony, what are the rates? ;) – hvgotcodes Jan 11 '11 at 1:22
Full time position in Louisville, KY (where men are men, women are men, and children are confused) that pays well, has benefits, yadda. No contractors, no telecommute. – Tony Ennis Jan 11 '11 at 1:25
I was born half and half, thro no fault of mine - does that disqualify me from the job? – Blessed Geek Jan 11 '11 at 2:18
half contractor, half telecommuter? – Tony Ennis Jan 11 '11 at 3:54
14 years Java, 20 yrs SQL (Sybase, SQLServer), wrote release managers in Ant, use Maven, expert in JSP tag libs, able to config Tomcat sweatlessly, simple and complex web portals for engineering analysis, write data parsers in C++ and regexp, perform data design - will work in Louisville KY if they do not mind a person born "biologically imperfect". - h2g2java.blessedgeek.com. – Blessed Geek Jan 12 '11 at 23:56
show 1 more comment

If you already know Java, I'd recommend to follow a Wicket tutorial because it's a simple web framework to start with. Avoid introducing Maven, Spring or other frameworks to your project until you really need them (if ever).

Also, coming from vim, you should only use the basics of Eclipse. It's an IDE of great help when programming Java, probably much more than for PHP or Ruby. Just keep it simple.

share|improve this answer
Sometimes we have to use vi. However, I think that a modern Java programmer should throw vi in the trash. That ship has sailed. Eclipse, Netbeans, and Intellij (especially) are absolutely amazing. – Tony Ennis Jan 11 '11 at 1:22

why don't you start with the basics. Look at some sample JEE code, implement a simple app or two. Or google for a basic java web application walkthru -- here is a good starting place: http://download.oracle.com/javaee/5/tutorial/doc/. If you come from a web application background, you just need to familiarize yourself with the various components like servlets, jsps, jdbc drivers, etc. Once you have the basics down, you can graduate up to one of the more ubiquitous frameworks, like Spring.

There is a lot to JEE, but simple web apps, are, well simple (comparatively speaking). It gets a bit more involved when you start talking about things like JMS (a messaging service to handle long running requests asynchronously), XA transactions, JMX (management extensions so you can programmatically monitor the state of your application and container), etc.

But to start, just start rolling together some jsps/servlets.

share|improve this answer

try grails.org ... :) it is so close to ruby on rails except you could use java and groovy. it also based on spring framework but you don't need to worry about the buzzwords ... try it

share|improve this answer
Grails might be cool, but AFAIK, it doesn't get you hired. – Tony Ennis Jan 11 '11 at 1:20
This just arrived in my inbox 12 minutes ago, from my team leader: ... list of candidates for the Lightweight Platform that we will be analyzing against our criteria in order to produce a “shortlist” for further evaluation. - NakedObjects - Groovy Grails - ColdFusion - PHP - J2EE “Shell” developed by CAS --------- I work for the federal government of Canada. Groovy Grails, number two on the shortlist. – Rick Jan 24 '11 at 16:54

I have a book that I bought for a course which I think is pretty decent. Its called Java How to Program eight edition. From Deitel. It can be kind of long winded at times but it is fairly well written compared to some of the books I have come across. The reason that I would recommend it is that it offers many tutorials that are actually interesting to do. Drawing fractals using recursion, construct server/client chat program, make a tic-tac-toe game using a multi-threaded server. They are fun but also teach the stuff want to know.

I would rank it as an introductory to intermediate level book. It starts off with the basics but it goes on to cover a wide range of topics. 1600 pages or so. The basics of most major areas in the language from GUI design, database interactions / JDBC, recursion, networking, applets and it even has a tutorial demonstrating how to use Netbeans to build a web application. Oh there is also a section on Ajax enabled JavaServer Faces Web Applications. I have not got into that yet but it sounds interesting.

I thought it was a little expensive though at $180. I am sure you could find it cheaper used somewhere. Its not going to teach you everything there is to know about any particular subject but it is clear and readable, which goes a long way in my book. Plus I enjoyed many of the tutorials.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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