Jsp&Servelet 学习笔记-写出一个 servelet 程序

 
1.1    写出一个 servelet 程序
1.2    写出一个 Jsp程序
1.3    编译一个 Servlet 程序
1.4    打包一个Servlets 和 Jsps程序
1.5    构建一个部署描述器
 
 
1.1    写出一个 servelet 程序
 
问题
你想写一个servlet作为一个web应用程序
解决方案
写一个java class 从 javax.servlet.http.HttpServlet.继承。首先必须倒入一个类包servlet.jar。你将需要里面的类库来编译这个servlet程序。
讨论
一个servlet程序就是一个java类,用于响应客户端通过网络请求的动态内容。如果你熟悉(CGI)程序,那么java技术的servlets完全能取代CGI程序。通常称为一个web 组件,一个servlet 程序在一个运行环境执行将被提供一个servles容器比如 tomcat和bea weblogic.
注释:一个web容器能够被
Servlets被安装在一个web容器中作为一个web应用程序的一部分。这个应用程序将包含 WEB资源。像HTML页面,图片,多媒体片断,servlets, jsps,xml 配置文件,java运行类和类库当一个web应用程序部署到一个web容器里,这个容器将产生和装载这个java servlet类的实例到JVM去处理对于servlet的请求。
所有的servlet继承 javax.servlet.Servlet接口。开发Web应用的程序员特别的写了一个servlet
继承于javax.servlet.http.HttpServlet,一个抽象类实现了Servlet接口并且它是特别为处理HTTP请求设计的。
当一个web容器产生一个servlet实例时,它的基本顺序如下:
1、 servlet容器首先调用这个servlet的init()方法,它建会初始化一个资源给servlet使用。列如一个logger。这个init()方法在整个servlet的生存周期只会被调用一次。
2、 init()方法初始化了一个对象,对象继承了java.servlet.ServletConfig接口。这个对象使servlet能够初始化那些被声明在部署描述符的参数。ServletConfig也使servlet有权使用一个 javax.servlet.ServletContext 的对象,用这个对象servlet可以记录信息,分派请求到其他的web组件上并且能够使用在同一个应用上的其他web资源。
3、 servlet容器调用这个servlet的service()方法去响应servlet的一些请求。根据HttpServlets,service()自动的调用合适的HTTP方法去处理请求通过调用servlet的doGet()或者doPost()方法。几个例子,用户发送了个Post请求这时servlet通过doPost()方法的执行来响应这个请求。
4、 当调用两个主要的HttpServlet的doPost(),doGet()方法,这个servlet容器将产生javax..servlet.http.HttpServletRequest和HttpServletResponse 的对象并且把它们作为参数传到这些处理请求的方法中。
 
5、 管理一个servlet的生命周期,或者决定这个servlet实例对request请求的处理,在java虚拟机上的存在时间。当一个servlet容器开始移除一个servlet的时候将调用servlet的destroy()方法,在这个方法中能够释放所有的资源,比如一个数据库连接。
Example  A typical HttpServlet
 
 
package  com.mydev;   
 
import  java.io.IOException;  import  java.io.PrintWriter;   
 
import  java.util.Enumeration;  import  javax.servlet.ServletException; 
 
import  javax.servlet.http.HttpServlet;
 
import  javax.servlet.http.HttpServletRequest;
 
import  javax.servlet.http.HttpServletResponse;
 
// 必须继承HttpServlet接口
  public   class  FirstServlet  extends  HttpServlet  {     
         
public void doGet(HttpServletRequest request,     HttpServletResponse response) throws ServletException, java.io.IOException {        
      
//set the MIME type of the response, "text/html"  
        response.setContentType("text/html");    
      
//use a PrintWriter to send text data to the client who has requested the  
     
//servlet  
       java.io.PrintWriter out = response.getWriter( );   
    
//Begin assembling the HTML content    out.println("<html><head>");    
        out.println("<title>Help Page</title></head><body>");  
        out.println(
"<h2>Please submit your information</h2>");    
    
//make sure method="post" so that the servlet service method 
    
//calls doPost in the response to this form submit  
         out.println(        "<form method="post" action ="" + request.getContextPath( ) +            "/firstservlet" >");  
         out.println(
"<table border="0"><tr><td valign="top">");  
         out.println(
"Your first name: </td> <td valign="top">");  
         out.println(
"<input type="text" name="firstname" size="20">");  
         out.println(
"</td></tr><tr><td valign="top">");  
         out.println(
"Your last name: </td> <td valign="top">");  
         out.println(
"<input type="text" name="lastname" size="20">");  
         out.println(
"</td></tr><tr><td valign="top">");  
         out.println(
"Your email: </td> <td valign="top">");  
         out.println(
"<input type="text" name="email" size="20">");  
         out.println(
"</td></tr><tr><td valign="top">");  
         out.println(
"<input type="submit" value="Submit Info"></td></tr>");  
         out.println(
"</table></form>");    out.println("</body></html>");    
   }

//doGet
    public void doPost(HttpServletRequest request,     HttpServletResponse response) throws ServletException,    java.io.IOException   {     
    
//display the parameter names and values  
        Enumeration paramNames = request.getParameterNames( );   
        String parName;
       
//this will hold the name of the parameter    
         boolean emptyEnum = false;  
        
if (! paramNames.hasMoreElements( ))   
        emptyEnum 
= true;       
           
//set the MIME type of the response, "text/html"  
        response.setContentType("text/html");     
         
//use a PrintWriter to send text data to the client  
        java.io.PrintWriter out = response.getWriter( );     
         
//Begin assembling the HTML content  
        out.println("<html><head>");  
        out.println(
"<title>Submitted Parameters</title></head><body>");    
          
if (emptyEnum)  {   
                out.println(           
"<h2>Sorry, the request does not contain any parameters</h2>"); 
          }
 else   {   
                        out.println(        
"<h2>Here are the submitted parameter values</h2>");   
          }
     
          
while(paramNames.hasMoreElements( ))  {      
                  parName 
= (String) paramNames.nextElement( );     
                  out.println(            
"<strong>" + parName + "</strong> : " +                request.getParameter(parName));    
                 out.println(
"<br />");   
          }
//while      
         out.println("</body></html>");   
         }

 
// doPost
 }
 
你有可能注意到 doGet() doPost() 每个将抛出 ServletException IOException. 那是因为 response.getWriter() 将会抛出 IO 异常。
 
 
 
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值