Javaweb开发学习笔记(一)
来源:互联网 发布:dw制作淘宝首页 编辑:程序博客网 时间:2024/05/29 14:54
JavaWeb开发概述
1.1Web相关概念
网站的目的是提供信息服务,重在内容,程序往往都比较简单。但一个商用的Web程序往往比较辅助啊,背后结合数据库等技术,例如:ERP系统,CRM系统,网上办公,网上银行,在线业务等。
1.1.1 胖客户端程序RCP
RCP就是需要在计算机上安装的软件,只要安装就可以高效的运行,但这样会导致占用大量的硬盘资源。
1.1.2 瘦客户端程序TCP
TCP就是不需要安装客户端的,只要计算机能上网就行。
1.1.3 B/S和C/S结构
我们在程序中分为网络程序和非网络程序。而网络程序分为两种:一种是B/S结构,另一种是C/S结构。
B/S结构:通过任何一个浏览器就可以访问的程序。(Browser/Server);
C/S结构:需要安装一个RCP程序才能使用的。(Client/Server);
1.2Web开发背景知识
1.2.1 web访问的基本原理
①用户打开浏览器,输入URL地址,即我们所谓的网址,这个地址就告诉浏览器要访问的是哪台主机;
②浏览器找到对应的主机后,向WEB服务器发送请求;
③服务器接收请求后做出处理,生成的处理结果大多数以HTML的格式,也有其他格式
④服务器把响应的结果发送给浏览器
⑤浏览器接收到该响应结果后,显示到客户面前
1.2.2 HTTP协议
HTTP协议是基于浏览器和服务器之间交互的桥梁
基于HTTP协议的客户/服务器模式的信息交互分为4个过程:
①建立连接:连接的建立是通过申请套接字Socket实现的,客户打开一个套接字,会把它约束在一个端口上,如果成功,就相当于建立了一个虚拟的文件,以后就可以将数据写到这个文件上,并通过网络向外传送
②发送请求:客户机把请求发送到服务器停留的端口上
③发送响应:服务器将响应发送给浏览器
④关闭连接:客户和服务器都可以通过套接字来关闭连接
其中响应中有一个状态码:
1:保留;2:表示成功接收请求;3:完成请求客户需进一步细化请求;4:客户端错误;5:服务器端错误
1.2.3 web浏览器
常用的web浏览器有chrome,Firefox等。个人比较倾向于用chrome浏览器完成开发工作。
1.2.4 web服务器介绍
IIS是微软公司的,提供对ASP语言的支持;
Apache 是处理静态页面的,处理静态页面的效率极高;
Tomcat提供对JSP和Servlet的支持,但Tomcat是轻量级的,无法处理EJB这样的服务
JBoss是一款重量级的服务器,提供J2EE规范的支持,是Sun公司认可的
还有Weblogic和IBM公司的WebSphere,适合大型的商业项目。
1.3 Web的技术发展
1.3.1 传统的web服务器模式开发
全都是静态页面,每个页面的内容不变,这种模式不利于扩展,要更改内容时,往往需要新建HTML页面或者是大量修改原来的HTML页面。
1.3.2 动态展现页面技术
①CGI技术
根据不同的客户端请求输出响应的HTML页面,然后服务器把这个页面返回给浏览器,作为页面的响应。
缺点:需要为每一个请求都启动一个操作CGI的进程,如果请求过于频繁,会有很大的开销;
每个请求都加载和运行一个CGI,会造成很大的开销
需要重复的编写处理网络协议的代码
②Servlet技术
Servlet相比于CGI有以下优点:
只需要启动一个进程,只加载一个JVM,大大的降低了系统开销
如果有多个请求做同样的处理,只用加载一个类
所有动态加载的类可以实现对网络协议和请求解码的代码共享
Servlet可以和服务器直接交互,还能在各个程序间共享数据,使用数据库连接池也容易实现。
下面是一个简单的Servlet:
public class HelloServlet extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ response.setContentType("text/html"); response.setCharacterEncoding("UTF-8"); PrintWriter out = resposne.getWriter(); out.println("<html>");out.println("<head>");out.println("<title>HelloServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>HelloWorld</p>");
out.println("</body>");
out.println("</html>");
}
}
简单了解了Servlet,虽然Servlet改进了很多CGI程序的缺点,但是Servlet是在Java代码中嵌入了HTML代码,在修改时就必须修改Servlet源代码,这样的做法还是不利于扩展我们的程序。1.3.5 JSP
上面我们提到Servlet还是不利于扩展,所以就有了JSP。
JSP是一种静态HTML和动态HTML混合编码的技术。
JSP的过程是:
1.3.6 JSP基本原理
WEB容器处理JSP文件需要经过三个阶段:
①翻译阶段:JSP文件被Web容器中JSP引擎转换成Java源代码 (XX.java文件)
②编译阶段:将翻译好的Java文件编译成二进制的字节码文件 (XX.class文件)
③请求阶段:执行前面编译好的字节码文件,处理后把生成的HTML页面反馈到客户端显示
这一章学习到入门的概念,主要掌握好web运行的原理,从客户到浏览器到服务器。了解对应的一些概念,知道这些技术在何时何地用就好了。
0 0
- Javaweb开发学习笔记(一)
- JAVAWeb开发学习笔记
- JavaWeb--学习笔记(一)--API
- javaweb学习总结(一):Servlet开发(一)
- Javaweb服务端开发学习(一)--开发环境的配置
- Servlet学习笔记(一)javaWeb应用基本
- JavaWeb开发学习——Tomcat的部署(一)
- JavaWeb成长笔记(一)
- javaweb开发基础(一)
- JAVAWeb之JSP学习笔记一
- Tomcat的安装(JavaWeb学习笔记一)
- JavaWeb学习总结(一)——JavaWeb开发入门
- JavaWeb学习总结(一)——JavaWeb开发入门
- JavaWeb学习总结(一)——JavaWeb开发入门
- JavaWeb学习总结(一)——JavaWeb开发入门
- JavaWeb学习总结(一)——JavaWeb开发入门
- JavaWeb学习总结(一)——JavaWeb开发入门
- JavaWeb学习总结(一)——JavaWeb开发入门
- Python字典的遍历方法
- 转载别人的~QT5 mainwindow添加控件
- 图像用户界面GUI
- 数据处理流程
- [BZOJ2721][Violet 5]樱花(数论)
- Javaweb开发学习笔记(一)
- 任何n分频逻辑功能都可以由n分频使能来代替
- jquery mobile相关
- Android框架
- 们--加强斐波那契
- 数据抽样smaple、等比抽样 (根据谢佳标老师课程整理)
- hihoCoder 1036 AC自动机 Trie图
- 算法相关——Java排序算法之堆排序(七)
- python字符串中的单双引号及转义解释