Use jetty, groovy Embedded web container example

Sometimes, I need a simple web can no longer be a simple application, I usually use this time to achieve a jetty embedded web container, to write a bat, a mouse click will be able to run up points.

Directory structure:

Quote

--- App
--- www
--- WEB-INF
--- web. xml
--- index. gsp
--- index. groovy
--- logs
--- lib
--- commons-logging. jar
--- groovy-all-1 .5.7. jar
--- jasper. jar
--- javax. servlet.jar
--- jetty5 .1.8-z4. jar

web.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
    <display-name>groovy</display-name>
    <description>groovy</description>

	<servlet>
		<servlet-name>GSP</servlet-name>
		<servlet-class>groovy.servlet.TemplateServlet</servlet-class>
		<init-param>
			 <param-name>encoding</param-name>
			 <param-value>utf-8</param-value>
		</init-param>
		<init-param>
			 <param-name>debug</param-name>
			 <param-value>0</param-value>
		</init-param>
	</servlet>

	<servlet>
      <servlet-name>Groovy</servlet-name>
      <servlet-class>groovy.servlet.GroovyServlet</servlet-class>
    </servlet>

	<servlet-mapping>
		<servlet-name>Groovy</servlet-name>
		<url-pattern>*.groovy</url-pattern>
	</servlet-mapping>

	<servlet-mapping>
		<servlet-name>GSP</servlet-name>
		<url-pattern>*.gsp</url-pattern>
	</servlet-mapping>
	<welcome-file-list>
		<welcome-file>index.gsp</welcome-file>
	</welcome-file-list>
</web-app>


app.groovy (startup script):
import org.mortbay.http.HttpContext;
import org.mortbay.http.HttpListener;
import org.mortbay.http.NCSARequestLog;
import org.mortbay.http.SocketListener;
import org.mortbay.http.SslListener;
import org.mortbay.http.handler.MsieSslHandler;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.servlet.WebApplicationContext;


// Application definition  
def port = 8089
def approot = ["/":"www"]// Virtual directory  , Support multiple  ["/":"www","/demo":"demo"]

SocketListener listener = new SocketListener();
listener.setPort(port);
listener.setMinThreads(5);
listener.setMaxThreads(100);
listener.setMaxIdleTimeMs(30000);
listener.setLowResourcePersistTimeMs(2000);
listener.setAcceptQueueSize(0);

NCSARequestLog log = new NCSARequestLog();
log.setAppend(true);
log.setFilename("./logs/yyyy_MM_dd.request.log");
log.setLogDateFormat("yyyy-MM-dd hh:mm:ss,SSS");
log.setRetainDays(90);
log.setExtended(false);

Server server = new Server();    
server.addListener(listener);
server.setRequestLog(log);
server.setRequestsPerGC(2000);
server.setStatsOn(false);
approot.each(){key,value ->
  server.addWebApplication(key, value);
}
server.start();



index.groovy (examples):

request.setAttribute("user","1111")
context.getRequestDispatcher("/index.gsp?iuser=admin").forward(request,response)


index.gsp (examples):

<%
println params.iuser
println request.getAttribute("user")
println request.remoteHost
println headers.host

%>




windows under the bat:

run.bat:
java -classpath lib/groovy-all-1.5.7.jar;lib/javax.servlet.jar;lib/jetty5.1.8-z4.jar;lib/commons-logging.jar;lib/jasper.jar groovy.ui.GroovyMain app.groovy


  • del.icio.us
  • StumbleUpon
  • Digg
  • TwitThis
  • Mixx
  • Technorati
  • Facebook
  • NewsVine
  • Reddit
  • Google
  • LinkedIn
  • YahooMyWeb

Related Posts of Use jetty, groovy Embedded web container example

  • hibernate generic generic DAO

    hibernate generic generic DAO

  • Servlet brief introduction

    Servlet brief introduction: Servlet is a small application server Are used to complete the B / S architecture, the client requests the response to treatment Platform independence, performance, able to run thread Servlet API for Servlet provides the s ...

  • First Hibernate Example

    Curd a simple example. Source does not contain the dependent libraries, or playing too much of the package. PO object Note: One must have the default constructor 2 non-final modified. Otherwise useless lazy loading. UserDAOImpl category code, and oth ...

  • Spring2.0 + hibernate3.1 + log4j + mysql demo

    applicationContext.xml Non-attachment jar package, necessary friends can send an email to todd.liangt @ gmail.com

Leave a Reply

Recent
Recent Entries
Tag Cloud
Random Entries