一:首先介绍一下:servlet的执行过程和生命周期
Servlet的执行过程
在说一下servlet的生命周期:
Class.forName(className).newInstance()
方法加载并创建一个实例。
service(ServletRequest,ServletResponse)方法。
package org.lxh.servlet ;
import java.io.* ;
import javax.servlet.* ;
import javax.servlet.http.* ;
public class InputServlet extends HttpServlet{
public void doGet(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
String param = req.getParameter("ref") ;
System.out.println("*************"+param) ;
}
public void doPost(HttpServletRequest req,HttpServletResponse resp)
throws ServletException,java.io.IOException{
this.doGet(req,resp) ;
}
};
配置web.xml
<servlet>
<servlet-name>inp</servlet-name>
<servlet-class>org.lxh.servlet.InputServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>inp</servlet-name>
<url-pattern>/input</url-pattern>
</servlet-mapping>
很明显路径错误:文件夹serdemo里面新建In.htm
所以这个路径inputservlet.java多了一个路径名
解决方式有两种:
第一种:
<form action=“../input" method="post">
请输入参数:<input type="text" name="ref">
<input type="submit" value="提交">
</form>
比较好的是第二中:
第二种
<servlet-mapping>
<servlet-name>inp</servlet-name>
<url-pattern>/serdemo/input</url-pattern>
</servlet-mapping>
Servlet本身也只关心初始化,服务和销毁三个操作。
public voiddestroy() ;
package org.lxh.servlet ; import java.io.* ; import javax.servlet.* ; import javax.servlet.http.* ; public class LifeCycleServlet extends HttpServlet{ public void init() throws ServletException{ System.out.println("************** 初始化 **************") ; } public void doGet(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{ System.out.println("************** 服务 **************") ; } public void doPost(HttpServletRequest req,HttpServletResponse resp) throws ServletException,java.io.IOException{ this.doGet(req,resp) ; } public void destroy(){ System.out.println("************** 销毁 **************") ; } };
<servlet> <servlet-name>life</servlet-name> <servlet-class>org.lxh.servlet.LifeCycleServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>life</servlet-name> <url-pattern>/life</url-pattern> </servlet-mapping>
public void destroy(){ System.out.println("************** 销毁 **************") ; try{ Thread.sleep(3000); }catch(Exception e){ } }
public void init(ServletConfig config) throws ServletException{ System.out.println("*** 初始化"+config.getInitParameter("ref1")+" ***") ; } public void service(ServletRequest req,ServletResponse res){ System.out.println("************** service服务 **************") ; }
<servlet> <servlet-name>life</servlet-name> <servlet-class>org.lxh.servlet.LifeCycleServlet</servlet-class> <load-on-startup>1</load-on-startup> <init-param> <param-name>ref1</param-name> <param-value>MLDN</param-value> </init-param> </servlet>