android服务端客户端(一)

来源:互联网 发布:mac相册制作软件 编辑:程序博客网 时间:2024/04/28 06:47

今天是腊八,闲下心来写点东西。

做android的,估计都离不开服务器端。常见的服务器软件有Tomcat、Jboss、Weblogic。

服务端这里我们主要了解一下Tomcat,大家都知道它是Apache组织提供的开源软件

客户端这里我们举个例子,比如我们想做一个听音乐的应用。这时候通常有两种形式:
一种是利用浏览器(Browser)的便利性,通过浏览器去访问服务器端(Server),这种编程模式也是我们常说的BS。
另一种是通过Client访问Server。(CS)

接下来进入正题。

安装Tomcat(本次安装版本为tomcat6.0)

1、安装tomcat的步骤比较简单,网上的资料也比较多,这里就不加赘述。

2、注意一点,在安装tomcat之前需要确保安装了JDK,并将JDK的路径配置成环境变量。

Tomcat目录结构

1、bin目录:bin——binary,这里面放的是二进制文件,比如exe文件。bin文件夹下有两个可执行文件tomcat6.exe和tomcat6w.exe,(w指的是window)区别在于前者是通过cmd窗口打开,后者是有操作界面。

2、webapps目录(存放源文件):web apps表示web应用程序,简单的说就是网站。tomcat管理多个网站。
——其中有ROOT文件夹,ROOT下的index.html是默认打开的网址。

3、work目录(存放编译后的class文件)

执行tomcat

1、通过双击tomcat6.exe启动tomcat。在浏览器的地址栏中输入http://localhost:8080(localhost表示本地服务器,tomcat默认端口号为8080)。若想关闭tomcat,只需关闭cmd窗口即可。

2、通过双击tomcat6w.exe也一样可以启动tomcat。

如何在eclipse中配置tomcat?

通过配置tomcat,eclipse可以启动tomcat,可以使我们快速地开发web应用。

这里写图片描述
1、打开eclipse,点击Window—Show View—Others,在输入框中输入server,点击OK。

这里写图片描述
2、这时我们可以看到底部出现了server窗口。单击这条蓝字。

这里写图片描述
3、选择Apache—Tomcat v6.0 Server,点击Finish。到这里我们就创建好了一个server。

这里写图片描述
4、在Server Locations中选择第二项,Deploy path则选择你本地tomcat的安装目录下的webapps。ctrl+s保存即可。

这里写图片描述
5、到这里其实已经配置成功了,可以通过点击右下方的绿色按钮启动tomcat。

这里写图片描述
6、可以把我们写好的Server程序添加到tomcat上。(把Server程序的源文件添加到webapps文件夹下)右键Tomcat v6.0 Server at localhost(我们之前创建好的server),选择Add and Remove选项。即可弹出上图的对话框,双击要添加的server程序,出现在右边的框内,点击Finish即可。

说这么多,搞个demo试试。

Demo1——下载网络图片到本地

这里写图片描述
1、新建一个动态web程序。点击File—New—Dynamic Web Project。展开Java Resources,在src下新建一个类,这里命名为Demo1。

2、这块代码也没什么难度,直接上代码。

//图片地址        String path = "http://img5.duitang.com/uploads/item/201407/25/20140725130918_VzMia.thumb.700_0.jpeg";        try {            URL url = new URL(path);            //打开连接            HttpURLConnection conn = (HttpURLConnection) url.openConnection();            int code = conn.getResponseCode();            if (code == 200) {                InputStream in = conn.getInputStream();                OutputStream out = new FileOutputStream("c:\\Santorini.jpg");                byte[] buffer = new byte[1024];                int len = 0;                while ((len = in.read(buffer))!=-1) {                    out.write(buffer, 0, len);                }                in.close();                out.close();            }        } catch (Exception e) {            e.printStackTrace();        }    }

3、将TT_Server添加到tomcat上。启动tomcat。在java编辑区内右键run as—Java Application。接着查看C盘,图片已经下载完成。访问本地的资源也是一样,只是path不同而已。

其实说实在的,html还是有弊端,比如说html一旦完成就相当于页面写死了。所以我们要通过java程序查找数据库,从而更新数据。

Demo2——初步认识Servlet

情景:使用浏览器提交表单数据到服务器。

服务端小程序(servlet)必须继承HttpServlet,并重写父类的方法(doPost、doGet)

public class FistServlet extends HttpServlet{    @Override    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        super.doPost(req, resp);    }    @Override    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        super.doGet(req, resp);    }}

客户端连接服务端,我们都知道无外乎四种操作——查找、更新(增删改)。一般地,如果是查找操作则使用Get方式,如果是更新操作则使用Post方式。

在WebContent目录下新建一个html文件夹,新建一个login.html文件。
这里写图片描述

在html中我们搞一个表单,点击按钮将用户名和密码提交到服务器。

<form action="">            名称:<input type="text" name="userName"><br>            密码:<input type="password" name="userPwd"><br>            <input type="submit" value="提交"></form>

name=“userName”在这里什么意义?比如你在名称的输入框中输入“张三”,其实它会以“userName=张三”这种键值对的形式进行提交。

现在我们需要注册这个Servlet,展开WebContent下的WEB-INFO,可以看到有一个web.xml文件。
注册Servlet,并且给定一个别名。

<servlet>    <servlet-name>FirstServlet</servlet-name>    <servlet-class>FirstServlet</servlet-class></servlet>

servlet-name就是给定的别名,一般取它的类名作为别名。
servlet-class就是全路径,展开左边项目结构中的First.java,在它的class文件上右键,选择Copy qualified..,粘在此处即可。

为servlet给定一个简单的url,并将url和别名映射起来(mapping)

<servlet-mapping>    <servlet-name>FirstServlet</servlet-name>    <url-pattern>/FirstServlet</url-pattern>  </servlet-mapping>

设想一下,我们在浏览器中输入http://localhost:8080/TT_Server/FirstServlet,按回车,此时,tomcat通过“/FirstServlet”这个url就会找到servlet-name,它会通过mapping到的servlet-name,去找到这个servlet-class。

回到html的form表单,在form的action中输入“/TT_Server/FirstServlet”(不包括引号),并且指定以post方式提交

<form action="/TT_Server/FirstServlet" method="post">

这样一来,当我们在浏览器上输入信息之后点击提交,服务端就会触发FirstServlet中的doPost方法。若请求方式改为get,则会调用doGet方法。

通过观察我们发现,以get方式提交表单数据,会把数据以“?userName=输入值&userPwd=输入值“这种键值对的形式追加到我们请求的地址之后。

那服务端如何获得客户端(浏览器)传过来的数据呢?
我们知道FirstServlet中的doGet(HttpServletRequest request, HttpServletResponse response)这个方法,会在表单以get方式提交的时候触发。这时客户端提交上来的数据都封装在request中。我们通过以下代码就可以获得相应的数据:

String userName = request.getParameter("userName");String userPwd = request.getParameter("userPwd");

一般情况下服务端收到客户端的数据之后通常要做出一些响应(比如通知用户数据提交成功等)。

response.getWriter().write("Success!");

注意:更改了服务端的代码过后,为了保证代码是最新的,通常要重启一下tomcat server(点击右下方绿色的start按钮即可),这样会避免一些不必要的错误。

后面的篇幅还有点长,这里就先告一段落。。

tomcat6.0安装包下载:tomcat6.0安装包

nineoldandroids-2.4.0.jar下载:nineoldandroids.jar

eclipse工具的安装包超过上传工具的大小,有需要的朋友可以留言,我分享到百度pan。

0 0
原创粉丝点击