tags:

views:

143

answers:

6

Sorry for asking this question but i searched all java realted question but i got more confused. I am still not clear what should i start with

1)My main is build website in Java because someone told me that there are some machine learning or AI libraries available in java which i can use in java. so i decided to use that as it can reduce my work.

Now i don't know java at all some people say following are used to build websites like

1)Servelts alone can build webiste
2)JSP alone can also build webiste
3)Struts
4)Spring with Hibernate
5)SEAM
6)JEE also for webistes

Now guys i am confused where should i start from. Where does core JAVA fits in here.

i was thinking of perhaps learning python as i know i have to learn Python only not its variations

SO please guide me one thing which can solve my basic purpose of using ready made libraries of AI

If i can do that with JSP then i will start with that. But i need to learn all of them then its better if can start learning python.

I have 5 months to finish webiste.

I really don't know why there are many braches of java for doing one thing

Please help me.

A: 

The closest to core Java is servlets. No extra syntax, very minimal library, but no included functionality.

Yann Ramin
+2  A: 

To correct some misconceptions of yours:

  • servlets and JSP are JavaEE
  • Seam and Struts can be used together with Hibernate as well
  • Spring MVC is a web framework. Spring as a dependency-injection framework can be used together with any other framework.
  • there are many more options, like JSF, Tapestry, Click, Play, etc.

It depends on what will the site will be doing, but you can choose any.

Bozho
i need to build a ecommerce website with recommendation system like amazon.com . What should go for
Mirage
My personal preference goes to Spring MVC or JSF.
Bozho
sorry for being dumb , is SPRING MVC or JSF different from java. so it means first i should do core java and then get book on SPring MVC or JSF , no need for servlets or jsp
Mirage
you'd need to learn jsp anyway, because Spring MVC uses it as a view technology.
Bozho
A: 

For building websites, the main thing is HTML and HTTP. All technologies (including Enterprise Java or Server side Java )do the same - to understand HTTP Request and and respond back with HTML. All that you mentioned do the same thing with a different level of sophistication. Start with Wikipedia.org to know what technologies to what. If you are completely new to java, go thru sun tutorials, do sample programs , and get comfortable with java packages, JVM and Classes. (This might take a week or two). To build websites using java , you'll have to learn Java Servlets - everything else (JSP, Struts, JSF , Spring(!)) are built on it. Get Head First books on Java, Servlets , they will be useful.

All the best.

gurupriyan.e
+2  A: 

Experience has shown that building complex HTML forms (especially validation) and AJAX functionality is hard to get right. You Will most likely appreciate having a library to assist you with that. Same thing with database access.

Everything builds ón servlets. Learn those in order to understand the æibraries you Will use.

I would suggest learning Java ServerFaces with facelets. The easiest while being powerful is JSF 2 in JEE 6. The easiest Way to get started is to use NetBeans with GlassFish 3.

Thorbjørn Ravn Andersen
wait a minute i am going mad , Glass fish is langauge or what. Please can anyone guide in a flow chart like how should i go from scratch to final website like 1)Learn core java 2)Learn Servlets 3)JSF2 4)facets 5)netbeans 6)Glassfish 7)Site ready
Mirage
What kind of monster keyboard are you using to typo "libraries" into "æibraries"? :)
spong
@spong, on a Danish keyboard the "l" key is right next to the "æ" key. A Danish keyboard on an iPhone has rather tiny keys. You figure out the rest :)
Thorbjørn Ravn Andersen
@Mirage. Yes, the learning curve is somewhat steep. You _will_ need know the Java language pretty well as all layers use that. The Java Tutorial is pretty nice and even has a servlet section: http://java.sun.com/docs/books/tutorial/getStarted/
Thorbjørn Ravn Andersen
@Thorbjørn Ah, I see. I half figured it was apple's fault :)
spong
@Mirage. Start with Core Java - everything else depends on that. Java Tutorial (online) and Head First Java (book) are great resources.
Thorbjørn Ravn Andersen
A: 

You can always build the page in ruby or something that will give you a website very fast and for the AI stuff that analyzes the bought items for the recommendations use something unrelated to the page that only takes the database to work with. I would not mix the whole web page stuff with the AI computing. You can do the AI things, that will take a long time and maybe should done on a different machine to have your webpage also responsive with C++ or Java in normal appllications.

Choosing your front end technique because of later usage is a very dangerous thing. Using the whole JavaEE concept and learning it from scratch will take you much longer then have a quick start with your page if you do it in ruby or PHP. You can then build the first version of the page generate a user base start working on the AI stuff once you got some data with other technologies. If your page has performance problems because you technology does not scale you can always begin switching parts of the stuff out to a faster technology or maybe simply a bigger machine. Get your page running before you build it bullet proof for the thousand users you are expecting.

Janusz
so you mean even 5 months are not enough for learning JEE
Mirage
If you are new to Java and has a 5 month deadline, I would strongly recommend that you tell your boss you need a mentor, or the team needs an experienced Java developer
Thorbjørn Ravn Andersen
I did a project with Java knowledge and i could not hold my 7 month deadline. We also did a project in ruby without ruby knowledge and got it working in 5 month. JavaEE is hard to get right at the first time and I would say it has a hard and steady learning curve
Janusz
Actually i have to complete this project from home , so i am fully at home all six months, so i can devote around 15hours per day
Mirage
+1  A: 

For static web pages HTML alone is enough and if you want to make it more user friendly and interactive use JavaScript. There are lot of framework you can use directly in JS like jquery. Now If you want to make some more functionalities like database interaction then you will need either php, JAVA( JSP, Servlets) or .NET ( there exist some more but i'm aware of three only). Each of them have their library to interact with database.

Since you are interested in JAVA, go through servlets, HTML, JS, JSP. once this is done you can look into JSF and EJB beans. So If you have knowledge of JAVA this will not take too much time because syntax is same the only difference is concept.

So you will have a frontend ( HTML, JS, JSP ) which will interact with backend( Servlets, Database ) which will be deployed in Web Container. To deploy you can use an one of the available application server like apache tomcat, glass fish or websphere. To develop your application you can use Eclipse as IDE which is one of the best IDE I used.

So decide your architecture and design, break it into components and start writing small applications first. Once you are experienced in small application start writing application where more things you have to care of like load on database, availability, security etc. For that you can refer very famous thread on SO http://stackoverflow.com/questions/72394/what-should-a-developer-know-before-building-a-public-web-site.

I hope it helps.

GG
So i will first learn simple java programs and then servlets and jsp. Then after making some basic site using that , i should move on JSF2
Mirage
IMHO you should do that, directly writing website with thousand users will not be suggested. First get your hands on initial web development and then get into the deep details and concerns like security, load etc. Best of luck.
GG