Web Hosting Java, JSP, Tomcat 6, J2EE, Servlets, Struts, Jboss
JavaSercer Pages Appendix A. JSP Elements (System web hosting) Syntax Reference
January 29, 2007 on 12:25 am | In Java | No Comments JavaSercer Pages Appendix A. JSP Elements Syntax Reference JSP defines three types of elements: directives, scripting elements, and action elements. In addition, you can define your own custom actions. This appendix contains descriptions of all JSP elements as well as the general syntax rules for custom actions. A.1 Directive Elements Directive elements are used to specify information about the page itself, especially information that doesn’t differ between requests for the page. The general directive syntax is: <%@ directiveName attr1="value1" attr2="value2" %> The attribute values can be enclosed with single quotes instead of double quotes. The directive name and all attribute names are case-sensitive. A.1.1 include Directive The include directive includes a static file, merging its content with the including page before the combined result is converted to a JSP page implementation class. The include directive supports the attribute described in Table A.1. Table A.1, include Directive Attribute Attribute Name Default Description file No default A page-relative or context-relative URI path for the file to include A page can contain multiple include directives. The including page and all included pages together form what is called a JSP translation unit. Example: <%@ include file="header.html" %> A.1.2 page Directive The page directive defines page-dependent attributes, such as scripting language, error page, and buffering requirements. It supports the attributes described in Table A.2. Table A.2, page Directive Attributes Attribute Name Default Description autoFlush true Set to true if the page buffer should be flushed automatically when it’s full, or to false if an exception should be thrown when it’s full. buffer 8kb Specifies the buffer size for the page. The value must be expressed as the size in kilobytes followed by kb, or be the keyword none to disable buffering. contentType text/html The MIME type for the response generated by the page, and optionally the charset for the source page as well as the response; e.g., text/html;charset=Shift_JIS. errorPage No default A page-relative or context-relative URI path for the JSP page to forward to if an exception is thrown by code in the page. extends No default The fully qualified name of a Java class that the generated JSP page implementation class extends. The class must implement the JspPage or HttpJspPage interface in the javax.servlet.jsp package. Note that the recommendation is to not use this attribute. Specifying your own superclass restricts the JSP container’s ability to provide a specialized, high-performance superclass. page 260
Hint: If you are looking for good and high quality web space to host and run your java application check Vision java web hosting services
JavaSercer Pages In the doEndTag( ) method, all (Postgres hosting)
January 28, 2007 on 5:35 pm | In Java | No Comments JavaSercer Pages In the doEndTag( ) method, all request parameters with information about the employee are first retrieved. If a parameter is missing, an exception is thrown. Then an SQLCommandBean instance is created, the DataSource object fetched from the application scope, and a Connection created and provided to the bean. The bean is used to execute a SELECT statement to find out if the specified employee is already defined in the database. If not, the bean is used to execute an INSERT statement with all the information provided through the request parameters. Otherwise, the bean is used to execute an UPDATE statement. The tag handler class described here is intended only to show how you can use the database access classes to implement your own custom actions. The tag handler class could be improved in several ways. For instance, it could provide default values for missing parameters, such as the current date for a missing employment date, or an email address based on the employee’s first and last names if the email address is missing. You could also use a bean as input to the action instead of reading request parameters directly. This would allow the bean to be used as described in Chapter 6, and Chapter 8, to capture and validate the user input until all information is valid, and then pass it on to the custom action for permanent storage of the information in a database. page 259
Hint: If you are looking for high quality webhost to host and run your jsp application check Vision web hosting jsp services
JavaSercer Pages Vector values = new Vector( );
January 28, 2007 on 10:21 am | In Java | No Comments JavaSercer Pages Vector values = new Vector( ); values.addElement(new StringValue(userName)); sqlCommandBean.setSqlValue(sqlValue); sqlCommandBean.setValues(values); Vector rows = sqlCommandBean.executeQuery( ); // Create values for insert/update values.removeAllElements( ); values.addElement(new StringValue(password)); values.addElement(new StringValue(firstName)); values.addElement(new StringValue(lastName)); values.addElement(new StringValue(dept)); values.addElement(new DateValue( new Date(StringFormat.toDate(empDate, “yyyy-MM-dd”).getTime( )))); values.addElement(new StringValue(emailAddr)); values.addElement(new TimestampValue( new Timestamp(System.currentTimeMillis( )))); values.addElement(new StringValue(userName)); if (rows.size( ) == 0) { // New user. Insert StringBuffer sb = new StringBuffer( ); sb.append(”INSERT INTO Employee “). append(”(Password, FirstName, LastName, Dept, “). append(”EmpDate, EmailAddr, ModDate, UserName) “). append(”VALUES(?, ?, ?, ?, ?, ?, ?, ?)”); sqlCommandBean.setSqlValue(sb.toString( )); } else { // Existing user. Update StringBuffer sb = new StringBuffer( ); sb.append(”UPDATE Employee “). append(”SET Password = ?, FirstName = ?, “). append(”LastName = ?, Dept = ?, EmpDate = ?, “). append(”EmailAddr = ?, ModDate = ? “). append(”WHERE UserName = ?”); sqlCommandBean.setSqlValue(sb.toString( )); } sqlCommandBean.executeUpdate( ); } catch (SQLException e) { throw new JspException(”SQL error: ” + e.getMessage( )); } catch (UnsupportedTypeException e) { throw new JspException(”Query result error: ” + e.getMessage( )); } catch (ParseException e) { throw new JspException(”Invalid empDate format: ” + e.getMessage( )); } finally { try { if (conn != null) { conn.close( ); } } catch (SQLException e) { // Ignore } } return EVAL_PAGE; } public void release( ) { dataSourceName = null; super.release( ); } } This tag handler has one property, named dataSource. It’s marked as required in the TLD for the tag, so it will always be set: …
Note: If you are looking for inexpensive but high quality provider to host and run your serlvet application check Astra servlet hosting services
JavaSercer Pages 17.4 Developing Application-Specific Database Components The (Top web hosting companies)
January 28, 2007 on 5:21 am | In Java | No Comments JavaSercer Pages 17.4 Developing Application-Specific Database Components The classes described in this chapter can also be used for application-specific components that access a database. Chapter 15 includes one example of an application-specific bean, the EmployeeRegisterBean, that uses the SQLCommandBean to execute its SQL statements. You can also use these classes in your application-specific custom actions. One example is the custom action that’s mentioned in Chapter 9 as an alternative to the generic database actions for inserting or updating employee information: <%@ page language="java" contentType="text/html" %> <%@ taglib uri="/orataglib" prefix="ora" %> <%@ taglib uri="/mytaglib" prefix="myLib" %>
Hint: This post is supported by Gama web hosting php mysql provider
Java web hosting - JavaSercer Pages finally { try { if (isPartOfTransaction
January 27, 2007 on 10:17 pm | In Java | No Comments JavaSercer Pages finally { try { if (isPartOfTransaction && isExceptionThrown) { // Reset auto commit in case the connection is // pooled before it’s returned to the pool by close conn.setAutoCommit(true); conn.close( ); } else if (!isPartOfTransaction) { // If we’re not part of a transaction, the // connection is in auto commit mode so we only // close it conn.close( ); } } catch (SQLException e) { e.printStackTrace(System.err); } } // Save the result with the specified id in the specified scope if (id != null) { pageContext.setAttribute(id, result, scope); } return EVAL_PAGE; } The interesting code is in the catch and finally clauses of the try block. If the execution of the SQL statement causes an exception to be thrown, the transaction is rolled back and a JspException is thrown. This aborts the processing of the rest of the page and informs the user about the error. A boolean flag is also set to be able to handle this case in the finally clause. The finally clause is executed whether or not an exception is thrown. If this action is part of a transaction and an exception is thrown by the execute( ) method, the Connection is returned to the pool by calling the close( ) method after auto commit is turned on again to reset it to its default state. If the action is not part of a transaction, there’s no need to reset the auto commit since it has never been changed; the Connection is just returned to the pool by calling the close( ) method. If the action is part of a transaction and no exception is thrown, the result is saved in the specified scope, and processing continues with the next nested database action. Note that the Connection is not closed in this case, as the same Connection must be used for all SQL statements in the transaction. If all actions execute successfully, the TransactionTag ’s doEndTag( ), shown in Example 17.26, is invoked. Example 17.26. The TransactionTag’s doEndTag( ) Method public int doEndTag( ) throws JspException { try { conn.commit( ); conn.setAutoCommit(true); conn.close( ); } catch (SQLException e) { throw new JspException(”SQL error: ” + e.getMessage( )); } return EVAL_PAGE; } The doEndTag( ) method commits the transaction, resets the auto commit for the Connection, and returns the Connection to the pool by calling the close( ) method. page 256
Note: If you are looking for cheapest and affordable webspace to host and run your servlet application check Astra j2ee hosting services
Ssh hosting - JavaSercer Pages The package scope getConnection( ) method,
January 27, 2007 on 4:09 pm | In Java | No Comments JavaSercer Pages The package scope getConnection( ) method, also shown in Example 17.23, is used by the tag handlers for the
Hint: If you are looking for high quality webhost to host and run your jsp application check Vision web hosting jsp services
Web hosting packages - JavaSercer Pages 17.3.3 The Action The final database
January 27, 2007 on 10:27 am | In Java | No Comments JavaSercer Pages 17.3.3 The
Hint: This post is supported by Gama php5 hosting services
JavaSercer Pages 17.3.2 The Action A set of (Cms hosting)
January 27, 2007 on 4:29 am | In Java | No Comments JavaSercer Pages 17.3.2 The
Hint: This post is supported by Gama php5 hosting services
JavaSercer Pages Example 17.18. The QueryTag’s execute( ) (Christian web host)
January 26, 2007 on 11:20 pm | In Java | No Comments JavaSercer Pages Example 17.18. The QueryTag’s execute( ) Method public Object execute(SQLCommandBean sqlCommandBean) throws SQLException, UnsupportedTypeException { return sqlCommandBean.executeQuery( ); } This method simply calls the bean’s executeQuery( ) method. The UpdateTag tag handler uses the bean’s executeUpdate( ) method instead, and wraps the returned int in an Integer object, as shown in Example 17.19. Example 17.19. The UpdateTag’s execute( ) Method public Object execute(SQLCommandBean sqlCommandBean) throws SQLException, UnsupportedTypeException { return new Integer(sqlCommandBean.executeUpdate( )); } The reason for wrapping the int in an Integer is that only real objects can be saved as JSP scope objects; primitive types are not supported. The
Note: If you are looking for inexpensive but high quality provider to host and run your serlvet application check Astra servlet hosting services
Jboss hosting - JavaSercer Pages Example 17.15. The DBTag’s doAfterBody( )
January 26, 2007 on 7:04 pm | In Java | No Comments JavaSercer Pages Example 17.15. The DBTag’s doAfterBody( ) Method public int doAfterBody( ) throws JspException { sqlValue = bodyContent.getString( ); return SKIP_BODY; } The SQL statement may contain question marks as placeholders for values set by nested value actions. As you will see later, the value actions create the appropriate Value subclass and call the DBTag ’s addValue( ) method, shown in Example 17.16. Example 17.16. The DBTag’s addValue( ) Method public void addValue(Value value) { if (values == null) { values = new Vector( ); } values.addElement(value); } This method creates a Vector to hold all values the first time it’s called, and then adds the Value object to the Vector. When called by subsequent value action tag handlers, the Value objects are simply added to the list. The real processing happens in the doEndTag( ) method, shown in Example 17.17. This method is called by the container when the action element’s body has been processed and the end tag is encountered. Example 17.17. The DBTag’s doEndTag( ) Method public int doEndTag( ) throws JspException { Connection conn = getConnection( ); sqlCommandBean.setConnection(conn); sqlCommandBean.setSqlValue(sqlValue); sqlCommandBean.setValues(values); Object result = null; try { result = execute(sqlCommandBean); } catch (SQLException e) { … } catch (UnsupportedTypeException e) { … } finally { … } // Save the result with the specified id in the specified scope if (id != null) { pageContext.setAttribute(id, result, scope); } return EVAL_PAGE; } The private getConnection( ) method is used to get a Connection. The Connection is retrieved either from the DataSource specified by the dataSource attribute value for the
Hint: This post is supported by Gama web hosting php mysql provider
...I
just wanted to take the time to say "Thank you!" for our new webmail
system. It's great! Thanks for taking such good care of us.
Thanks
for helping me out. Just for the record, Webhostingjava.net has been a great
web host! So far your support and handling of questions has far
exceeded that of a "larger web hosting company".
I
would like to thank you for helping me with my domain...You have
shown me great patience and professionalism. I would not hesitate to
recommend you to my clients.