做web开发已经好多次,每次配置服务器和android客户端总会出现各种各样的问题。。。。归其原因就是,不知道事后总结,导致在同一个地方卡了很久很久。。。为了避免以后再不知所措,有了这篇教程。。。一步一步的搭建Tomcat服务器 + servlet + android客户端。
首先了解一下servlet:
我觉得知乎的这句话讲的挺清楚的:https://www.zhihu.com/question/21416727
浏览器发送一个HTTP请求,HTTP请求由Web容器分配给特定的Servlet进行处理,Servlet的本质是一个Java对象,这个对象拥有一系列的方法来处理HTTP请求。常见的方法有doGet(),doPost()等。Web容器中包含了多个Servlet,特定的HTTP请求该由哪一个Servlet来处理是由Web容器中的web.xml来决定的。
理解上面这句话对后面的搭建 非常重要!!!!
1:配置Tomcat服务器
Tomcat下载地址:http://tomcat.apache.org/
配置的过程中,主要存在环境变量的配置。
可以参考:http://jingyan.baidu.com/article/624e7459a7d6e734e9ba5a70.html
1)新建TOMCAT_HOME变量
变量名TOMCAT_HOME
变量值c:\tomcat变量值即为我们下载的tomcat解压路径,在这里我的是c:\tomcat,如果有疑惑,可以参考第五步
2)新建CATALINA_HOME变量
变量名CATALINA_HOME
变量值c:\tomcat
没错,CATALINA_HOME的变量值与TOMCAT_HOME的变量值是一样的。
3)修改变量Path
在系统变量中找到Path变量名,双击或点击编辑,在末尾添加如下内容(是追加前面有个英文字符的 ’ ; ’ )
;%CATALINA_HOME%\bin;%CATALINA_HOME%\lib
这里要注意,各个变量值之间一定要用;分隔。
4)启动Tomcat服务器
在cmd命令窗口下输入startup回车,运行如下图所示
5)测试Tomcat服务器是否安装成功
在浏览器中输入http://http://localhost:8080或http://127.0.0.1:8080
安装成功将如下图所示
在开发过程中,一般可能会遇到8080端口被占用的情况,这时候要么改端口,要么去tomcat的根目录下的bin目录,找到shutdown.bat文件,关闭即可。
2:配置完Tomcat服务器之后就需要在Eclipse中集成Tomcat服务器。
参考文档:http://blog.youkuaiyun.com/guyuealian/article/details/50762996
这里注意一点,就是在集成服务器中,JDK版本和Tomcat版本最好要对应,比如说JDK1.7,可能需要选择的Tomcat版本就为7.0,而JDK1.8,Tomcat版本对应的即为8.0….建议对应好版本,不然可能在开发过程中,遇到很多问题。。。。
3:开始用Eclipse建立一个web项目了。。
建议其让项目生成一个web.xml文件。
同时,这个web.xml(非常重要)项目需要做如下配置:
I:位置:需要在这个WebContent/WEB-INF目录下,也就是说需要与lib同级.。这个路径配置非常非常重要,本人就是因为这个配置文件的位置,熬夜调到了晚上1点多。。。。服务器一直都是404.。无显示。。。我招谁惹谁了我 = = 。。。
II:配置:其中三个标签最重要
<servlet-name>匹配的是服务器生成servlet的名字,可随意取。。但是不能够重复。。。
<servlet class>就是servlet映射的哪个类。doGet,doPost完成什么样的功能。。
<servlet-name>上次两个servlet名字要一致
<url-pattern> 对应的form标签的Action名字。
web.xml: <servlet> <servlet-name>test1</servlet-name> <servlet class>com.service.Myservice2</servlet-class> <servlet> <servlet-mapping> <servlet-name>test1</servlet-name> <url-pattern>/helloServlet2</url-pattern><!--映射的url路径 --> </servlet-mapping> JSP页面: <form action="helloServlet2" method="post"> <input type="text" value="修改数据!"/> <input type="submit" value="提交"/> </form>
包里的类: 完成功能,处理客户端的请求等。
走到这就 就完成了服务器的配置。。。
3:下面开始客户端的请求
这里的网络连接,请确保,手机和电脑所处一个局域网。另外,请关闭电脑的防火墙。
直接上代码:如果点击了按钮之后,发送URL请求,封装JSON数据,与服务器进行交互。
1:首先与服务器进行连接。生成URL参数,这里我看到有其他的人建议用localhost来代替ip地址,但是我试了很多次,感觉都没有直接写ip地址来的稳定。。代码的后面是设置一些相关信息。。
2:客户端向服务器写数据:获取输出留即可,这里想说是服务器和客户端写的方式要一样。这样在读的时候,防止出现乱码的情况。
这里的Gson是JSON往上封装的。可以直接传送一个对象。有兴趣的话可以上网找jar包。
3:客户端读取服务器返回的数据,这里注意的是,先检测一下服务器的返回码是多少。(重要)最常用的就是500,200,404之类的。可以百度的到原因的。。。。我废了一上午的时候,在弄这个东西。。。当你跟服务器连接不上的时候,一定要看一下服务器的返回码。。是多少。说不定就是服务器本身自己的锅。。
总结:忙了一天又一天,感觉以前学的知识,还是掌握的不够熟练,调不出来的在那个位置还是调不出来。。归根到底还是自己不够用心。。。希望以后研究生阶段能够改正这个毛病。。