粗略web开发简史,开发步骤与原理

web的开发演变过渡

1.0 简单明块的单机构建的早期时代
2.0 后端开发为主的MVC时代-以struts1开发为例
3.0 Ajax
4.0 Node全栈时代

1.0简单明块的单机构建的早期时代


可称之为 Web 1.0 时代,非常适合创业型小项目,不分前后端,经常 3-5 人搞定所有开发。页面由 JSP、PHP 等工程师在服务端生成,浏览器负责展现。基本上是服务端给什么浏览器就展现什么,展现的控制在 Web Server 层。
这种模式的好处是:简单明快,使用一个web容器,例如Tomcat,然后使用JSP/servlet技术,再搭建一个简单的数据库,就可以进行开发。

*重点内容## jsp/servlet工作原理*

当客户端浏览器向服务器请求一个 Servlet 时,服务器收到该请求后,首先到容器中检索与请求匹配的 Servlet 实例是否已经存在。

–若不存在,则 Servlet 容器负责加载并实例化出该类 Servlet的一个实例对象,接着容器框架负责调用该实例的 init() 方法来对实例做一些初始化工作,然后Servlet 容器运行该实例的 service() 方法。
–若 Servlet 实例已经存在,则容器框架直接调用该实例的 service() 方法。
service() 方法在运行时,自动派遣运行与用户请求相对应的 doXX() 方法来响应用户发起的请求。

通常,每个 Servlet 类在容器中只存在一个实例,每当请求到来时,则分配一条线程来处理该请求。

开发步骤总结:
1.在eclipse中新建一个Dynamic web project
这里写图片描述
2.新建完成后会产生几个重要的目录:
这里写图片描述
3.创建和编写servlet
这里写图片描述
这里选上需要重写的方法(doGet,doPost)
这里写图片描述

这里写图片描述

如果HttpServlet报错,从tomcat/lib下找到servlet-api.jar 导入就行了。
4.编写web.xml
这里写图片描述
 由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。
  元素用于注册Servlet,它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的完整类名。
一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定Servlet的注册名称和Servlet的对外访问路径
5.编写jsp文件
这里写图片描述

2.后端开发为主的MVC时代

这里写图片描述

M:模型(model)
V:视图(view)
C:控制器(controller)

MVC原理示意图:
这里写图片描述
1.当浏览器产生请求,浏览器将这个请求发给tomcat,tomcat接到请求后,参考web.xml,并在其中找到配置信息
2.过滤器(FilterDispatcher),FilterDispatcher是控制器的核心,就是mvc中c控制层的核心,FilterDispatcher进行初始化并启用核心 doFilter。
3.FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action, 如果 ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给 ActionProxy 4.ActionProxy通过struts.xml询问框架的配置文件,找到需要调用的Action类和方法来处理这请求;

1:客户端在浏览器中输入一个url地址;

2:这个url请求通过http协议发送给tomcat;

3:tomcat根据url找到对应项目里面的web.xml文件;

4:在web.xml里面会发现有struts2的配置;

5:然后会找到struts2对应的struts.xml配置文件;

6:根据url解析struts.xml配置文件就会找到对应的class;

7:调用完class返回一个结果result,根据struts.xml返回到对应的jsp;

struts1开发步骤:
1.首先将下载的struts1jar包全部导入项目
2.修改工程中web.xml

添加<servlet>
 <servlet>元素来声明ActionServlet
    <servlet-name>元素:用来定义Servlet的名称
    <servlet-class>元素:用来指定Servlet的完整类名
  <servlet>
   <servlet-name>action</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
   </servlet>

  还要配置<servlet-mapping>元素,它用来指定ActionServlet可以处理哪些URL
  <servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
  </servlet-mapping> 

(2)声明ActionServlet的初始化参数

初始化参数用来对Servlet的运行时环境进行初始配置。<servlet><init-param>子元素用于配置Servlet初始化参数。 
   config :以相对路径的方式指明Struts应用程序的配置文件位置,如不设置,则默认值为/WEB-INF/struts-config.xml
   debug : 设置Servlet的debug级别,控制日志记录的详细程度。默认为0,记录相对最少的日志信息。
   detail : 设置Digester的debug级别,Digester是Struts框架所使用的用来解析xml配置文件的一个框架,通过此设置,可以查看不同详细等级的解析日志。默认为0,记录相对最少的日志信息。
   <load-on-startup></load-on-startup>中?号的值是此ActionServlet在服务器开启时加载的次序,数值越低,越先加载。

    <servlet>
      <servlet-name>action</servlet-name>
      <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
      <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
      </init-param>
      <init-param>
        <param-name>debug</param-name>
        <param-value>3</param-value>
      </init-param>//控制日志记录详细程度
      <init-param>
        <param-name>detail</param-name>
        <param-value>3</param-value>//默认不写,设置
       </init-param>
      <load-on-startup>0</load-on-startup>
</servlet>

这里写图片描述
4.写Action继承自struts的Action
这里写图片描述

3.运用Node.js的全栈时代
了解不深,推荐几篇文章给大家:
1.http://cnodejs.org/topic/512ec5bedf9e9fcc586af964 --Node是什么
2.http://blog.csdn.net/wangji5850/article/details/51131688 -- 全栈工程师的Node.js之路

参考文章:
1.http://www.open-open.com/lib/view/open1398300027390.html
2.http://developer.51cto.com/art/201308/406445.htm
3.https://www.douban.com/note/570569398/
4.http://www.cnblogs.com/xdp-gacl/p/3760336.html
5.http://www.blogjava.net/fancydeepin/archive/2013/09/30/fan_servlet.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值