Jsp&Servelet 学习笔记(1)

2016-02-19 21:59 7 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享Jsp&Servelet 学习笔记(1)教程,希望对大家能有一点小小的帮助。

【 tulaoshi.com - Web开发 】

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 的对象并且把它们作为参数传到这些处理请求的方法中。
  http://school.cnd8.com/ 
  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("htmlhead");   
          out.println("titleHelp Page/title/headbody"); 
          out.println("h2Please 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"trtd valign="top""); 
           out.println("Your first name: /td td valign="top""); 
           out.println("input type="text" name="firstname" size="20""); 
           out.println("/td/trtrtd valign="top""); 
           out.println("Your last name: /td td valign="top""); 
           out.println("input type="text" name="lastname" size="20""); 
           out.println("/td/trtrtd valign="top""); 
           out.println("Your email: /td td valign="top""); 
           out.println("input type="text" name="email" size="20""); 
           out.println("/td/trtrtd 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("htmlhead"); 
          out.println("titleSubmitted Parameters/title/headbody");   
            if (emptyEnum)  ...{  
                  out.println(           "h2Sorry, the request does not contain any parameters/h2");
            } else   ...{  
                          out.println(        "h2Here 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异常。
   
  http://blog.csdn.net/bruceleey/archive/2007/02/07/1503843.aspx

来源:http://www.tulaoshi.com/n/20160219/1627475.html

延伸阅读
标签: Web开发
先看最入门的例子,在记事本输入如下内容,再存为 001.html。 这是第一个JavaScript例子 html head Script Language ="JavaScript" // JavaScript Appears here. alert("这是第一个JavaScript例子!"); /Script /Head /Html 有如下几点要说明: ① 在本例中,JavaScript代码出现在 head /head中,并由标识 Script Language="JavaScript".../S...
环境:windows 2000 server + Oracle8.1.7 + sql*plus 目的:以oracle自带的scott模式为测试环境,主要通过试验体会分析函数的用法。 1.row_number() 的使用 原表信息: SQL break on deptno skip 1  -- 为效果更明显,把不同部门的数据隔段显示。 SQL select deptno,ename,sal   2  from emp   3  order by dep...
Select字句在逻辑上是SQL语句最后进行处理的最后一步,所以,以下查询会发生错误: SELECT YEAR(OrderDate) AS OrderYear, COUNT(DISTINCT CustomerID) AS NumCustsFROM dbo.OrdersGROUP BY OrderYear; 因为group by是在Select之前进行的,那个时候orderYear这个列并没有形成。 如果要查询成功,可以像下面进行修改: SELECT OrderYear, ...
标签: Java JAVA基础
熟悉JSP服务器 本“JSP由浅入深” 系列教程是面向中级和高级用户的,它需要HTML和Java的基础。你应该会将HTML网页连接到一起,并且会利用Java来进行编程。如果你还没有这个基础,建议你还是先打好基础为好。这个系列教程将通过编制简单的例子到复杂的例子来教会你JSP。本系列教程是采用循序渐进的方法来进行阐述的,即由浅入深。为了使你能够获...
标签: Java JAVA基础
HTML 注释 在客户端显示一个注释. JSP 语法 <!-- comment [ <%= expression % ] -- 例子 1 <!-- This file displays the user login screen -- 在客户端的HTML源代码中产生和上面一样的数据: <!-- This file displays the user login screen -- 例子 2 <!-- This page was loaded on <%= (new java.util.Date()...

经验教程

516

收藏

38
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部