如何搭建一个简单的服务器?

最近在做校科创的项目,项目中我主要负责Android客户端的开发,负责后端开发的同学还在努力搭建中,所以趁着这个空档先来学习一下怎么将客户端和后台对接起来,所以打算先搭建一个简易版的服务器用于测试。

本文主要介绍如何利用Tomcat和Struts进行简单服务器的搭建,客户端和服务器的具体对接方式参考我的文章《Okhttp3基本用法详解》。

1 Tomcat安装和配置

tomcat是一个开源而且免费的jsp服务器,可实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。

  • 安装

    从Tomcat官网下载Tomcat 7.0,解压压缩包

  • 在Eclipse中配置Tomcat服务器

    打开:Preferences(首选项) -> Server ->Runtime Environments -> Add Tomcat7.0 ->Apply

    配置完成后可以在Server中看到刚刚配置好的服务器

2 Struts框架使用

Apache Struts 2是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。和Tomcat配合使用。

  • 安装

    从Apache Struts官网下载struts(此处使用了低版本2.3),解压其中文件struts2-blank.war

  • 在项目中使用Struts

    (1)在Eclipse中新建Web Project/Dynamic Web Project

    (2)在Web Content-> WEB-INF ->lib中拷贝struts2-blank同名文件夹中的.jar文件

    (3)在Web Content的web.xml中加入filter内容(filter内容同样从struts2-blank中获取)

        
            struts2
            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
        
        
            struts2
            /*
        
    

    ​ ps: 没有web.xml文件的话在该项目Java EE Tools中设置 GDDS

    (4) 在项目src文件夹中新建struts.xml,该文件包含各种action

    action标签写法如下:

    
    

    (5) 新建类UserAction.java,用于封装各种方法

  • 将新建的项目部署到服务器中

    右击Tomcat服务器,选择Add and Remove,将新建的web应用程序部署到目录。

3 启动服务器

服务器右键-> Start,注意查看控制台状态,检查是否报错。

4 常用请求方法编写

  • 获取客户端请求

    HttpServletRequest request = ServletActionContext.getRequest();
    
  • 服务端向客户端响应

    HttpServletResponse response = ServletActionContext.getResponse();
    
  • 向响应对象中写入内容

    PrintWriter writer = response.getWriter();
    writer.write("内容");
    
  • 读取文件流(String)

    ServletInputStream is=request.getInputStream();
    StringBuilder sb=new StringBuilder();
      int len=0;
      byte[] buf=new byte[1024];
      while((len = is.read(buf))!=-1) {
          sb.append(new String(buf,0,len));
      }
    
  • 读取文件流(File)

    ServletInputStream is=request.getInputStream();
    String dir=ServletActionContext.getServletContext().getRealPath("files");
    File file=new File(dir,"cat.png");
    FileOutputStream fos=new FileOutputStream(file);
    int len=0;
      byte[] buf=new byte[1024];
          while((len = is.read(buf))!=-1) {
              fos.write(buf,0,len);
          }
      fos.flush();
      fos.close();
    
  • 客户端从服务端中获取文件

    FileUtils.copyFile(客户端目标文件夹, 服务端文件夹);
    

5 常见问题

  • 无法将web应用程序部署到服务器目录

    可能使jdk版本过高,降低jdk版本(项目属性-> Project Facet)

  • Tomcat版本和Dynamic Web Module版本匹配问题

    Tomcat 7.0 匹配 Dynamic Web Module 3.0

  • 类的包引入问题

    手动在根目录lib包中引入与struts相关的jar包

你可能感兴趣的:(如何搭建一个简单的服务器?)