【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
来源:互联网 发布:particle fever 知乎 编辑:程序博客网 时间:2024/04/30 02:08
本站文章均为 李华明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中找到)
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客户端实现交互
- 基于embedded jetty server的websocket开发
- jetty搭建http服务器
- jetty Server 内存控制
- Jetty embedding Server 基本概念
- 学习jetty server
- Jetty--轻量级web server
- jetty环境搭建备忘
- jetty eclipse环境搭建
- Jetty:Hello World,使用main启动的简单http server
- 分别使用Jetty和Tomcat搭建Solr服务器(Setting up Solr Server with Jetty or Tomcat)
- Maven构建Java Web开发环境(Jetty容器)之一
- Jetty系列: 02- Server的启动流程分析
- 搭建jetty http框架 <一>
- Java web server 之 Jetty
- Java web server 之 Jetty
- Jetty学习【二】 Server类
- Java web server 之 Jetty
- GDAL源码剖析(十二)之GDAL Warp API使用说明
- Documentation/fb目录中帮助文档的索引
- Eclipse中常用的的快捷键
- Circle类
- Linux/Ubuntu下的用户切换
- 【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
- curl的ftp功能也不错
- 图的 Prim算法和Dijkstra算法
- Fibonacci堆的代码-欢迎斧正并且报告Bug
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- QT 中Gtk-WARNING **: 无法在模块路径中找到主题引擎:“pixmap”?
- HITS算法解析与光年论坛的两个问题
- Java 网络通信
- Linux 安装 Mysql