servlet实现的三种方式

(1)方法一:

[java]  view plain  copy
  1. //这是第一个实现servlet的方法,使用时限servlet接口的方法来实现,使用的时候需要引用servlet-api.jar  
[java]  view plain  copy
  1. package com.lc;  
  2.   
  3. import javax.servlet.*;  
  4. import java.io.*;  
  5. import javax.servlet.ServletConfig;  
  6. import javax.servlet.ServletException;  
  7. import javax.servlet.ServletRequest;  
  8. import javax.servlet.ServletResponse;  
  9. import java.io.IOException;  
  10.   
  11. public class Hello implements Servlet{  
  12.       
  13.     //该函数用于初始化该servlet(类似于类的构造函数)  
  14.     //该函数只会被调用一次(当用户第一次访问该servlet是被调用)  
  15.     public void init(ServletConfig parm1) throws ServletException {  
  16.         System.out.println("init it!");  
  17.           
  18.     }  
  19.   
  20.     public ServletConfig getServletConfig() {  
  21.         return null;  
  22.     }  
  23.   
  24.     //这个函数用于处理业务逻辑  
  25.     //程序员应当那个当业务逻辑逻辑代码写在这里  
  26.     //当用户访问servlet时都会被调用  
  27.     //req用于获得客户端的信息    
  28.     //res用户想客户端返回信息 (可以认为是游览器)  
  29.     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {  
  30.       
  31.         //从res中得到Printwriter  
  32.         System.out.println("service it!"); //在控制台显示  
  33.         PrintWriter pw = res.getWriter();  
  34.         pw.println("hello world!");//在游览器中显示  
  35.     }  
  36.   
  37.     public String getServletInfo() {  
  38.         return "";  
  39.     }  
  40.   
  41.     //三种情况导致destroy的调用:  
  42.     //1.reload 该servlet(webApps)  
  43.     //2.关闭tomcat  
  44.     //3.关机  
  45.     public void destroy() {  
  46.         //销毁servt实例 实际就是释放内存  
  47.         System.out.println("destroy it!");  
  48.     }  
  49.   
  50. }  

(2)方法二:

[java]  view plain  copy
  1. //第二个实现servlet程序,继承GenericServlet  这种方法很简单  
  2.   
  3. package com.tsinghua;  
  4.   
  5. import javax.servlet.GenericServlet;  
  6. import java.io.*;  
  7. import javax.servlet.*;  
  8.   
  9. public class HelloGenericServlet extends GenericServlet{  
  10.       
  11.     //重写service方法即可  
  12.       
  13.     public void service(ServletRequest req,ServletResponse res){  
  14.           
  15.         //返回hello world!generic  
  16.           
  17.         try{  
  18.             PrintWriter pw =res.getWriter();  
  19.             pw.println("Hello world! generic!");  
  20.         }  
  21.         catch(Exception ex){  
  22.             ex.printStackTrace();  
  23.         }  
  24.     }  
  25.       
  26.       
  27. }  

(3)方法三:

[java]  view plain  copy
  1. //第三个servlet实现程序,通过继承HttpServlet  
  2.   
  3. package com.tsinghua;  
  4.   
  5. import javax.servlet.http.*;  
  6. import java.io.*;  
  7.   
  8. public class HelloHttp extends HttpServlet{  
  9.       
  10.     //处理get请求  
  11.     //req:用于获得客户端(游览器)的信息  
  12.     //res:用于向客户端(游览器)返回信息  
  13.     public void doGet(HttpServletRequest req,HttpServletResponse res){  
  14.           
  15.         //业务逻辑  
  16.         try{  
  17.             PrintWriter pw = res.getWriter();  
  18.             pw.println("hello http!");  
  19.         }  
  20.         catch(Exception ex){  
  21.             ex.printStackTrace();  
  22.         }  
  23.     }  
  24.     //处理post请求  
  25.     //req:用于获得客户端(游览器)的信息  
  26.     //res:用于向客户端(游览器)返回信息  
  27.     public void doPost(HttpServletRequest req,HttpServletResponse res){  
  28.         this.doGet(req,res);  
  29.     }  
  30. }  

在实现上述三种方法的时候 需要配置web.xml文件,代码如下:

[html]  view plain  copy
  1. <?xml version="1.0" encoding="ISO-8859-1"?>  
  2.   
  3. <web-app xmlns="http://java.sun.com/xml/ns/javaee"  
  4.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  5.   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  6.                       http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  7.   version="3.0"  
  8.   metadata-complete="true">  
  9.   
  10.   <display-name>Welcome to Tomcat</display-name>  
  11.   <description>  
  12.      Welcome to Tomcat  
  13.   </description>  
  14.     
  15. <!--JSP servlet mappings starts-->  
  16.   
  17.   <servlet>  
  18.     <!--给自己的servlet起个名字  任意的名字-->  
  19.     <servlet-name>Hello</servlet-name>  
  20.     <!--指明servlet的路径(包名+类名)-->  
  21.     <servlet-class>com.tsinghua.Hello</servlet-class>  
  22.   </servlet>  
  23.    <servlet-mapping>  
  24.     <!--和上边的servlet的名字是一样的-->  
  25.     <servlet-name>Hello</servlet-name>  
  26.     <!--这是在游览器中输入的访问该servlet的url-->  
  27.     <url-pattern>/helloworld</url-pattern>  
  28.   </servlet-mapping>  
  29.   
  30.    <servlet>  
  31.     <servlet-name>HelloGenericServlet</servlet-name>  
  32.     <servlet-class>com.tsinghua.HelloGenericServlet</servlet-class>  
  33.   </servlet>  
  34.    <servlet-mapping>  
  35.     <servlet-name>HelloGenericServlet</servlet-name>  
  36.     <url-pattern>/helloGeneric</url-pattern>  
  37.   </servlet-mapping>  
  38.   
  39.    <servlet>  
  40.     <servlet-name>HelloHttp</servlet-name>  
  41.     <servlet-class>com.tsinghua.HelloHttp</servlet-class>  
  42.   </servlet>  
  43.    <servlet-mapping>  
  44.     <servlet-name>HelloHttp</servlet-name>  
  45.     <url-pattern>/helloHttp</url-pattern>  
  46.   </servlet-mapping>  
  47.   
  48. <!--JSP servlet mappings end-->  
  49. </web-app> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值