【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
2012-08-22 12:37
537 查看
本站文章均为 李华明Himi 原创,转载务必在明显处注明:
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/hibernate/783.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中找到)
4. 创建我们的JettyServer 类:
首先new一个Server并且指定端口,然后我们创建一个ServletContextServer类,用来初始化web应用程序的Context,并且指定Servlet和Servlet匹配的url。因为在Jetty中运行一些的Servlet,需要创建Context,然后让创建的Servlet运行在Context中;
而FirstServlet类是个servlet,通过 ServletContextServer 的 addServlet()函数进行添加;
addServlet 函数有两个参数:
1. ServletHolder 对象; 2. 客户端访问的字段
下面是我们的Servlet,这里Himi将类名起为“FirstServlet”,代码如下:
本类中我们重写doGet函数,关于这个函数不再赘述;
主要看doGet函数中的内容:
一个是:首先我定义了两个字符串,其值是从Http Client端获取过来的,并且重新写给客户端进行显示。
另外一个是由于有中文write给Client端,所以我设置了HttpServletResponse 中 CharacterEncod 为“UTF-8”
注意这个设置编码要再写给Client之前设置!
然后测试下我们的JettyServer端,我们运行ServletServer.java 启动Jetty ;如果正常启动你将看到控制台打印如下信息:
启动成功后,我们来测试我们书写的第一个FirstServlet 这个Servlet。
1.打开你的safari 或者其他浏览器,然后观察如下图的地址和返回的数据显示:
当然除了基本的访问外,Himi还在我们的FirstServlet中可以接收Client端的两个参数,所以继续观察:
注意:
1. 虽然网址前都有个Tomcat标志,但是当前Himi访问的是我们的Jetty Server的8080端口,而tomcat我是关闭着的;
2. 对于Himi使用 "/xiaominghimi" 跟 "/himi" 进行访问我们的Servlet其实访问的是同一个Servlet,只是Himi为了掩饰服务器端一个是无参数构造,另外一个是有参数构造而已;
3. localhost 等同于 127.0.0.1 ,都是访问本地,测试而用;
4.一般在浏览器中输入网址访问都是 GET方式
转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/hibernate/783.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中找到)
4. 创建我们的JettyServer 类:
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”,代码如下:
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 ;如果正常启动你将看到控制台打印如下信息:
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 或者其他浏览器,然后观察如下图的地址和返回的数据显示:
当然除了基本的访问外,Himi还在我们的FirstServlet中可以接收Client端的两个参数,所以继续观察:
注意:
1. 虽然网址前都有个Tomcat标志,但是当前Himi访问的是我们的Jetty Server的8080端口,而tomcat我是关闭着的;
2. 对于Himi使用 "/xiaominghimi" 跟 "/himi" 进行访问我们的Servlet其实访问的是同一个Servlet,只是Himi为了掩饰服务器端一个是无参数构造,另外一个是有参数构造而已;
3. localhost 等同于 127.0.0.1 ,都是访问本地,测试而用;
4.一般在浏览器中输入网址访问都是 GET方式
相关文章推荐
- 【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- windows下搭建apache http server、php、mysql开发环境
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列二 Centos7下开发环境搭建
- 【Java Servlet 开发系列之二】创建WebApp详细步骤,通过Servlet实现http简单交互
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- 【Java Servlet 开发系列之二】创建WebApp详细步骤,通过Servlet实现http简单交互
- 【C/S通信交互之Http篇】使用Curl与Jetty(Server)实现手机网游Http通信框架&解决curl.h头文件找不到问题
- win7环境下使用sublime text搭建python开发环境并使用SublimeREPL实现交互操作
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建
- Go学习笔记】go语言开发环境搭建&go实现的hello world!
- 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建
- maven3 jetty jrebel 搭建可调式的开发环境
- myBatis系列之一:搭建开发环境
- 用nodejs http-server搭建本地服务环境
- Cordova系列之一开发环境搭建(windows)
- struts2系列(一):struts2入门(struts2的产生、struts2的工作流程、搭建struts2开发环境)
- redis集群环境搭建以及java中jedis客户端集群代码实现 博客分类: redis