Java Web概念概述(适合第一次接触javaweb的同学,很详细,很详细,很详细)

  • Java Web,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有java applet,不过使用得很少,Java在服务器端的应用非常的丰富,比如Servlet,JSP和第三方框架等等。Java技术对Web领域的发展注入了强大的动力。

  • 软件架构:

    • C/S: Client/Server 客户端/服务端
      • 在用户本地有一个客户端程序,在远程有一个服务器端程序
      • 如:QQ、迅雷…
      • 优点:
        • 用户体验好
      • 缺点:
        • 开发、安装、部署、维护麻烦
    • B/S: Browser/Server 浏览器/服务端
      • 只需要一个浏览器,用户通过不同的网址,访问不同的服务器端程序
      • 优点:
        1. 开发、安装、部署、维护 简单
      • 缺点:
        1. 如果应用过大,用户体验可能受到影响
        2. 对硬件要求过高
  • B/S架构详解

    • 资源分类:
      1. 静态资源:
        • 使用静态网页开发技术发布的资源。
        • 特点:
          • 所有用户访问得到的结果是一样的。
          • 如文本,图片,音频,视频,HTML,css,JavaScript
          • 如果用户请求的静态资源,那么服务器会直接将静态资源发送给浏览器。浏览器中内置了静态资源的解析引擎,可以展示静态资源
            2.动态资源:
        • 使用动态网页及时发布的资源。
        • 特点:
          * 所有用户访问,得到的结果可能不一样。
          * 如:jsp/servlet,php,asp…
          * 如果用户请求的是动态资源,那么服务器会执行动态资源,转换为静态资源,再发送给浏览器
    • 静态资源是学习动态资源的前提。
    • 静态资源:
      • HTML:用于搭建基础网页,展示页面的内容
      • CSS:用于美化页面,布局页面
      • JavaScript:控制页面的元素,让页面有一些动态的效果
  • 主要框架编辑
    Java的Web框架虽然各不相同,但基本也都是遵循特定的路数的:使用Servlet或者Filter拦截请求,使用MVC的思想设计架构,使用约定,XML或 Annotation实现配置,运用Java面向对象的特点,面向对象实现请求和响应的流程,支持Jsp,Freemarker,Velocity等视图。

  • JSP优点:
    Java EE标准,这意味着有很大的市场需求和更多的工作机会
    上手快速并且相对容易
    有大量可用的组件库

  • JSP缺点:
    大量的JSP标签
    对REST和安全支持不好
    没有一个统一的实现。既有SUN的实现,又有Apache的实现——MyFaces。

  • Spring MVC优点:
    对Spring MVC覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理与许多表示层技术/框架无缝集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等便于测试——归功于IoC

  • Spring MVC缺点:
    大量的XML配置文件
    太过灵活——没有公共的父控制器
    没有内置的Ajax支持

  • Stripes优点:
    不需要书写XML配置文件
    良好的学习文档
    社区成员很热心

  • Stripes缺点:
    社区比较小
    不如其他的项目活跃
    ActionBean里面的URL是硬编码的

  • Struts 2优点:
    架构简单——易于扩展
    标记库很容易利用FreeMarker或者Velocity来定制
    基于控制器或
    者基于页面的导航

  • Struts 2缺点:
    文档组织得很差
    对新特征过分关注

  • Tapestry优点:
    一旦学会它,将极大地提高生产率
    HTML模板——对页面设计师非常有利
    每出一个新版本,都会有大量的创新

  • Tapestry缺点:
    文档过于概念性,不够实用
    学习曲线陡峭
    发行周期长——每年都有较大的升级

  • Wicket优点:
    对Java开发者有利(不是Web开发者)
    页面和显示绑定紧密
    社区活跃——有来自创建者的支持

  • Wicket缺点:
    HTML模板和Java代码紧挨着
    需要对OO有较好的理解
    Wicket逻辑——什么都用Java搞定

你可能感兴趣的:(#,java学习,java,web)