基于Jave的Web服务工作机制(6)
作者 佚名技术
来源 服务器技术
浏览
发布时间 2012-07-06
parseUri 方法从请求行那里得到URI。Listing 1.3 展示了parseUri 方法的用途。 parseUri 减缩请求中的第一个和第二个空格来获得URI。 Listing 1.3. The Request class'' parseUri method private String parseUri(String requestString) { int index1, index2; index1 = requestString.indexOf('' ''); if (index1 != -1) { index2 = requestString.indexOf('' '', index1 + 1); if (index2 > index1) return requestString.substring(index1 + 1, index2); } return null; } Response类 Response表示一个HTTP响应。它的构造函数接受一个OutputStream对象,比如下面的: public Response(OutputStream output) { this.output = output; } Response 对象被HttpServer类的await方法构造,该方法被传递的参数是从socket那里得到的OutputStream对象。 Response类有两个公共方法: setRequest和sendStaticResource. setRequest方法传递一个Request对象给Response对象。Listing 1.4中的代码显示了这个: Listing 1.4. The Response class'' setRequest method public void setRequest(Request request) { this.request = request; } sendStaticResource 方法用来发送一个静态资源,比如HTML文件。Listing 1.5给出了它的实现过程: Listing 1.5. The Response class'' sendStaticResource method public void sendStaticResource() throws IOException { byte[] bytes = new byte[BUFFER_SIZE]; FileInputStream fis = null; try { File file = new File(HttpServer.WEB_ROOT, request.getUri()); if (file.exists()) { fis = new FileInputStream(file); int ch = fis.read(bytes, 0, BUFFER_SIZE); while (ch != -1) { output.write(bytes, 0, ch); ch = fis.read(bytes, 0, BUFFER_SIZE); } } else { // file not found String errorMessage = "HTTP/1.1 404 File Not Found\r\n" + "Content-Type: text/html\r\n" + "Content-Length: 23\r\n" + "\r\n" + "File Not Found"; output.write(errorMessage.getBytes()); } } catch (Exception e) { // thrown if cannot instantiate a File object System.out.println(e.toString() ); } finally { if (fis != null) fis.close(); } } 关键词: |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 配置一个安全的chroot DNS(2)下一篇: 防火墙环境中DNS的配置(2)
关于基于Jave的Web服务工作机制(6)的所有评论