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