JavaWeb学习笔记

JavaWeb应用介绍
JavaWeb的定义:JavaWeb应用由一组Servlet/JSP、HTML文件、相关Java类,以及其他可以被绑定的资源构成,它可以在由各种供应商提供的符合Servlet规范的Servlet容器中运行。
在JavaWeb应用中可以包含如下内容:
1、Servlet组件:标准Servlet接口的实现类。运行在服务器端,包含了被Servlet容器动态调用的程序代码。
2、JSP组件:包含Java程序代码的HTML文档,运行在服务器端。当客户端请求访问JSP文件时,Servlet容器先把它编译成Servlet类,然后动态调用它的程序代码。
3、相关的Java类:开发人员自定义的与web应用相关的Java类。
4、静态文档:存放在服务器端的文件系统中,如HTML文件、图片文件和声音文件等。当客户端访问这些文件时,Servlet容器先从本地文件系统中读取这些文件的数据,再把它发送到客户端。
5、客户端类:有客户端来运行的类。Applet是典型的客户端类,当客户端请求访问Applet时,Servlet容器先从本地文件系统中读取Applet的.class类文件中的数据,在把它发送给客户端,由客户端来运行Applet.。
6、web.xml文件:JavaWeb应用的配置文件,采用XML格式。该文件必须位于Web应用的WEB-INF在目录下。
JavaWeb应用项目目录结构
JavaWeb应用有固定的目录结构。以 JavaWeb_001项目为例。
1、/JavaWeb_001 为项目根目录,包含一个项目的所有文件和内容。
2、/JavaWeb_001/src 存放Java的类文件,比如Servlet类文件。
3、/JavaWeb_001/WebRoot 存放HTML文件和JSP文件。
4、/JavaWeb_001/WebRoot/WEB-INF 存放web应用的配置文件web.xml。
5、/JavaWeb_001/WebRoot/WEB-INF/classes 存放各种.class文件,在src中写的Servlet类编译后的.class文件也在这里存放。
6、/JavaWeb_001/WebRoot/WEB-INF/lib 存放web应用所需要的各种JAR文件。

web.xml文件
是JavaWeb应用的XML格式的配置文件,存放于WEB-INF文件夹下。web.xml文件有开发人员编写,供Servlet容器访问。web.xml文件也称为JavaWeb应用的发布描述符文件,Servlet容器在加载和启动Javaweb应用时会读取它的web.xml的配置方法,从中获得关于当前Web应用的发布信息。
web.xml文件中可包含如下配置信息:
1、Servlet的定义
2、Servlet的初始化参数
3、Servlet及JSP的映射
4、安全域配置参数
5、welcome文件清单
6、资源引用
7、环境变量的定义

web.xml
<?xml version="1.0" encoding="UTF-8"?>//第一行指定了XML的版本和字符编码
*<web-app></web-app>*//声明了一个元素,它是根元素,所有关于JavaWeb应用的具体配置元素

都将加入到这个<web-app>元素中。
 <!-- 配置Servlet -->
  <servlet>
    <servlet-name>LoginServlet</servlet-name>
    <servlet-class>servlet.LoginServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>LoginServlet</servlet-name>
    <url-pattern>/login</url-pattern>
  </servlet-mapping>

<servlet>元素用于为Servlet类定义一个名字,它的子元素有
<servlet-name>//z定义Servlet的名字
<servlet-class>//指定Servlet的完整类名(类的完全限定名)
<init-param>//定义Servlet的初始化参数(包括参数名和参数值),在一个<servlet>元素中

可以有多个<init-param><load-on-startup>//指定当Servlet容器启动Web应用时,加载各个Servlet的次序。如果这个值为正数或零,Servlet容器先加载数值小的Servlet,在依次加载其他数值大的Servlet。如果这个值为负数或者没有设定,那么Servlet容器将在客户端首次访问这个Servlet时加载它。

<Servlet-mapping>元素用于为Servlet映射一个URL;<Servlet-name>子元素指定待映射的Servlet名字;<url-pattern>子元素指定访问Servlet的相对URL路径。

在Tomcat中发布JavaWeb应用
JavaWeb应用可以运行在各种符合Servlet规范的Servlet容器中,尽管发布的具体细节依赖于Tomcat本身的实现,但是以下关于发布JavaWeb应用的基本思想适用于所有的Servlet容器:
1、把Web应用的所有文件复制到Servlet容器的特定目录下,这是发布Web应用的最快捷的一种方式。
2、各种Servlet容器实现都会从Web应用的web.xml配置文件中读取有关Web组件的配置信息。
Tomcat目录结构
1、/bin 文件夹存放在Window平台及Linux平台上启动和关闭Tomcat的脚步文件。
2、/conf 文件夹存放Tomcat服务器的各种配置文件,其中最重要的配置文件是server.xml。
3、/lib 文件夹存放Tomcat服务器及所有Web应用都可以访问的JAR文件
4、/logs 文件夹存放Tomcat的日志文件。
5、/webapps 文件夹存放在Tomcat上发布JavaWeb应用时,默认把Web应用文件放于次目录下。
6、/work 文件夹存放Tomcat在运行时把生成的一些工作文件放于此目录下,例如,Tomcat把编译JSP而生成的Servlet类文件放于次目录下。

Tomcat的类加载器负责为Tomcat本身及JavaWeb应用加载相关的类。假如Tomcat的类加载器要为一个JavaWeb应用加载一个名为Sample的类,则类加载器会按照以下先后顺序到各个目录中去查找Sample类的.class文件,直到找到为止,如果在所有目录中都不存在Sample.class,则会抛出异常:
1、在JavaWeb应用的WEB-INF/classes目录下查找Sample.class文件。
2、在JavaWeb应用的WEB-INF/lib目录下的JAR文件中查找Sample.class文件。
3、在Tomcat的lib子目录下直接查找Sample.class文件。
4、在Tomcat的lib子目录下的JAR文件中查找Sample.class文件。
按照默认方式发布javaWeb应用
Web组件的URL
无论按照开放式目录结构还是按照打包文件方式发布Web应用,Web应用的默认URL入口都是Web应用的根目录名。例如对于JavaWeb_001应用,它的URL入口为 /JavaWeb_001。
对于HTML和JSP文件,它们的URL和文件路径存在关系,例如login.html的文件路径为 /JavaWeb_001/login.html,URL为Http://localhost:8080/JavaWeb_001/login.html
对于Servlet,需要在web.xml文件中对其映射URL。Servlet的URL有web.xml文件中的<url-pattern>元素来指定
步骤
1、参考Web应用的web.xml文件,找到<url-pattern>子元素的值为/login的<servlet-mapping>元素。
2、读取<servlet-mapping>元素的<servlet-name>子元素的值,由此确定Servlet的名字为LoginServlet。
3、找到<servlet-name>子元素的值为LoginServlet的<servlet>元素
4、读取<servlet>元素的<servlet-class>子元素的值,由此确定Servlet的类名为servlet.LoginServlet。
5、到tomcat/webapps/JavaWeb_001/WEB-INF/classes/Servlet目录下找到LoginServlet.class文件。
Servlet规范规定要对Servlet进行URL映射,主要原因:
1、为一个Servlet对应多个URL提供方便的设置途径。
2、简化了Servlet的URL,并且可以向客户端隐藏Web应用的实现细节。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值