OOP-ResearchMake It Simpler by Object Oriented Programming

Java API for Servlet/JSP and Swing GUI tool by OOP-Research

Java API for JSP/Servlet programming. File upload JSP/Servlet by multipart/form-data. Apache Struts. Input validation from CGI FORM. JDBC PreparedStatement/JavaMail. Java Swing GUI builder by XML.

This page lists all the Java API and tools by OOP-Research.


PRODUCT: : Product by OOP-Research
DOC: : Documentation written by OOP-Research
PATCH: : Patch for the other vendor's system


PRODUCT:OOP ViewGenerator

In the template framework design by OOP ViewGenerator API, all the response can be generated from the normal HTML (or any other mark-up languages such as XHTML, WML or HDML). Unlike the JSP/JSTL based-solutions (such as Apache Struts and JavaServer Faces), the web designers (or page authors) need not learn a bit of custom tag libraries. They can write the view part of the web applications in the normal HTML, by their favorite ways.

HTML-to-XML conversion tool (with Java Swing GUI) converts the normal HTML into the template XML. You can also specify the acceptable data type for the request parameters from the CGI FORM:

HtmlToXml
[HtmlToXml]

Once you finish the conversion, please place the generated XML into:

  • (docBase)/WEB-INF/classes

directory (or its sub-directories). Then, ViewGenerator API in your Servlet will read it. Your Servlet can insert the arbitrary Strings into the HTML fragments and send the concatenated HTML tags to the web browser. Because the XML includes the acceptable data types from the CGI FORM, a few lines of code are enough for the input validation in your Servlet.

In addition, this Java API makes the localization (L10n, Japanese message for Japanese users and Chinese message for Chinese users) of your Servlet much easier. In case of Apache Struts or JavaServer Faces, the localized messages should be written in the property resource file for the expected Locale. But, in this framework, what you need is to write the normal HTML for each expected Locale along with the localized messages. There is not difficulty even in the 2 bytes characters such as Japanese Shift_JIS, Chinese BIG5 or GB2312.



Back to Top Read More

PRODUCT:OOP MimeParser

This Java API parses InputStream of HTTP POST request with multipart/form-data encode. By this Java API, only the single method call is enough for your file upload Servlets or JSP.

The uploaded file can be saved on the file system. Your Servlets/JSP has the full control over where to save the uploaded files. Or if you don't want to save the uploaded files, your Servlets/JSP can get the binary contents, the file name and the Content-Type of the uploaded files.

You can restrict the size of file to be uploaded. Since 2.0, you can also restrict the mime-types (Content-Type) of the files to be uploaded. As for the image file (JPEG, GIF or PNG), you can set the maximum width/height. When the user tries to upload the larger files or the files of the invalid mime-types, this API will throw the exception, i.e. your Servlets/JSP has a chance to catch the exception and show the appropriate message.

Optionally, this Java API can check if the binary contents of the uploaded file are really the PNG, JPEG, GIF or PDF. If the binary contents do not match with the expected pattern of PNG, JPEG, GIF or PDF, this Java API throws the exception. By this way, your JSP/Servlet can prevent the fake file being uploaded.

In addition, your Servlets/JSP on Apache Tomcat can specify the charset used for parsing the text parameters in HTTP POST request with multipart/form-data encoding. By this way, your Servlets/JSP on Apache Tomcat can parse the multipart/form-data with any charset, even if it is 2 bytes characters such as Japanese Shift_JIS, Chinese BIG5, Chinese GB2312 or Russian KOI8-R.



Go Site Map Read More

PRODUCT:OOP Simple DAO Helper

By the help of this Java API, your DAO (Data Access Object) need not include any source code related with JNDI or JDBC.
If JNDI DataSource is available in your environment, this Java API looks up JNDI DataSource on JNDI InitialContext and establishes JDBC Connection. Otherwise, this Java API gets JDBC Connection from JDBC driver. Or, if you use OOP PooledStatement, this Java API can take the advantage of its pooling mechanism. In any case, it creates JDBC PreparedStatement based on the available JDBC Connection.
On the JDBC PreparedStatement, this Java API can insert the arbitrary number of Java objects and values. And it executes the JDBC PreparedStatement.

By this Java API, a few lines of codes are enough for your DAO (Data Access Object). As described above, this Java API creates JDBC PreparedStatement, by the way suitable for your environment. This means you can make your Web Applications more portable. Please download and try this Java API. It's FREE!



Go Site Map Read More

PRODUCT:OOP RequestParser

This Java API parses the HTTP request parameters in the effective way. It also implements the methods to access the URL-encoded request parameters, or the request parameters in the byte array.
To get the better performance, this API postpones the conversions among the URL-encoded parameters, the byte arrays and decoded String until they are really required. By this strategy, Servlet can get the HTTP request parameters in the various forms.
Please download and try this Java API. It's FREE!



Go Site Map Read More

PRODUCT:OOP ServletWorker

