serulet请求路径的问题:
在form的action属性中,直接写Serulet的url路径。默认是在当前目录下查找。一旦网页在子目录中,那么会在提交路径中加上子目录的名称。可以通过../回到上一级目录。
如果目录比较深,频繁用../很繁琐,而且移植性不好。可以在url路径中,以/开始,表示回到webapps根目录,再加上布署名,再书写servlet请求路径
<form action="/webTest/tt">
Sevlet的URL路径书写的方式:
1.精确映射 /abc 表示只能以/abc路径查找servlet
2.扩展映射 *.action 表示凡是以.action结尾的请求,都能访问Servlet
3.路径映射 /abc/* 表示凡是在/abc/路径下的请求,都能访问servlet
Servlet生命周期
1、启动tomcat,读取conf/server.xml,以确定启动端口和web应用程序的布署目录
2、读取布署目录中所有的web应用程序中的web.xml,并解析。所有,一旦有一个web应用程序中的web.xml书写错误,那么解析失败,从而抛出解析异常。正确解析web.xml,可以确定布署的web组件信息。
3.加载并实例化Servlet。加上<load-on-startup>标签。如果该标签的值为0或正数,表示WEB容器一启动就实例化。如果该标签不写或为负数,表示第一次访问再实例化。
4、调用init()方法完成初始化。
5、当请求到达后,调用service()完成业务。
6、销毁阶段,调用destory()完成清理工作。
在整个生命周期中,1、2、3、4、6、都只执行一次。只有5才是每次请求都会执行。而且servlet对象只有一个,是单实例多线程的类。
在注册Servlet时,可以加入
<init-param>
<param-name>aaa</param-name>
<param-value>111</param-value>
</init-param>
进行servlet初始化信息的描述。可以通过ServletConfig配置对象中的getIntParameter()根据参数名称,得到参数值。但该初始化参数只能在当前Servlet中使用,不能再别的Servlet使用。
在form的action属性中,直接写Serulet的url路径。默认是在当前目录下查找。一旦网页在子目录中,那么会在提交路径中加上子目录的名称。可以通过../回到上一级目录。
如果目录比较深,频繁用../很繁琐,而且移植性不好。可以在url路径中,以/开始,表示回到webapps根目录,再加上布署名,再书写servlet请求路径
<form action="/webTest/tt">
Sevlet的URL路径书写的方式:
1.精确映射 /abc 表示只能以/abc路径查找servlet
2.扩展映射 *.action 表示凡是以.action结尾的请求,都能访问Servlet
3.路径映射 /abc/* 表示凡是在/abc/路径下的请求,都能访问servlet
Servlet生命周期
1、启动tomcat,读取conf/server.xml,以确定启动端口和web应用程序的布署目录
2、读取布署目录中所有的web应用程序中的web.xml,并解析。所有,一旦有一个web应用程序中的web.xml书写错误,那么解析失败,从而抛出解析异常。正确解析web.xml,可以确定布署的web组件信息。
3.加载并实例化Servlet。加上<load-on-startup>标签。如果该标签的值为0或正数,表示WEB容器一启动就实例化。如果该标签不写或为负数,表示第一次访问再实例化。
4、调用init()方法完成初始化。
5、当请求到达后,调用service()完成业务。
6、销毁阶段,调用destory()完成清理工作。
在整个生命周期中,1、2、3、4、6、都只执行一次。只有5才是每次请求都会执行。而且servlet对象只有一个,是单实例多线程的类。
在注册Servlet时,可以加入
<init-param>
<param-name>aaa</param-name>
<param-value>111</param-value>
</init-param>
进行servlet初始化信息的描述。可以通过ServletConfig配置对象中的getIntParameter()根据参数名称,得到参数值。但该初始化参数只能在当前Servlet中使用,不能再别的Servlet使用。