Mac OS搭建Tomcat服务器, 与客户端使用JSON格式和Servlet进行HTTP通信

1.下载Tomcat7.x+Java JRE(www.java.com)

2.解压下载的Tomcat的文件,到conf的文件夹下找到tomcat-users.xml,找到<tomcat-users>标签,修改为如下:

<tomcat-users>

 <role rolename="manager-gui"/>
  <user username="tomcat" password="tomcat" roles="manager-gui"/>
</tomcat-users>

这样做的目的是你可以手动管理Tomcat。如果你觉得没必要,那就去他大爷的吧!

3.开发应用,使用Eclipse发布, 这样就可以Debug等的,开发调试。

3.1.下载Eclipse For Mac OS

3.2 新建Dynamic Web Project,选择带有web.xml

3.3在WebContent/WEB-INF下新建一个default.jsp/html,或者是index.jsp/html

3.4在工程中的src下新建servlet,例如:TestServlet,父类选择HttpServlet, 覆盖的方法选择doPost&doGet.

3.5在工程中的Web.xml中新建一个servlet的标签,具体内容如下:

<servlet>

    <servlet-name>TestServlet</servlet-name>

    <servlet-class>package名.TestServlet</servlet-class>

</servlet>

<servlet-mapping>

    <servlet-name>TestServlet</servlet-name>

    <url-pattern>/TestServlet</url-pattern>

</servlet-mapping>


这样就可以使用新建的Servlet的doGet或者是doPost来接受客户端的数据并返回数据。

4.使用Json格式,通过Servlet进行HTTP通信。

4.1下载jar包,必须要有commons-beanutils-1.x.x.jar,commons-lang-x.x.jar,ezmorph-1.x.x.jar,json-lib-2.x-jdk15.jar(下载的WebSite是:http://www.java2s.com)

4.2实现doGet或者是doPost方法,至于你想要实现哪一个方法根据客户端的发送方式对应实现。

代码示例:

protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

String param = req.getParameter("Key");

System.out.println(param);

JSONStringer stringer = new JSONStringer();

stringer.array();

stringer.object();

stringer.key("Key").value("Value");

stringer.endObject();  

        stringer.endArray(); 

    resp.getOutputStream().write(stringer.toString().getBytes("UTF-8"));  

    resp.setContentType("text/json; charset=UTF-8");  

}

至于Java代码中需要导入的头文件,这都是废话。


5.发布Web应用见图片:




图片1和图片2颠倒了哦。坑爹的CSDN!

至于客户端接受,iOS和Android还有其他的平台,想怎么接受就是自己的事儿。给点儿iOS端的代码:

NSString *userInfo = @"Key=Value";

NSData *dealPostData = [userInfo dataUsingEncoding:NSUTF8StringEncoding];

        NSString *postLength = [NSString stringWithFormat:@"%d",[dealPostData length]];

        NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:serverURL]];

        [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

        [request setHTTPMethod:@"POST"];

        [request setValue:postLength forHTTPHeaderField:@"Content-Length"];

        [request setHTTPBody:dealPostData];

        NSURLConnection *connection =[[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];


以上就基本说完了.

作为一个Java以及Web的小白,我真心想吐槽Eclipse的变态程度。






郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。