J2EE (Java 2 Platform Enterprise Edition) is a middleware technology hosted by Sun. The middleware technology has gone a long way from CORBA and IDL to message-oriented systems. Today, J2EE is a decisive milestone in the history of middleware technology, it is receiving increasing attention and adoption from the industry.
To put it simply, J2EE is a standard middleware architecture designed to simplify and standardize the development and deployment of multi-layer distributed enterprise application systems. The implementation of the J2EE solution can significantly improve the portability, security, scalability, load balancing and reusability of the system.
Core J2EE Technology
The core of J2EE is a set of standards and guidelines that define a standard platform for developing multi-layer distributed enterprise application systems using Java. Developers develop enterprise-level applications based on these specifications and guidelines, and ensure compatibility between different J2EE platforms by J2EE vendors. Because the standard-based J2EE platforms have good compatibility, the J2EE application system can be deployed on different application servers without or with a small amount of code modifications.
13 core technologies supporting J2EE: JDBC, JNDI, EJB, RMI, JSP, Java Servlets, XML, JMS, javaidl, JTs, JTA, javamail and JAF. Below is a brief introduction.
Java database connectivity (JDBC)
JDBC accesses a variety of databases in a unified manner. Like ODBC, JDBC hides different features of different databases for developers. In addition, because JDBC is built on Java, it also provides database access platform independence. JDBC defines four different drivers: JDBC-odbcbridge, JDBC-native driverbridge, JDBC-networkbridge, and purejavadriver. In a multi-tier enterprise application, it is more likely that the client communicates with an EJB and uses EJB to establish a database connection. To achieve and improve scalability and system performance, you can also use the connection pool to optimize database connections.
Java Naming and Directory Interface (JNDI)
The jndi api is used to run the name and directory services. It provides a consistent model to access and operate enterprise-level resources such as DNS and LDAP, local file systems, and the latter's objects on the application server. In JNDI, each node in the directory structure is called context. Each JNDI name is relative to context. The app can use this initialized context to locate the resources or objects it needs through this directory tree.
Enterprise Java Beans (EJB)
EJB provides a framework for developing and implementing distributed business logic, which significantly simplifies the development of enterprise-level applications with scalability and high complexity. The EJB specification defines when and how the EJB component interacts with their containers. Containers are responsible for providing public services, such as directory services, transaction management, security, resource buffer pools, and fault tolerance. The EJB specification defines three basic bean types:
Stateless session beans
Provides a single service that does not maintain any status. It cannot continue to exist when a Server failure occurs, and its life cycle is relatively short. For example, a stateless sessionbean may be used for temperature conversion calculation.
Stateful Session Bean
Provides session interaction with the client, and stores the status to represent a customer. A typical example is shopping cart. Stateful Session Bean cannot survive when the server fails, and its life is relatively short. Each instance is used only for a single thread.
Entity beans
Provides consistent data representation-typically stored in the database-that can continue to exist after a Server failure occurs. Multiple users can use EJB to represent the same data. A typical example of entity EJB is the customer's account information.
All ejbs have many commonalities and process homeinterface. It defines how a client creates and destroys ejbs. You can call the remote interface that defines the client method in bean, and the Bean class executes the main business logic.
Assumerver pages (JSPs)
JSP corresponds to Microsoft's Active Server Pages (ASP) Asp, but it is more platform-specific. They are designed to help Web content developers create dynamic web pages and only require a relatively small amount of code. JSP can be used even if web designers do not know how to program, because JSP applications are very convenient. A JSP page consists of HTML code and Java code embedded in it. The server processes the Java code after the page is requested by the client, and then returns the generated HTML page to the browser of the client.
Java Servlets
Most of the functions provided by Servlet are similar to those provided by JSP, but the implementation methods are different. JSP usually embeds a small amount of Java code in most HTML code, while servlets is all written in Java and generates HTML. Servlet is a small Java program that extends the functions of web servers. As a server-side application, it is executed when requested, which is similar to cgi Perl script. A major difference between servlets and CGI scripts is that each CGI requires a new process to start at the beginning -- while servlets runs in a separate thread in the servlet engine. Therefore, servlets provides good scalability improvements.
Remote Method Invocation (RMI)
The RMI protocol calls some methods on remote objects. It uses a continuous sequence to transmit data on the client and server. RMI is a lower-layer protocol used by EJB.
Java IDL/CORBA
With the support of Java IDL, developers can integrate Java and CORBA. They can create Java objects and expand them in corba orb, or they can also create Java classes and serve as the customers of the CORBA objects expanded with other orb. The latter method provides another way through which Java can be used to integrate your new application with the legacy system.
Java transaction architecture (JTA)/Java Transaction Service (JTs)
JTA defines a standard API, which allows the application system to access various transaction monitoring data. JTs is the basic implementation of the transaction monitoring function of CORBA ots. JTs specifies the implementation method of the Transaction Manager. The transaction manager is a Java image that supports the Java transaction API (JTA) specification at the high-level level and implements omg ots specification at a lower level. JTs Transaction Manager provides transaction services for application servers, resource managers, independent applications, and communication resource managers.
Javamail and JavaBeans activation framework
Javamail is an API used to access the mail server. It provides a set of abstract classes for the mail server. Only SMTP servers and IMAP servers are supported. Javamail uses JavaBeans activation framework (JAF) to process MIME-encoded email attachments. Mime byte streams can be converted to Java objects or to Java objects. Therefore, most applications do not need to directly use JAF.
Java Messaging Service (JMS)
JMS is an application interface (API) used to communicate with message-oriented middleware ). It supports point-to-point domains, publish/subscribe domains, and supports the following types: Approved message transmission and transactional message transmission, supports consistent messages and persistent subscribers. JMS also provides another way to integrate your application with the legacy backend system.
Extensible Markup Language (XML)
XML is a language that can be used to define other Markup languages. It is used to share data in different business processes. XML Development and Java are independent of each other. However, it shares the same objective as Java and is platform independence. By combining Java and XML, you can get a perfect platform-independent solution. At present, many different companies are working hard to combine Java and XML. For more information, visit Sun's Java-XML page or IBM developerworks's XML zone.
With the powerful enterprise framework capability of J2EE, it can support at least a few hundred concurrent online users, and use Java's automatic garbage processing mechanism to ensure stable operation without downtime. Below we will list the technical frameworks commonly used by the company.
Web Development Technology
Struts
Struts is an MVC framework based on the sun J2EE platform. It is mainly implemented using Servlet and JSP technologies. This framework can fully meet the needs of application development. It is easy to use and agile. Struts integrates servlet, JSP, custom tags, and message resources into a unified framework. Developers do not need to code themselves to implement a full set of MVC patterns during development, it saves a lot of time and is also a common application framework for enterprises. Currently, it is more than spring, hibernate, and ibatis.
Spring framework
Spring is a powerful framework that solves many common problems in J2EE development. The architecture is based on the IOC (inversion of control) Container Using the JavaBean attribute. It provides consistent methods for managing business objects and unique data access abstraction, the Data Access architecture also integrates Hibernate and other O/R Mapping solutions, and provides unique transaction management abstraction, which can be used in various underlying transaction management technologies, it also provides an AOP framework written in standard Java language and a powerful and flexible MVC Web framework that can be integrated with IOC containers. This framework is also widely used in combination with other frameworks.
Sitemesh
Sitemesh is a framework component used to implement layout and Decoration in JSP. It helps website developers easily separate dynamic content from static decoration. Mostly used in website construction, different modules have the same navigation.
Tapestry
Tapestry is an open-source servlet-based application framework that uses component object models to create dynamic and interactive web applications. Java code is completely separated from HTML. It is easy to use this framework to develop large applications, and the developed applications are easy to maintain and upgrade. Tapestry supports localization and detailed error reports. Tapestry is mainly developed using JavaBean and XML technologies.
Java Server faces (JSF)
The assumervefaces technology simplifies the development of the assumerver application user interface. Developers of various technical levels can quickly create Web applications by assembling some reusable UI components on a page, and connecting these components with the application data source; you can also connect events generated by the client with the server event handler. This project is Sun's most complete implementation of JSF technical specifications.
Jbossseam
JBoss Seam is a Java ee5 framework. It combines JSF with ejb3.0 components to provide a new mode for developing web-based enterprise applications. Seam allows you to bind the EJB component directly to the JSF page. Seam can integrate and integrate existing open-source technologies such as facelets, hibernate, jbpm, drools, groovy, Java portlets, BPM, Ajax, itext, and Lucene.
Hibernate
Hibernate is an open-source object relationship ing framework that encapsulates JDBC objects in a lightweight manner, so that Java programmers can use the object programming thinking to manipulate the database as they wish. Supports multiple databases and multi-level caching. The advantages and efficiency of a large project, especially when the persistent layer relationship ing is complex.
Ibatis
Using the ORM mechanism provided by ibatis, for business logic implementers, they are faced with pure Java objects. This layer is basically consistent with the implementation of ORM through hibernate, while for specific data operations, hibernate automatically generates SQL statements, while ibatis requires developers to write specific SQL statements. Compared with Hibernate and other "automatic" ORM mechanisms, ibatis provides more free space for system design with the workload of SQL development and database portability concessions.
DWR
DWR (Direct Web remoting) is a web Remote Call framework. Using this framework can make Ajax development very simple. Using DWR, you can use JavaScript on the client side to directly call the Java method on the server side and return the value to Javascript, just like calling it directly on the local client (DWR dynamically generates javascrip code based on Java classes ).
Other framework Technologies
Acegi Security
Acegi security is a framework that provides powerful, flexible, and secure access control solutions for spring-based enterprise applications. The service object method-level security access control granularity can be achieved: URL resources, service methods, access control of domain objects, and a complete authentication and authorization mechanism is provided for the system.
Josso
Josso (Java Open Single Sign-On) is an SSO infrastructure for an Open Source J2EE-based. It aims to provide a solution for centralized user authentication on a unified platform. (SSO: the Single login technology is an authentication and authorization mechanism that allows registered users to log on only once on any member website, and then authorize access to other connected branch websites, no need to perform verification login)
Jbpm
Jbpm is a flexible and scalable workflow management system. The business process entered by the server during jbpm Runtime is expressed in a simple and powerful language and packaged in the process file. Jbmp combines the convenience of workflow application development with outstanding enterprise application integration (EAI) capabilities. Jbmp includes a Web application and a calendar program. As a j2se component, it can be deployed for a J2EE application cluster.
J-spider
J-spider is a fully configurable and customized web spider engine. You can use it to check website errors (internal server errors, etc.), check internal and external links of the website, analyze the website structure (you can create a website map), and download the entire website, you can also write a jspider plug-in to expand the functions you need.
Opencms
Opencms is a J2EE product written in Java and supports deployment of multiple application servers. Opencms supports multiple RDBMS to store content, including Oracle, SQL Server, Sybase, and MySQL. A novel article publishing system facilitates website construction.
Mvnforum
Mvnforum is an open-source forum based on Java J2EE technology (JSP/servlet). It is easy to install and compatible with any servlet container. It supports JSP 1.2 and Servlet 2.3. Powerful functions to meet the needs of a large number of forums.
Jspwiki
Jspwiki is a very easy-to-install system that uses JSP and Servlet technologies.
Liferay
Represents a complete J2EE application, using web, EJB, JMS, and other technologies, in particular, the open-source frameworks such as struts, XML-based Portlet configuration files, Web Services, and Lucene allow the whole to be dynamically expanded freely, and support remote information acquisition and full-text retrieval, provides a Single login interface, multi-Authentication mode, simple user management, user customization page, support for mainstream J2EE application servers, support for mainstream databases, support for a variety of languages including Chinese.
Axis
Apache axis is a sub-project in the Apache WebService project. It is the first batch of frameworks used to construct soap-based applications. Apahce axis supports the entire web service protocol stack (protocol stack) in addition to UDDI. Its release version also includes the complete J2EE server plug-in, WSDL support and generation, TCP/IP monitor and other components. Its core is a soap processor used to develop various applications, including clients, servers, and soap gateways.
Lucene
Apache Lucene is a full-text search engine based on Java. It can be used to easily add full-text search functions to Java software. Lucene's most important task is to index every word in a file. indexing greatly improves the search efficiency than traditional word-by-word comparison. lucen provides a set of interpretations, filters, and analyzes files, to orchestrate and use an index API, apart from being efficient and simple, it is the most important thing to enable users to customize their functions at any time.
FCKeditor
This HTML text editor allows web programs to have powerful editing functions such as MS Word. Supports popular browsers such as IE 5.5 +, Firefox 1.0 +, Mozilla 1.3 +, and Netscape 7 +.
Claros WebMail
Claros webmail is a simple Webmail system that uses POP3/SMTP to send and receive mails. Database Support is not required. Provides a spam filtering mechanism independent of the SMTP server.
Jexcelapi (jxl)
Java Excel API (jxl) is a mature and open-source project for reading, modifying, and writing Excel workbooks. Java developers can use the simple and convenient API to read Excel workbooks, modify the workbook, and write the modified changes to any output stream (such as disk, HTTP, database, or any socket), this project is published based on GPL, and has good support for Chinese.
Oscache
Oscache is a widely used high-performance J2EE cache framework. Oscache can be used in common cache solutions for any Java application. Oscache can cache any object and has a comprehensive API-Oscache API to give you a comprehensive program to control all Oscache features. Supports permanent cache and cluster cache.
Ehcache
Ehcache comes from Hibernate and is used as a data cache solution in hibernate.
Quartz
Quartz is another open-source project of opensymphony open-source organization in the job scheduling field. It can be used together with J2EE and j2se applications. Quartz can be used to create complex daily program tables, such as ten, hundreds, and even tens of thousands of jobs. Jobs can be made into standard Java components or ejbs.
Job scheduler
Job scheduler is a batch processing program running in the demon mode and can be controlled using a graphical user interface. Job scheduler uses XML to configure the frequency and time of task processing. It provides an API that can be used to control job events and diaries (this API can be called in Java, JavaScript, Perl, VBScript, and other languages ).
Velocity
Velocity is a Java-based template engine ). It allows anyone to simply use the template language to reference objects defined by Java code. When velocity is applied to web development, the interface designer can develop a web site following the MVC Architecture in sync with Java program developers. Velocity separates Java code from web pages, which facilitates the long-term maintenance of web sites.
Freemarker
Freemarker allows java servlet to maintain the separation of graphic design from application logic, which is achieved by sealing HTML in the template. The template uses the data provided by servlet to dynamically generate HTML. The template language is powerful and intuitive. The Compiler speed is fast, and the output speed is close to that of Static HTML pages.
Jfreechart
Jfreechart is mainly used to create a variety of charts, including: pie chart, bar chart (common bar chart and stack bar chart), line chart, Area Chart, distribution chart, hybrid chart, Gantt chart, and some dashboard. It provides enterprises with rich Graphic Display Interfaces.
Jasperreports
Jasperreports is a Java-based open-source report tool that can be used to create reports in the Java environment like other ide report tools. Jasperreports supports PDF, HTML, xls, CSV, and XML file output formats. Is currently the most common reporting tool for Java developers. You can use the ireport tool developed in Java for graphic design through the powerful, intuitive, and easy-to-use visual report designer designed for jasperreports.
Jfreereport
Jfreereport is a Java class library used to generate reports. It provides a flexible printing function for Java applications and supports output to printers and PDF, Excel, HTML and XHTML, plaintext, XML and CSV files.
Cewolf
Cewolf can be used inside a Servlet/JSP-based Web application to embed various complex graphic charts (such as histograms, pie charts, and bar charts) into web pages ). It provides a fully functional tag library to define all the attributes (colors, strokes, legends, etc.) of the chart, so that the JSP embedded in the chart does not use any Java code. Simple labels help developers improve development efficiency.
Log4j
Log4j is an open-source project of Apache. By using log4j, we can control the log information delivery destination, including the console, files, Gui components, and even the interface server, NT event recorder, and Unix Syslog daemon; you can also control the output format of each log. By defining the level of each log information, you can control the log generation process in greater detail.
Develop Test Tools
Eclipse
The eclipse platform is a mature, well-designed and scalable architecture. It is supported by various development fields in the open-source community and provides a fast platform for development.
JUnit
JUnit is a regression testing framework (regression testing framework) written by Erich Gamma and Kent Beck ). The JUnit test is a white-box test. This framework inherits the testcase class and is often used for automatic testing by JUnit.
Ant
Ant is a sub-project of the Apache Software Foundation Jakarta project. It is compiled based on Java and has good cross-platform performance. Ant consists of some built-in tasks and Optional tasks (you can also write your own tasks). When using make, you need to write a MAKEFILE file, when ant is used, you need to write a build. XML file.
Cruise control
Cruisecontrol is a framework for continuous build programs (continuous integration of projects). It includes an e-mail notification plug-in, Ant and a variety of CVS tools. It also provides a Web interface to view the current compilation status and history status at any time. This allows the Quality Assurance Department to constantly understand the overall situation of the project.