设为首页 收藏本站
查看: 710|回复: 0

[经验分享] 【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互

[复制链接]

尚未签到

发表于 2018-10-18 08:14:54 | 显示全部楼层 |阅读模式
  本站文章均为李华明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 类:
  


  • 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("" + msg + "");
  •         response.getWriter().println("测试中文session=" + request.getSession(true).getId()+"");
  •         if(name!=null)
  •             response.getWriter().println("名字:"+name+"");

  •         if(password!=null)
  •             response.getWriter().println(" 密码:"+password+"");

  •     }
  • }
  

  本类中我们重写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方式



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-622985-1-1.html 上篇帖子: WM Workstation 8创建SQL Server 2012 集群(cluster) Part2 . 下篇帖子: SQL语句教程(08) ORDER BY
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表