web项目设计 学习笔记(一)
1.动态网页技术
1.1 动态网页的特点:
- 交互性 网页会根据用户的要求和选择而动态改变和响应。 例如:用户注册、信息发布
- 自动更新 网页自动生成新的页面代码。 例如:论坛发布信息
- 随机性 在不同的时间、不同的用户访问同一网页时可能产生不同的页面。 例如:网页信息推荐
1.2 动态网页技术
- PHP 是超文本预处理器,通过很少的代码就能建立一个真正交互的Web站点。由于PHP开放源代码,并且是免费的,所以非常流行,是当今Internet上最为火热的脚本语言之一。
- ASP 没有专门的编程语言,允许用户使用许多已有的脚本语言编写ASP应用程序。但ASP技术局限于微软的操作系统平台之上,因此一般只适合一些中小型站点。
- 它与ASP有一定的相似之处,但JSP能在大部分的服务器上运行,而且其应用程序易于维护和管理,安全性能方面也被认为是这三种基本动态网站技术中最好的。
1.3 BS/CS架构
- BS架构
用户的请求与Web服务器响应需要通过Internet网络从一台计算机发送到另一台计算机,不同计算机之间是使用HTTP(HyperText TransferProtocol)协议进行通信的。
- CS架构
C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
- http
HTTP是超文本传输协议,包含命令和传输信息,不仅用于Web访问,也可以用于其他互联网/内联网应用系统之间的通信,从而实现各种资源信息的超媒体访问集成。
2.第一个servlet
编写Servlet需要遵循其规范:
- 创建Servlet时,需要继承HttpServlet类,同时需要导入Servlet API的两个包:javax.servlet和javax.servlet.http。javax.servlet包提供了控制Servlet生命周期所必需的Servlet接口,javax.servlet.http包提供了从Servlet接口派生出的专门用于处理HTTP请求的抽象类和一般的工具类。可导入Tomcat servlet包
- 根据数据的发送方式,覆盖doGet()、doPost()方法之一或全部。
2.1.1 下面创建一个servlet输出"Hello Wrold"页面;
// 创建一个servlet类继承HttpServlet
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应到客户端的文本类型为html
response.setContentType("text/html");
// 获取输出流
PrintWriter out = response.getWriter();
out.print("Hello World");
}
}
2.1.2 配置web.xml文件
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>cn.study.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
- Servlet别名,即和之间的命名可以随意命名,但要遵循命名规范。
- 和元素可以配对出现,通过Servlet别名进行匹配。
- 元素也可以单独出现,通常用于初始化操作。
- URL引用,即和之间的命名通常以“/”开头。
3.Servlet生命周期
Servlet是运行在服务器上的,其生命周期由Servlet容器负责。Servlet生命周期是指Servlet实例从创建到响应客户请求直至销毁的过程。Servlet API中定义了关于Servlet生命周期的3个方法。
- init():用于Servlet初始化。当容器创建Servlet实例后,会自动调用此方法。
- service():用于服务处理。当客户端发出请求,容器会自动调用此方法进行处理,并将处理结果响应到客户端。
- destroy():用于销毁Servlet。当容器销毁Servlet实例时自动调用此方法,释放Servlet实例,清除当前Servlet所持有的资源。
Servlet生命周期概括为以下几个阶段。
- 装载Servlet:这项操作一般是动态执行的,有些服务器提供了相应的管理功能,可以在启动的时候就装载Servlet。
- 创建一个Servlet实例:容器创建Servlet的一个实例对象。
- 初始化:容器调用init()方法对Servlet实例进行初始化。
- 服务:当容器接收到对此Servlet的请求