【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互


本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/java-servlet/862.html

          ☞ 点击订阅 ☜
 本博客最新动态!及时将最新博文通知您!

关于Jetty 简单来说就是一个servlet的容器,如同tomcat 等,至于详细的介绍请大家自行baidu~google

那么本篇主要介绍jetty server的环境搭建以及简单交互示例:

1. 我们下载Jetty :

http://dist.codehaus.org/jetty/    (Himi这里下载的是   jetty-hightide-8.1.3 )

2 . 打开我们的IDE,Himi这里是eclipse,然后新建一个Java项目  ”FirstJettyServer”

3. 配置新建的项目加入必要的jar包,如下图:(这些jar包都可以再刚下载的 jetty中找到)

【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互_第1张图片

4. 创建我们的JettyServer 类:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
 
import servlet.FirstServlet;
 
/**
  * @author Himi
  */
public class ServletServer {
     public static void main(String[] args) throws Exception {
         Server server = new Server( 8080 ); 
 
         ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
         context.setContextPath( "/" ); 
 
         server.setHandler(context); 
 
         context.addServlet( new ServletHolder( new FirstServlet()), "/himi" );
         context.addServlet( new ServletHolder( new FirstServlet( "Hello FirstServlet!" )), "/xiaominghimi" ); 
 
         server.start();
         server.join();
     }
}

 

首先new一个Server并且指定端口,然后我们创建一个ServletContextServer类,用来初始化web应用程序的Context,并且指定Servlet和Servlet匹配的url。因为在Jetty中运行一些的Servlet,需要创建Context,然后让创建的Servlet运行在Context中;

而FirstServlet类是个servlet,通过    ServletContextServer 的 addServlet()函数进行添加;

addServlet 函数有两个参数:

1.  ServletHolder 对象;         2. 客户端访问的字段

下面是我们的Servlet,这里Himi将类名起为“FirstServlet”,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package servlet;
 
import java.io.IOException;
 
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
/**
  * @author Himi
  */
public class FirstServlet extends HttpServlet {
     private static final long serialVersionUID = 1L;
     private String msg = "Hello World!"
 
     public FirstServlet() {
    
 
     public FirstServlet(String msg) {
         this .msg = msg;
    
 
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         String name = request.getParameter( "name" );
         String password = request.getParameter( "password" );
 
         response.setCharacterEncoding( "UTF-8" );
         response.setContentType( "text/html" );
         response.setStatus(HttpServletResponse.SC_OK);
         response.getWriter().println( "<h1>" + msg + "</h1>" );
         response.getWriter().println( "测试中文</br>session=" + request.getSession( true ).getId()+ "</br>" );
         if (name!= null )
             response.getWriter().println( "名字:" +name+ "</br>" ); 
 
         if (password!= null )
             response.getWriter().println( " 密码:" +password+ "</br>" ); 
 
     }
}

本类中我们重写doGet函数,关于这个函数不再赘述;

主要看doGet函数中的内容:

  一个是:首先我定义了两个字符串,其值是从Http Client端获取过来的,并且重新写给客户端进行显示。

       另外一个是由于有中文write给Client端,所以我设置了HttpServletResponse 中 CharacterEncod 为“UTF-8”

注意这个设置编码要再写给Client之前设置!

然后测试下我们的JettyServer端,我们运行ServletServer.java 启动Jetty ;如果正常启动你将看到控制台打印如下信息:

1
2
2012 - 05 - 25 12 : 18 : 59.223 :INFO:oejs.Server:jetty- 8.1 . 3 .v20120416
2012 - 05 - 25 12 : 18 : 59.553 :INFO:oejs.AbstractConnector:Started SelectChannelConnector @0 .0. 0.0 : 8080

启动成功后,我们来测试我们书写的第一个FirstServlet 这个Servlet。

1.打开你的safari 或者其他浏览器,然后观察如下图的地址和返回的数据显示:

【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互_第2张图片

 

【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互_第3张图片

 

 

当然除了基本的访问外,Himi还在我们的FirstServlet中可以接收Client端的两个参数,所以继续观察:

【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互_第4张图片

【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互_第5张图片

 

 注意: 

          1. 虽然网址前都有个Tomcat标志,但是当前Himi访问的是我们的Jetty Server的8080端口,而tomcat我是关闭着的;

         2. 对于Himi使用   “/xiaominghimi”  跟 “/himi” 进行访问我们的Servlet其实访问的是同一个Servlet,只是Himi为了掩饰服务器端一个是无参数构造,另外一个是有参数构造而已;

         3. localhost 等同于  127.0.0.1  ,都是访问本地,测试而用;

         4.一般在浏览器中输入网址访问都是 GET方式


你可能感兴趣的:(tomcat,exception,servlet,server,String,测试)