Apache Tomcat behind the Apache web server (HTTP daemon) can accept the HTTP request for more than one host. With this Java API, Servlet can take the advantage of this feature.
The HTTP request to Apache web server can be redirected to Jakarta Tomcat, and the same Servlet object can accept the HTTP request for more than one host. This feature can prevent the unnecessary resource consumption, but the same response for every host is not enough. By the help of this API, Servlet can process the HTTP request in the different way for each host.
Please download and try this Java API. It's FREE!



Go Site Map Read More

PRODUCT:OOP MailScheduler

OOP MailScheduler is the Java API for your JSP / Servlets on Apache Tomcat to use JavaMail API more efficiently.
By its easy-programming interface, a few lines of code are enough for your JSP or Servlets on Apache Tomcat to send the e-mail at the scheduled time in the future.

And even if you'd like to send the e-mails immediately from JSP/Servlets on Apache Tomcat, this Java API makes your JSP/Servlets truly Thread Safe. For example, when your JSP/Servlets send the e-mails, you might experience the over-head due to the slow response from SMTP server. Yes, your JSP/Servlets cannot send their response to the browser until the SMTP server sends its response. This over-head may be apparent when the multiple requests arrive in your JSP/Servlets concurrently. Moreover, the number of connections to the SMTP server may exceeds the maximum number to be allowed. In this situation, some request to your JSP/Servlets may fail to send the e-mails:

Over head on SMTP

But, don't worry. Voilà, OOP MailScheduler! OOP MailScheduler takes over all your tedious tasks required for scheduling the e-mails:

How MailScheduler works

Through MailScheduler, the e-mails (which are represented by SmtpMessage) can be sent sequentially even if the multiple requests arrive in your JSP/Servlets concurrently. And your JSP/Servlets on Apache Tomcat can send their response back to the web browser immediately, without waiting for the response from the SMTP server.



Go Site Map Read More

PRODUCT:OOP XMLPanelEdit

By this Java Swing GUI builder, Java Swing GUI can be written in XML. And JFrame, JDialog or JPanel with JComponents can be generated from the XML.

XMLPanelEdit consists of:

  • Java Swing GUI builder
  • Abstract Java classes

Java Swing GUI builder included in XMLPanelEdit is the XML editor, by which you can write the JFC Swing GUI in XML.


XML editor
View Full image

By this XML editor, you can easily define the nested structure of your Java Swing GUI in XML. JPanel on JFrame or JDialog can have any LayoutManager, i.e. FlowLayout, BorderLayout, BoxLayout and GridLayout. By LayoutManager, anywhere you like within JFrame or JDialog, you can place JButton, JCheckBox, JRadioButton, JLable, JTextField, JSlider or any other JComponents.
The Java components can be placed on the intermediate Swing containers, such as JTabbedPane, JSplitPane and JScrollPane. For example, JTable, JTree, JTextArea or JTextPane can be placed on JScrollPane. When BorderLayout is specified as the LayoutManager, floatable JToolBar with Actions can be placed on JPanel, and JMenuItems with the same Actions can be embed into JMenu.

You can prepare XML for your Java Swing GUI in as many human languages as you like, i.e. XML for your Swing GUI can be written in Japanese Shift_JIS, Chinese BIG5, Chinese GB2312 and Russian KOI8-R. By ResourceBundle read from the property resource file, the XML appropriate for the user's Locale will be selected at runtime. By this way, your Java Swing GUI can be ready for internationalization (i18n).

The abstract Java classes in XMLPanelEdit represent JFrame, JDialog and JPanel. These Java classes parse the XML written by Swing GUI builder and generate your Java Swing GUI at runtime. And your Java Swing GUI can access all the JComponents placed on it. For example, ActionListener can be added into JButton on JDialog. Or Actions on JToolBar and their corresponding JMenuItems on JMenu can be enabled/disabled at the same time.



Go Site Map Read More

PRODUCT:OOP LoginManager

No more Cookie! No more Realm! You may have shouted during your JSP / Servlet programming. But don't worry. Voilà, OOP LoginManager! OOP LoginManager takes over all your tedious tasks required for the access privilege control and the session management.

By the easy programming interface of this Java API, a few lines of code are enough for the session tracking on your JSP/Servlets without Cookie. At the very first stage of your web application, the user will be asked to type the user name and password. Only for the authenticated user, the unique session ID will be issued. And the subsequent requests to your JSP/Servlets can be verified by this session ID. Then, this session ID tells your JSP/Servlets who is the user and to which groups (or Roles) s/he belongs. Of cource, similar to HttpSession object, you can associate any Java objects with the session ID.

The user name, password and groups (or Roles) are read from SQL table through JDBC PreparedStatement, and you can update these information on demand while your server is running. Your JSP/Servlets no longer needs to depend on the user authentication mechanism implemented by the JSP/Servlet server, such as BASIC authentication FORM of the Realm implementation by Apache Tomcat.



Go Site Map Read More

PRODUCT:OOP RequestStore

