CodeWeblog.com » lt xml,utf 8,import org » Use jetty, groovy Embedded web container example

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;


//应用定义
def port = 8089
def approot = ["/":"www"]//虚拟目录,支持多个["/":"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


Digg Technorati StumbleUpon Mixx del.icio.us Reddit BlinkList Furl YahooMyWeb feedburner

Tags: lt xml (RSS), utf 8 (RSS), import org (RSS), servlet class (RSS), java sun (RSS), jetty (RSS), web application (RSS), j2ee (RSS), directory structure (RSS), sun microsystems inc (RSS), sun microsystems (RSS), doctype (RSS), param name (RSS), init (RSS), debug (RSS), dtds (RSS), iso 8859 (RSS), startup script (RSS), mouse click (RSS), jasper (RSS)

Permalink: http://www.codeweblog.com/use-jetty-groovy-embedded-web-container-example/

Leave a reply