= JSP =
Java Server Pages

== Maven example ==
 * cd /tmp
 * mkdir jspExample
 * cd jspExample
 * nano pom.xml
{{{#!highlight xml
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>test</groupId>
    <artifactId>dummy</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>
    <dependencies>
        <dependency> 
            <groupId>javax</groupId>
            <artifactId>javaee-web-api</artifactId>
            <version>6.0</version>
            <scope>provided</scope>
        </dependency> 
    </dependencies>
</project>
}}}
 * mkdir -p src/main/webapp/WEB-INF
 * nano src/main/webapp/WEB-INF/web.xml
{{{#!highlight xml
<web></web>
}}}
 * nano src/main/webapp/index.jsp
{{{#!highlight html
<%@page import="org.allowed.bitarus.Handler" %>
<jsp:useBean id="test" class="org.allowed.bitarus.TestBean" />
<% //Handler h = new Handler(request,response,out); %>
<% Handler h = new Handler(pageContext); %>
<html>
    <body>        
        <p>Hello</p>
        <p>World <jsp:getProperty name="test" property="name" /> </p>
        <% h.writeHandler(); %>
        <h2><% out.print("Your IP address is " + request.getRemoteAddr()); %></h2>
        <h3><% h.writeIP(); %></h3>
    </body>
</html>
}}}
 * mkdir -p src/main/java/org/allowed/bitarus
 * nano src/main/java/org/allowed/bitarus/TestBean.java
{{{#!highlight java
/*
mkdir -p src/main/java/org/allowed/bitarus
kate src/main/java/org/allowed/bitarus/TestBean.java
*/
package org.allowed.bitarus;
import java.util.logging.Logger;
import java.util.logging.Level;

public class TestBean{
    private String name;
    private Logger logger;
    
    public TestBean(){
        this.logger = Logger.getLogger(this.getClass().getName() );
        this.logger.log(Level.INFO,"Created test bean");
        this.name="Ioooo";
    }   
    
    public String getName(){
        this.logger.info("getName called");
        return this.name;        
    }
    
    public void setName(String name){
        this.name=name;        
    }
}
}}}
 * nano src/main/java/org/allowed/bitarus/Handler.java
{{{#!highlight java
package org.allowed.bitarus;

import java.util.logging.Logger;
import java.util.logging.Level;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;

/*
mkdir -p src/main/java/org/allowed/bitarus
http://localhost:8081/dummy-1.0/index.jsp?user=TestASD
*/
public class Handler{
    private ServletRequest request;
    private ServletResponse response;
    private JspWriter out;
    
    public Handler(ServletRequest request, ServletResponse response,JspWriter out){
        this.request = request;
        this.response = response;        
        this.out = out;
    }

    public Handler(PageContext pageContext){
        this.request = pageContext.getRequest();
        this.response = pageContext.getResponse();        
        this.out = (JspWriter) pageContext.getAttribute(pageContext.OUT) ;
    }
    
    public void writeHandler(){
        try{
          this.out.println(String.format("<p>Handler up %s</p>" , this.request.getParameter("user") ));
        }
        catch(Exception ex){            
        }          
    }
    
    public void writeIP(){
        try{
            this.out.print("!!! Your IP address is " + this.request.getRemoteAddr());
        }
        catch(Exception ex){            
        }          
    }
        
}
}}}

Structure:
{{{
.
├── pom.xml
└── src
    └── main
        ├── java
        │   └── org
        │       └── allowed
        │           └── bitarus
        │               ├── Handler.java
        │               └── TestBean.java
        └── webapp
            ├── index.jsp
            └── WEB-INF
                └── web.xml

8 directories, 5 files
}}}

 * ab -n 100 -c 100 http://localhost:8081/dummy-1.0/index.jsp?user=TestASD

Deploy in
|| '''Tomcat Version'''	|| '''JVM Version''' || '''JVM Vendor''' || '''OS Name''' || '''OS Version'''	|| '''OS Architecture''' || '''Hostname''' || '''IP Address''' ||
|| Apache Tomcat/7.0.53	|| 1.7.0_15-b03	|| Oracle Corporation	|| Linux || 3.2.45-smp	|| i386	||  darkstar	|| 127.0.0.1||