Android服务器端开发
- html/css:制作静态页面
- servlet:动态页面
看界面与服务器之间有没有数据的交互
Web开发里面的模式
C/S:客服端/服务器端
优点:安全性高,客户端是可以分担服务器端的一些功能模块
缺点:必须安装客服端,开发成本大,维护比较困难,不能无缝升级
B/S:浏览器/服务器端
优点:只要开发服务器端就可以了,可以实现无缝升级
缺点:安全性低,所有的功能都是由服务器端去完成的(高强度的负载);
O2O 线上和线下(去除了中介)
P2P (点到点)
互联网:虚拟的网络环境,将世界上所有的能上网的东西放在一个网络环境中,互相发送邮件,资源的共享。
万维网:一种网络协议 www.baidu.com World Wide Web
应用层:http https
传输层:TCP/IP
J2SE(核心基础JAVA) J2EE(企业级开发)
CGI:公共网关接口 CGI每次都会启动一个进程来处理客户端发来的请求,效率比较低。CGI遵循HTTP协议,多语言开发:C,JAVA
Servlet:API在J2EE。由SUN公司运营管理 Servlet每次都会启动一个轻量级的线程来处理客户端发来的请求,效率比较高
简单概念:Servlet就是运行在服务器端的JAVA代码。有自己的一套API
专业概念:Servlet他是一个组件(用很少的代码去完成一个功能模块)(server applet)
服务器:就是一台主机,安装一些软件
Tomcat:服务器端的容器
- bin:可执行的文件
- webapps:所有部署到服务器上的代码全都在这个文件夹里面
三种方式写服务器端文件。
1.实现Servlet接口,从写里面的回调方法
2.外部想要访问Servlet,Servlet就必须注册并且向外界提供访问路径(Tomcat7.0之前的必须在WebContent目录下web.xml文件中配置,之后的可以直接利用注解@WebServlet("/hello"))
-
实现implements Servlet这个接口。必须重写里面的方法
// 收到请求的时候回调
@Override
public void service(ServletRequest arg0, ServletResponse response)
throws ServletException, IOException {
// TODO Auto-generated method stub
// Servlet线程不安全,如果你要让N个线程同时去操控一个共有的属性
// SerVlet里面就不去写成员变量,都携程局部变量(每个线程有自己的变量名)
// int i
// i++;
// 设置编码
response.setCharacterEncoding("GBK");
PrintWriter writer = arg1.getWriter();
writer.write("这是我的第一个Serlvet");
writer.flush();
writer.close();
System.out.println("service")
} 在JAVAResource下面新建一个类继承extends GenericServlet在重写Service方法
// TODO Auto-generated method stub
response.setContentType("text/xml");
response.setCharacterEncoding("GBk");
PrintWriter writer = arg1.getWriter();
writer.write("<student><name>张三</name></student>");
writer.flush();
writer.close();
-
第三种是官方建议的直接新建Servlet类似于直接新建一个Activity一样。它是继承于HttpServlet,我们只需在doGet或是doPost()方法中有一个调用对方就可以了。
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setCharacterEncoding("GBK");
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.write("<html><img src='aa.png'></html>");
writer.flush();
writer.close();
}这三种方式最基层就是实现Servlet接口,其次是继承GenericService。最后才是HttpServlet
文/清枫_小天(简书作者)
原文链接:http://www.jianshu.com/p/67ef863dc2af
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。