This Java API stores the HTTP request parameters into the SQL table through JDBC. The unique ID is issued for each request, and another JSP / Servlet can use it to get the parameter values later.
Within the SQL table, the parameter values are stored in the form of URL-encoded String. Regardless of the configuration of the SQL database, the request parameters in the various charsets (including the 2 byte character such as Japanese Shift_JIS, Chinese BIG5, Chinese GB2312 or Russian KOI8-R) can be stored into the single database. This strategy also eliminates the unnecessary byte-to-String conversion.

With its easy programming interface, a few lines of code are enough for your interactive web applications and WAP services on Apache Tomcat.



Go Site Map Read More

PRODUCT:OOP Pop3Receiver

In these days, a growing number of the WAP phones are shipped with the digital cameras, i.e. the users can take the pictures by their mobile phones and send them to their friends by the e-mails. And, by OOP Pop3Receiver API, you can take the advantage of this feature. It is the Java API for connecting to the POP3 servers through JavaMail API, and you can extract the file attachment from the received e-mail.



Go Site Map Read More

PRODUCT:OOP PooledStatement

JDBC PreparedStatement can be pooled and re-used repleatedly.

Pooling mechanism

This simple fact gives us the significant performance improvement. And OOP PooledStatement Version API has prepared all you need. With the easy programming interface of this API, our Java code for accessing to SQL table can be the quite simple one. In the multi thread environment like JSP (Java Server Pages) or Servlet, the JDBC connection and PreparedStatement can be shared among threads. By this way, your JSP or Servlets on Apache Tomcat can be really Thread Safe.



Go Site Map Read More

PRODUCT:OOP JpegScaler

Java API for scaling JPEG image by Java Advanced Imaging API (JAI). The width/hight of the JPEG image will be reduced to fit within the specified rectangle. The ratio of width/height of the original JPEG image will be left unchanged. This Java API is useful to show the large JPEG image on the small screen of the WAP phone. For example, your Servlet can send the binary contents of the scaled JPEG image to the WAP device.

With its easy programming interface, a few lines of code are enough for your interactive web applications and WAP services on Apache Tomcat.



Go Site Map Read More

PATCH:Un-official extention for Tomcat3.1

Un-official extention for Tomcat3.1 is available to download. With this extention, the servlet can access the data of files uploaded by POST with 'multipart/form-data' encoding. It is beyond the Servlets Specification v2.2, but Tomcat can be more usefull.



Go Site Map Read More

PATCH:Un-official patch for Tomcat3.1

Tomcat3.1 is the implementation of JavaServerPages1.1 and Servle2.2 specification and developed and maintained by the Jakarta Project. This is an un-official patch for Tomcat3.1.



Go Site Map Read More

PATCH:Un-official patch for JOnAS2.0

JOnAS2.0 is one of the most powerful EJB server in the world.
EJB is the core architecture of J2EE. To build up the enterprise-oriented, network-oriented and system-independent Java components, EJB is essential architecture for the seriouse developer in the world. Since EJB 1.1 specification was released, we have desired some sophisticated EJB compliant server.
And now voilà JOnAS2.0 from Bull S.A..



Go Site Map Read More

PRODUCT:OOP Mercury Version 1.0

  • -- FREE for non-commercial usage

OOP Mercury Version 1.0 is now available. This API consists of the utility classes for using Java(TM) Cryptography Extension (JCE for short) 1.2. In this version, a set of classes for managing RSA private-public key pair is included. It's FREE for non-commercial use.



Go Site Map Read More

PRODUCT:OOP Protector Version 1.0

  • -- FREE for non-commercial usage

This API is the set of utility classes for cryptography work through RMI (Remote Method Invocation). The main class is 'Protector', by which Java objects can be signed and encrypted (and vice versa). 'Protector' is the remote object and its reference can be obtained from 'ProtcetorFactory', which is accesible through JNDI. This ensures each remote client invokes cryptography methods on the unique 'Protector' instance. Each 'Protector' instance achieves its cryptography work with the private and/or public key(s) stored in the 'KeyPairBox' instance. The object to be signed and encrypted must implement 'Signed' and 'Sealed' interfaces, in addition to 'Serializable' interface. For example, 'FileTarget' instance can be signed and encrypted by 'Protector' through RMI. Thus, this API fully depends on OOP Mercury Version 1.0, so please download it too.
As an example, 'SimpleServer' and 'SimpleClient' are included along with their source code so that you can learn how to use this API easily. The API documentation is available on line. It's FREE for non-commercial use.

Download OOP Protector Version 1.0

Go Site Map Read More


Caution!
All the APIs for Servlet/JSP introduced by this web site are now included in Bento framework:
  • Simpler than JSTL or Apache Struts
  • MVC framework by HTML
  • Input validation from CGI FORM
  • Easy user authentication
  • Easy localization (L10n)
To download the APIs and source code examples, please visit the web site of Bento framework.


JBuilder 2007


General Information

For Java Development

Java and all Java-based trademarks and logos are trademarks or registered of Sun Microsystems, Inc. in the United States and other countries.


ALL CONTENTS COPYRIGHT 1997-2007, OOP-Research Corporation. All rights reserved.