欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-31 11:08:49
...

最近在做校科创的项目,项目中我主要负责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中获取)

        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

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

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

    action标签写法如下:

    <action name="名称" class="类名" method="方法名"></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包