1.澄清动态网页和动态HTML网页的区别:
动态网页:web服务器端动态创建的网页,在不同时间段访问可能产生不同的效果。
动态HTML:是在客户端使用脚本文件产生的一种动态效果。是浏览器解释执行的。
最主要的区别在于在不同时间段查看前者的源文件都是不同的,而后者的源文件都是相同的源文件,尽管在不同的时间段表现出来的效果不一样。
2.浏览器、引擎、API和动态网页程序之间的关系:
Servlet是一个java类,由具有web服务器调用和启动运行,它负责处理它所对应的一个或一组URL地址的访问请求。并接受客户端发出的访问请求信息和产生响应信息。
3.两个重要的概念:
C/S:Client/Server,客户端直接和数据库打交道。Java里面用Swing写的GUI程序就是基于C/S的,其缺陷为:第一.如果每个客户端程序都与数据库保持持久的连接但是数据库系统支持的并发连接有限的话,就限制了同时运行的客户端程序的数目。其次,业务逻辑处理和界面显示都由客户端程序负责处理,一旦有地方要发生变化,则需要对整个客户端程序进行修改,这就变的相当的难以维护。
B/S:Browere/Server,与前者最明显的区别在于此种架构是将用户操作界面以网页的形式展现给了客户端,它分成了三层:即客户端和web服务器、数据库。这样客户端不再直接和数据库打交道了。实现了界面显示和业务逻辑处理的分离。
4.在前面的文章中已经体验过写第一个Servlet程序,对其中的一些步骤和概念都做过一些简单的说明,这里详细的介绍一下Servlet映射的问题。打开 ‘WEB应用程序目录/WEB-INF/web.xml’,假如我们现在已经有这么一段:
<servlet>
<servlet-name>AnyName</servlet-name>
<servlet-class>org.it315.HelloServlet</servlet-class>
</servlet>
上面这段代码表示我们已经注册了一个Servlet,其注册名为AnyName,现在我们要映射这个注册名的访问路径,可以这样做:
<servlet-mapping>
<servlet-name>AnyName</servlet-name>
<url-pattern>/demo/hello.html</url-pattern>
</servlet-mapping>
<url-pattern>元素以正斜杠开头,这个正斜杠代表web应用程序的根目录,注意不是整个站点的根目录,上面这个设置后就可以这样来访问HelloServlet:http://localhost:8080/demo/hello.html,对于同一个Servlet可以被映射到多个URL上,也可以使用*通配符,但是只能用下面两种格式:一,‘*.扩展名’,在*前面不能加/,另一种形式是以/开头,并以/*结尾,中间是任意合法的标识符,当Servlet引擎接收到一个访问请求时,它将采取最具体匹配原则来查找请求URL的映射,其中,‘*.扩展名’优先级最低。我们有时候在网页地址栏上看到后缀名为.html或者其他一些URL时可以带参数,就是因为它们在设置映射URL时使用了这里说到的几种方法中的一种。
5.Serlvet激活器:invoker
打开conf/web.xml文件,会看到这么一段Servlet的注册信息:
<servlet>
<servlet-name>invoker</servlet-name>
<servlet-class>org.apache.catalina.servlets.InvokerServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
此注册名为invoker的Servlet是在全局web.xml中配置的,它的作用就是去激活和调用其他的Servlet,它通过<load-on-startup>元素被设置成了Tomcat一启动就被加载,在每个web应用程序中为Servlet激活器所映射的访问路径可以各不相同,但是必须以‘/*’结尾,这样就使得即使某个Servlet程序没有在web.xml中注册也只需要通过Servlet激活器所映射的访问路径中的通配符(*)替换为这个Servlet的完整类名就可以调用这个Servlet了。
6.缺省的Servlet
如果某个Servlet的映射路径仅仅为一个/,那么它就是一个缺省的Servlet,凡是在web.xml中找不到映射匹配的都交给缺省的Servlet处理。当访问Tomcat服务器上面的静态HTML页面,图片,flash等等时,其实都时交给这个缺省的Servlet去处理。这个缺省的Servlet通常的处理方式就是把静态资源中的内容按字节原封不动的读出来然后传递给客户端,并且生成一定的响应消息头字段。
7.编写一个自动编译工具
我们在命令行窗口编译java源文件通常有以下两个特殊要求:
一.把servlet-api.jar文件加入到CLASSPATH中,
二.编译servlet源文件到指定的WEB-INF/classes中,
我们在初学阶段每次编写完一个servlet文件都要编译,现在就使用一种偷懒的好方法,自己来编写一个编译工具,步骤如下:
新建一个compile.bat文件,其内容如下
set CLASSPATH=%CLASSPATH%;<TOMCAT安装目录>\common\lib\servlet-api.jar
javac -d <web应用程序目录>\WEB-INF\classes %1
pause
以后只要在windows的资源管理器窗口中把某个要编译的java源文件拖动到此compile.bat批处理文件上就可以编译完成,其中的%1表示要传递给这个批处理文件的第一个参数,即这个java文件名。pause语句的作用是让此文件执行完成后等待用户输入。这样便于查看编译结果。关于批处理的讲解在前面文章中有过专门的介绍。有兴趣的朋友可以参考参考。
8.设置默认网页
可以在conf/web.xml文件中加入如下一段代码:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
这样如果你只输入web应用程序根目录而没加具体文件名的话Tomcat就默认进此url映射的文件了。
分享到:
相关推荐
Servlet 开发基础是 JSP 动态网页设计中的重要一环。Servlet 是 Sun 公司推出的一种用于构建动态网页的 Java 技术,它在 Web 服务器端运行,能够处理客户端的请求并生成动态内容。动态网页是相对于静态网页而言的,...
### Servlet开发基础知识点详解 #### 一、Servlet简介与应用场景 Servlet是一种运行在服务器端的Java应用程序,主要用于处理客户端发送的HTTP请求,并返回相应的HTTP响应。Servlet是Java Web开发的基础,广泛应用...
在Servlet编程中,`GenericServlet`是最基础的抽象类,它实现了Servlet接口,而大多数HTTP相关的Servlet会继承`HttpServlet`。`HttpServlet`提供了针对HTTP请求方法的抽象方法,如`doGet`和`doPost`。开发者通常需要...
### 第一个Servlet开发全过程 #### 一、概述 本文将详细介绍如何使用Oracle的JDeveloper工具来开发一个简单的Servlet应用程序,并通过一系列步骤展示整个过程。Servlet技术是Java Web开发中的核心组成部分之一,它...
在实际开发中,通常使用这种方式来创建Servlet。 ##### 配置 为了使Servlet能够在服务器上运行,需要在Web应用程序的配置文件`web.xml`中对其进行注册并定义访问路径。 ```xml <!-- 配置和映射Servlet --> ...
总的来说,Servlet基础知识和Servlet容器模型构成了Java Web开发的核心部分。掌握这些概念有助于理解Web应用的工作原理,以及如何在实际项目中有效地使用Servlet和容器提供的功能。通过深入学习和实践,开发者可以...
本教程将深入探讨Java Servlet的基础知识和实践应用,以帮助初学者理解和掌握这一核心技术。 一、Servlet生命周期 Servlet的生命周期包括初始化、服务和销毁三个阶段。初始化阶段,Servlet容器(如Tomcat)加载...
Servlet开发和Tomcat配置是Java Web开发中的基础步骤,用于创建和运行动态Web应用程序。以下是对这个主题的详细说明: 1. **Servlet介绍**: Servlet是Java编程语言中的一组接口,它允许开发人员扩展服务器的功能...
Servlet是Java Web开发中的核心组件,它是一种Java编程接口,用于扩展服务器的功能,尤其是在Web服务器上处理客户端...通过学习和实践,开发者能够熟练掌握Servlet开发技术,为构建更复杂的Java Web应用打下坚实基础。
《Java Web开发基础——从Servlet到JSP》是一本深入探讨Java Web开发的教程,主要涵盖了从基础的Servlet到高级的JSP技术。这个压缩包包含的源代码是该书教学内容的实践部分,旨在帮助读者更好地理解和应用所学知识。...
**JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建动态Web应用程序方面发挥着关键作用。本课件旨在帮助初学者掌握这两项技术的基础知识,为后续深入学习打下坚实基础。** **JSP简介:...
基于javaWeb原生servlet开发的网盘项目源码(期末大作业).zip基于javaWeb原生servlet开发的网盘项目源码(期末大作业).zip基于javaWeb原生servlet开发的网盘项目源码(期末大作业).zip基于javaWeb原生servlet开发的网盘...
因此,可以说Servlet是JSP技术的基础,因为JSP最终也是通过Servlet来实现其功能的。 处理HTTP请求的方法主要有两种:GET和POST。GET请求通常用于获取资源,其参数会显示在URL中,而POST请求则常用于向服务器提交...
Servlet开发通用技术是Java Web开发中的重要组成部分,主要用于构建动态Web应用程序。在项目开发中,通过创建可重用的Servlet和JDBC通用模块,可以大大提高开发效率,减少代码冗余,提升系统的稳定性和可维护性。...
总的来说,Servlet是Java Web开发的基础,熟练掌握Servlet的使用对于理解Web应用程序的工作原理至关重要。这个简单的示例是一个良好的起点,你可以通过运行和调试代码来深入学习。如果在学习过程中遇到问题,可以...