I am new to Java and only know some key word.
I heard Weblogic and Websphere have a lot of share in Java application server.
And I heard and googled about some Java framework like Spring,Struts,Seasars.
I guess that Eclipse are most used for Java programming or NetBeans.
What is the relation between J2EE server and java framework ?
Spring , Struts ,etc framework are usable in Weblogic ,Websphere, JBoss,etc ?
Which combinations are mostly used for Java application development do you think ?
( for example, Weblogic, Spring, Eclipse )
I am also a newbie. Here's my humble opinion within my limited vision.
J2EE application servers are the containers to hold and run your code, application. Frameworks aim to simplify and standardize the common process in building one application, like authentication, database communication etc. You use the kitchenware(frameworks) to cook and tableware(server) to serve the dish. And the J2EE terminology has been changed to Java Platform, Enterprise Edition.
It seems odd to say if a server is compatible with frameworks. It's more accurate to say if a server is certified with one particular specification, like Java EE 6 or Java EE 7.
Possibly the have some relations.
Sorry, no idea.
This might help:
Software development is divided among many categories. Among others, there is desktop development, web application development (further broken down into browser based applications and various mobile device applications), and embedded applications (microcontroller based applications such as controlling your car or DVD player). I suggest that between desktop and web application development, you go with web application development because that's were the jobs are.
For developing web applications, you basically can choose between Java (Oracle) and C# (Microsoft) object oriented languages. For C#, you use VisualStudio IDE. For Java you use either Eclipse IDE or Netbeans IDE. I suspect professional Java programmers are roughly split between Eclipse and Netbeans. You can use either one. I have no preference.
The market is roughly divided between C# and Java. As a professional programmer, I suggest you eventually become familiar with both. However, specialize in one or the other (there is only so many hours in a day).
For starting out, I suggest:
Read a beginning book on Java cover to cover that has good reviews (amazon.com lists reviews).
Compile and launch some of the examples of the book on the command line to become familiar those operations.
Download Eclipse IDE (or Netbeans). Compile and launch some more of the book's examples using the IDE.
Read a book on JSP/Servlets. Install Tomcat and get a Hello World servlet and Hello World JSP page to work.
Note: JSP is older technology and its recommended that experienced developers switch to JSF (Java Server Faces) instead. However, many applications are already written in JSP and you will need to maintain them if you get a job programming. Also, I think JSP is very useful for learning such technologies. You may instead decide to skip JSP and go with JSF.
Read on-line about databases and install Oracle Express. Create a simple database with tables.
Read on-line about SQL, and JDBC and learn how to read/write to the database table using it.
Create a web application that can display, update, insert, and delete data from the database table. The web application will have a one or more JSP pages, one and only one (control) servlet (which the JSP pages will submit to). The above design (using a central control servlet) is very basic. Later, you can read up on Spring, Struts, etc as an alternative. They are too advanced a topic for you at this time.
Next, read up on Java MVC (model view controller) design.
If you want to read up on terms such as Struts, I suggest you look them up in Wikipedia.
> Download Eclipse IDE (or Netbeans). Compile and launch some more of the book's examples using the IDE.
> You can use either one. I have no preference.
FLAME MODE on
Fortunately it is not yet compulsory to use either, but that time admittedly might not be far.
FLAME MODE off
If you are a Java beginner, it is worth to make yourself familiar with the command line tools (including javac, java, javap)
and concepts like class path etc.
IDEs, while useful and boosting productivity, have their own quirks and idiosynchrazies, and one has to be familiar with the gory details below.
Q1 . J2EE server is the container for any J2EE apllication, a framework is a layer upon on wich you put your code ( think it as a library that your code use ) . Then the relation is : a J2EE server 'contain' an application developed upon a framework
Q2. All Java framework are in principle usable on a compliant J2EE server , just check the versions of J2EE and J2SE againts the framework has made .
Q3. Despite the Q2 states, there are some combination of IDE/Server/framework that facilate your job . For example I am using the oracle middleware ennvironment : JDeveloper + WL server + ADF . this meaning that I have to configure nothing and development is completely visual ( you don't have to edit xml file etc.) because this combination is meant to work togheter .
Of course if you want to use JDeveloper with another server or framework it's possible but expect to have some manual configuration and not a visual programming .
Then there are advantages and disadvantages to use a specific combination .
Q3 depends a lot on context. In research environments you'll find that different tools are used than in the development of games portals or business applications for example.
I also see differences in demand between countries/continents - it depends on how progressive the environment is technologically. I don't see many companies moving towards JEE6/JEE7 or a modern alternative in the Netherlands for example, they are sticking with JEE5 or Spring (and in case of Spring often XML based, not even using annotations).