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