![]() |
||
![]() |
![]() Alden Hosting provides professional, efficient, and reliable business-class Web hosting and Website Design services. |
|
JAVA, JSP, SERVLETS, TOMCAT, SERVLETS MANAGER, |
•10 Tips for Killer Website Design •7 Sure shots ways to improve your website •Attracting Visitors and Improving Your Search Results •Chasing the Search Engines Algorithms •Crash Course in Getting a 1 Google Ranking •Design Your Site for Traffic in 2005 •Designing A Website That Sells •Googles Good Writing Content Filter •How to Write Effective Web Copy •How to Write Title Tags for Your Web Pages •JSP Scripting Elements and Variables •JSP •Java How to Send Email in Java •Java MySQL Database Connection •Make Money Fast With Google Adwords •Make Money On The Internet What Is Your Niche •Make Money Quick With Google Adsense •Ranked 1 at Google for Invisible Entrepreneurs But No Traffic •Ruby Classes Objects and Variables •Ruby Containers Blocks and Iterators •SEO One Way Web Links 5 Strategies •SEO Success Step Two Attracting Search Engine Attention •The 10 Best Resources for CSS •The 3 Best Website Traffic Sources •The 5 Biggest Mistakes Almost All Web Designers Make •The Five Ways You Should Be Using Keywords •The Three Principles Of Image Optimization •Top 5 Secrets to Making Money with Adsense •True Paid Inclusion Programs are a Thing of the Past •Understanding Web Logs And Why it Matters
|
Web Hosting Tips for Webmasters - |
ASP | JSP | Definition |
---|---|---|
Request | request | Access to request information. This includes such items as input/form parameters, HTTP request header information, etc. |
Response | response | Access to response information and construction. This includes output MIME type and other HTTP response headers as well as the output stream itself. |
Session | session | Access to session information. |
Application | application | Access to application information. |
Response.Write | out | Access to the response output stream. JSP provides a convenience object for direct output to this stream, whereas ASP uses a Response object method. |
Note that JSP is Java, so it is case sensitive. But capitalization doesn't matter in VBScript, so if you stick to lowercase, there really isn't any difference in the names.
These are the main objects we have to work with when creating dynamic content in either ASP or JSP, so it's a good idea to become familiar with their methods. I'll use some of them in the examples that follow, but I can't go into every method available within the limits of this article.
As I mentioned earlier, both ASP and JSP support a similar way of delimiting scripting from content on a page. <% and %> are used to set of sections of script, '<%=' and '%>' are used to return a value within content, and <%@ and %> are used to delimit page directives. Here is a brief example using both ASP and JSP:
ASP (using JScript) |
---|
<%@ LANGUAGE = JScript %> <TITLE>Simple Scripting Tricks</TITLE> Anyone can count like this:<BR> <% for (i = 1; i < 6; i++) { Response.Write(i + "<BR>"); } i = 1000000; %> It would take a long time, however, to count to <%= i %>. |
JSP |
---|
<%@ page language="java" %> <TITLE>Simple Scripting Tricks</TITLE> Anyone can count like this:<BR> <% for (int i = 1; i < 6; i++) { out.println(i + "<BR>"); } i = 1000000; %> It would take a long time, however, to count to <%= i %>. |
HTML Output (from either JSP or ASP) |
---|
<TITLE>Simple Scripting Tricks</TITLE> Anyone can count like this:<BR> 1<BR> 2<BR> 3<BR> 4<BR> 5<BR> It would take a long time, however, to count to 1000000. |
As you can see, there are some basic similarities between ASP and JSP. In fact, in this simple example, there's almost no difference. When we look deeper into JSP, however, fundamental differences will appear.
JSP SyntaxJSP supports two basic styles of delimiting its scripting elements from page content. The first looks a great deal like ASP, whereas the second can be used to create JSP that is fully XML compliant. Here, let's take a look:
Base Style | XML Style | Description |
---|---|---|
<%@ directive %> | <jsp:directive.directive/> | Directives are used to specify page information, include other files, and specify tag libraries being used. |
<%! declarative code %> | <jsp:declaration> declarative code </jsp:declaration> | This code is placed as a declaration in the servlet that is generated. This is the only place that new methods can be declared. |
<% code fragment %> | <jsp:scriptlet> code fragment </jsp:scriptlet> | This code is placed within a base method of the generated servlet. |
<%= code expression %> | <jsp:expression> code expression </jsp:expression> Some versions use <jsp:expr/> | This code is placed within the base method of the generated servlet, where it is appended to the output stream being returned for the page. |
To utilize the XML Style delimiters, you have to format your JSP as an XML document. This requires some additional modification, like using <jsp:root/> as your the root XML node and making sure your page is well-formed XML. This conversion and the use of the XML Style are outside the scope of this article, but if XML is important to you or your project, you should definitely investigate them further on your own time.
If you're interested in learning more about XML and JSP, the book Professional Java XML Programming with Servlets and JSP is an excellent investment -- though if you're not quite ready to roll out the dough, JavaSoft's PDF about the matter is free for the downloading.
The most important things to know as you create your JSP website are the four basic types of delimeters: directives, declarations, fragments, and expressions. The following example is a complete JSP page that uses the base style of each delimiter:
Line | Complete JSP |
---|---|
1 2 3 4 5 6 7 8 9 10 11 12 | <%@ page info="Example" import="java.io.*,java.util.*" %> <%! String title = "Example JSP Page" %> <%@ include file ="header.inc" %> Anyone can count like this:<BR> <% for (int i = 1; i < 6; i++) { out.println(i + "<BR>"); } i = 1000000; %> It would take a lifetime, however to count to <%= i %>. <%@ include file ="footer.inc" %> |
In line 1, the page directive sets the generated servlet info to "Example" and makes sure that "java.io.*" and "java.util.*" are imported for use in the servlet. The import is, well, important, since without these imports there would be no access to additional Java APIs.
Line 2 declares title as a class variable. This variable can now be used in any following code. Most likely, it is used by the code in header.inc, which is included in place on line 3.
Line 4 is plain page content. This is sent to the output stream.
Lines 5 through 10 define a code fragment that writes out the numbers 1 to 5, with breaks in between, to the output stream.
Line 6 is page content that includes an expression. This content is sent to the output stream with the expression inserted.
Line 7 includes the footer.inc file, which presumably has some more content we want to place at the bottom of this file.
If you followed all that, then you now have a basic understanding of JSP syntax and are armed with enough knowledge to do some small amount of damage to your website. One gotcha that you should know about is that when included files are changed, the servlet generated by the JSP is not usually regenerated. So if you make a change to an included file, make sure to tell your server to regenerate the servlet for the including JSP. Another way to do this is to re-save the including JSP. This changes the file modification timestamp, which is supposed to cause the servlet to regenerate.
Now that we've taken a look at the basic syntax, let's take a look at how we can use the access objects that JSP provides us to detect the incoming browser and respond appropriately.
Page 4 JSP Browser DetectionJSP provides us with access objects that we can use to get information from the incoming request and modify the resulting response. This makes it possible for us to do things like identify what type of browser is making the request. We can then set up a different type of request based upon what that browser supports.
The following example determines whether the incoming browser is Internet Explorer, Netscape, or a WML client (like a cell phone). Depending on the browser it finds, it returns an appropriate greeting. Let's take a gander at an example of this at work. (Note: I'm going to use line numbering here because it makes the explanation of the example so much easier, but it isn't part of the code -- it's just there for reference.)
Browser Detection in JSP |
---|
<%@ page info="Greetings" errorPage="err.jsp" %> |
This first line simply adds some arbitrary information to the generated servlet and tells the Web server to redirect any Java errors encountered on the page to the err.jsp page. Other things that can be done in this page directive include importing various Java APIs.
<%! public final static int IE = 0; public final static int NETSCAPE = 1; public final static int WML = 2; public int getBrowser(HttpServletRequest request) { String accept = request.getHeader("ACCEPT"); if (null != accept && -1 != accept.indexOf("wml")) { return WML; } String agent = request.getHeader("USER-AGENT"); if (null != agent && -1 != agent.indexOf("MSIE")) { return IE; } return NETSCAPE; } %> |
This section of code declares three static values that represent the different browser types we are detecting. It also defines the getBrowser() method that accepts the request object and uses it to determine what browser has made the request. It does so by looking at the ACCEPT HTTP request header to see if the browser will accept wml. If it doesn't, it then looks at the USER-AGENT HTTP request header to see if it contains "MSIE." If it does, then the browser making the request is IE. Otherwise, we assume it's a Netscape browser.
<% switch (getBrowser(request)) { case WML: response.setContentType("text/vnd.wap.wml"); %> <?xml version="1.0"?> <wml> <card id="index" title="Browser Greeting"> <p align="center">Hello, Wireless Fan!</p> </card> </wml> <% break; case IE: %> <HTML><BODY><H1>Hello, IE Fan!</H1></BODY></HTML> <% break; default: %> <HTML><BODY><H1>Hello, Netscape Fan!</H1></BODY></HTML> <% } %> |
In the last section of code, we used the declared getBrowser() method in a Java switch statement to determine what should be returned to the browser. For IE and Netscape browsers, a simple HTML document is returned. For WML-accepting browsers, the content type of the response is set to text/vnd.wap.wml and a WML document is returned.
In these very meaningful forty-two lines of code, we have a simple page that will serve up a pleasant greeting to three different browsers. If all has gone well, creating this code should have whetted your appetite for more. If you're interested in pushing JSP even further, then read on for a list of additional resources you can use to expand your JSP horizons.
Digging Deeper Intro to JSP
Page 5 Digging Deeper
So far, I've touched on creating JSP as a well-formed XML document. I also mentioned the concept of creating a tag library for use throughout your website. But as you dive even further into JSP development, you'll find that there is quite a bit more to learn:
If you're looking to push your JSP envelope further, the best place to start is at the source, Sun Microsystems. Their support pages include the JSP specification and documentation of the supporting Java classes. As you explore, make sure you get a good idea about the underlying Java Servlet technology, since this is what all JSP must become behind the scenes. You'll find that Sun's site also gives you an extra helping of propaganda. As a rule, you should never believe anyone's marketing department, but in this case, Sun's information to be generally accurate. It is true, for instance, that you can re-use JSP on multiple platforms without much trouble. In my experience, the difficulty of moving from one JSP platform to another lies with the Java APIs that are imported by default. On some platforms you must specifically import java.io.* and on others you don't. It doesn't hurt to import anything that doesn't come from java.lang.*, so do it. It will make your life easier in the future. As you open up JSP and really see what it can do, you'll soon find that, with practice, anyone (not just Java developers) can make use of the powerful set of tools that JSP provides. |
Alden Hosting offers private JVM (Java Virtual Machine), Java Server Pages (JSP), Servlets, and Servlets Manager with our Web Hosting Plans WEB 4 PLAN and WEB 5 PLAN , WEB 6 PLAN .
At Alden Hosting we eat and breathe Java! We are the industry leader in providing affordable, quality and efficient Java web hosting in the shared hosting marketplace. All our sites run on our Java hosing platform configured for optimum performance using Java, Tomcat, MySQL, Apache and web application frameworks such as Struts, Hibernate, Cocoon, Ant, etc.
We offer only one type of Java hosting - Private Tomcat. Hosting accounts on the Private Tomcat environment get their very own Tomcat server. You can start and re-start your entire Tomcat server yourself.
![]() |
|
http://alden-servlet-Hosting.com
JSP at alden-servlet-Hosting.com
Servlets at alden-servlet-Hosting.com
Servlet at alden-servlet-Hosting.com
Tomcat at alden-servlet-Hosting.com
MySQL at alden-servlet-Hosting.com
Java at alden-servlet-Hosting.com
sFTP at alden-servlet-Hosting.com
http://alden-tomcat-Hosting.com
JSP at alden-tomcat-Hosting.com
Servlets at alden-tomcat-Hosting.com
Servlet at alden-tomcat-Hosting.com
Tomcat at alden-tomcat-Hosting.com
MySQL at alden-tomcat-Hosting.com
Java at alden-tomcat-Hosting.com
sFTP at alden-tomcat-Hosting.com
http://alden-sftp-Hosting.com
JSP at alden-sftp-Hosting.com
Servlets at alden-sftp-Hosting.com
Servlet at alden-sftp-Hosting.com
Tomcat at alden-sftp-Hosting.com
MySQL at alden-sftp-Hosting.com
Java at alden-sftp-Hosting.com
sFTP at alden-sftp-Hosting.com
http://alden-jsp-Hosting.com
JSP at alden-jsp-Hosting.com
Servlets at alden-jsp-Hosting.com
Servlet at alden-jsp-Hosting.com
Tomcat at alden-jsp-Hosting.com
MySQL at alden-jsp-Hosting.com
Java at alden-jsp-Hosting.com
sFTP at alden-jsp-Hosting.com
http://alden-java-Hosting.com
JSp at alden-java-Hosting.com
Servlets at alden-java-Hosting.com
Servlet at alden-java-Hosting.com
Tomcat at alden-java-Hosting.com
MySQL at alden-java-Hosting.com
Java at alden-java-Hosting.com
sFTP at alden-java-Hosting.com
JSP
Servlets
Tomcat
mysql
Java
JSP
Servlets
Tomcat
mysql
Java
JSP
Servlets
Tomcat
mysql
Java
JSP
Servlets
Tomcat
mysql
Java
JSP at JSP.aldenWEBhosting.com
Servlets at servlets.aldenWEBhosting.com
Tomcat at Tomcat.aldenWEBhosting.com
mysql at mysql.aldenWEBhosting.com
Java at Java.aldenWEBhosting.com
Web Hosts Portal
Web Links
Web Links JSP
Web Links servlet
Tomcat Docs
Web Links
Web Links JSP
Web Links servlet
Web Hosting
Tomcat Docs
JSP Solutions Web Links
JSP Solutions Web Hosting
Servlets Solutions Web Links
Servlets Solutions Web Hosting
Web Links
Web Links
.
.
.
.
.
.
.
.
.
.
jsp hosting
servlets hosting
web hosting
web sites designed
cheap web hosting
web site hosting
myspace web hosting