servlet学习

来源:互联网 发布:淘宝号查询信誉网址 编辑:程序博客网 时间:2024/06/06 12:27




1、装载servlet,由相应的容器来完成
2、创建一个servlet实例。
3、调用servlet的init()方法,该方法只会在第一次访问该servlet时被调用一次
4、服务:调用servlet的service()方法,一般业务逻辑在这里处理。该方法在访问该servlet时都会被调用。
5、销毁:调用servlet的destory()方法,销毁该servlet实例,该方法在以下情况下被调用:a:tomact重新启动 b:reload该Webapp c:重启电脑


实现Servlet接口,则要重写以下五个方法;
public void init(ServletConfig parm1)
public ServletConfig getServletConfig() 
public void service(ServletRequest req, ServletResponse res)
public String getServletInfo()
public void destroy()


例子:
public class Hello  implements Servlet {
//该方法相当于构造方法,只调用一次
public void init(ServletConfig parm1) throws ServletException {
// TODO: Add your code here
System.out.println("init");
}
//得到Servlet的配置文件
public ServletConfig getServletConfig() {
// TODO: Add your code here
return  null;
}
//该方法每次访问Servlet都调用
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
// TODO: Add your code here
System.out.println("service");


PrintWriter pw = res.getWriter();
pw.println("Hello world!");
}

public String getServletInfo() {
// TODO: Add your code here
return "";
}

//关掉servlet

public void destroy() {
// TODO: Add your code here
System.out.println("destroy");
}
}






继承GenericServlet
public class HelloGen extends GenericServlet{


   public void service(ServletRequest req,ServletResponse res){
    //返回hello world!generic!
    try {
    PrintWriter pw = res.getWriter();
    pw.println("hello world!generic!");
}
catch (Exception ex) {
}


   }




}


继承HttpServlet(现在大多数用这个)
public class HelloHttp extends HttpServlet{


   public void doGet(HttpServletRequest req, HttpServletResponse res){
    try{
    PrintWriter pw = res.getWriter();
    pw.println("hello http");
    }catch(Exception e){
    e.printStackTrace();
    }
   }
   public void doPost(HttpServletRequest req, HttpServletResponse res){
    this.doGet(req,res);
   }


}


以上各种方式实现了servlet后,还要在xml文件中部署servlet,
xml文件的内容:
<servlet>
  <!--给你的Servlet起名,任意的 -->
  <servlet-name>hello</servlet-name>
  <!--指明Servlet的路径,(包名+类名) -->
  <servlet-class>com.zyp.Hello</servlet-class>
  </servlet>
  
  <!--这与上面那个servlet是映射关系的 -->
  <servlet-mapping>
  <!--给你的Servlet起名,任意的(与上面那个命名是要对应一致的) -->
  <servlet-name>hello</servlet-name>
  <!--这是在浏览器中输入的访问该servlet的url,任意的,这里即是:http://localhost:8080/MyWebApp/sp (MyWebApp是我本地放这个servlet的文件夹)-->
  <url-pattern>/sp</url-pattern>
  </servlet-mapping>
0 0