⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 servlet-into.htm

📁 写给JSP初级程序员的书
💻 HTM
字号:
<html><!-- #BeginTemplate "/Templates/more.dwt" -->
<head>
<!-- #BeginEditable "doctitle" --> 
<title>csdn_了解Servlet</title>
<!-- #EndEditable -->
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<STYLE type=text/css>
A:link {
	COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:visited {
	COLOR: #333399; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:active {
	COLOR: #ff0000; FONT-FAMILY:verdana,宋体,新宋体; TEXT-DECORATION: none
}
A:hover {
	COLOR: black; TEXT-DECORATION: underline
}
BODY {
	 COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TH {
	FONT-SIZE: 9pt
}
TD {
	FONT-SIZE: 9pt
}
TD.page {
	COLOR: #000000; FONT-SIZE:9pt; LETTER-SPACING: normal; LINE-HEIGHT: 150%; WORD-SPACING: 2em
}
TD.title {
	COLOR: #000000; FONT-FAMILY:verdana,宋体,新宋体
}
TD.detail {
	COLOR: #9966ff; FONT-FAMILY:verdana,宋体,新宋体
}
</STYLE>

</head>

<body bgcolor="#FFFFFF" text="#000000" >
<div align="center"></div>
<table width="700" border="0" align="center">
  <tr> 
    <table width="700" border="1" cellpadding="1" cellspacing="0" bordercolorlight="#9898ba" bordercolordark="#000000">
        
      </table>
      <table width="700" cellspacing="0" cellpadding="0" bgcolor="9898ba" border="0">
        <tr valign="middle"></tr>
      </table>
      <div align="center"><b></div>
      
      <br>
      <table width="700" border="0">
        <tr> 
          <td width="20">&nbsp;</td>
          <td colspan="2"> 
            <div align="center">
              <h3><b><!-- #BeginEditable "5" -->
              <h3><font face="Verdana, Arial, Helvetica, sans-serif" >了解Servlet</font></h3>
              <!-- #EndEditable --></b></h3>
            </div>
          </td>
          <td width="20">&nbsp;</td>
        </tr>
        <tr> 
          <td width="20">&nbsp;</td>
          <td  colspan="2"><!-- #BeginEditable "6" --><br>
            
            <p>什么是servlets <br>
              ·明白Servlet API以及与CGI相比较 <br>
              ·知道在servlet的主要的类的使用。 <br>
              ·能够实现简单的servlets </p>
            <p><br>
              ·什么是servlet? <br>
              ·一般地,服务器端Java应用程序扩展了Web服务器的功能。 <br>
              .在服务器上可以完整地运行 <br>
              .没有必要下载到浏览器 <br>
              .代替CGI脚本 <br>
              ·Servlets的优势在于: <br>
              .方便性与灵活性 <br>
              .安全性 <br>
              .执行效率 </p>
            <p>安全性优势 <br>
              ·在服务器的范围中调用 <br>
              ·能够约束servlet的调用 <br>
              ·在安全体系中能够成为单一(全局)信号的一部分 </p>
            <p><br>
              性能优势 <br>
              ·Run in the same context as application server <br>
              ·执行并且驻留在内存中 <br>
              ·有请求时提前被装入或装入 <br>
              ·通过HTTP请求维持对话 <br>
              ·减轻后置系统的负担 <br>
              ·多线程 <br>
              ·可伸缩于多处理器以及多机种系统(IBM WebSphere Performance Pack) </p>
            <p>一般的Servlet调用 <br>
              ·客户建立一个Web服务请求,命名为一个Servlet,就如同URL的一部分 <br>
              ·Web服务器向由一个servlet类的对象所定位的Servlet引擎发送一个请求 <br>
              ·servlet引擎调用一个Servlets服务方法: </p>
            <p>浏览器(客户)&lt;====URL请求=====&gt;Web服务器&lt;===&gt;servlet对象(应用程序服务器) 
            </p>
            <p><br>
              Java Servlet 应用程序接口API <br>
              ·JSDK包括了两个包: <br>
              javax.servlet <br>
              javax.servlet.http </p>
            <p>javax.servlet.Servlet <br>
              | 实现 <br>
              javax.servlet.GenericServlet A <br>
              | <br>
              javax.servlet.http.HttpServlet A </p>
            <p>Servlet <br>
              ·表现一项服务 <br>
              ·一般通过URL请求 <br>
              ·Servlets通过应用程序服务器被装入 <br>
              ·在服务的初始化阶段(如果是预装入) <br>
              ·在客户端首次请求时 <br>
              ·在servlet重新装入时 </p>
            <p>servlet的生命周期 <br>
              ·在装入时init()方法被调用 <br>
              ·仅这一次 <br>
              ·当每个客户发出请求时,service()方法被调用 <br>
              ·当它被卸载时,destroy()方法被调用 </p>
            <p>init() <br>
              | <br>
              service() <br>
              | <br>
              destroy() </p>
            <p><br>
              HTTP Servlet <br>
              ·一个HTTP-specific请求处理器 <br>
              ·加入两个HTTP-specific的方法 <br>
              ·doGet()--处理一个GET请求(URL) <br>
              ·doPost()--处理一个POST请求(HTML) <br>
              ·子类代替了这两个信息并且可能代替init()和destroy() <br>
              ·doGet()和doPost()作这些工作并且被service()调用 </p>
            <p><br>
              请求与响应 <br>
              ·service(),doGet()和doPost()方法都具体有两个参数: <br>
              ·HttpServletRequest--提供请求数据(参数)HttpSession信息等访问。 <br>
              ·HttpServletResponse--提供允许servelt向发出请求的客户的响应的服务 <br>
              ·大多数servlet程序是用来读出请求并且写入响应 </p>
            <p><br>
              HttpServletResponse <br>
              ·向客户提供通讯的通道 <br>
              ·允许servlet返回内容并且/或者是错误 <br>
              ·设置内容头(类型,长度......) <br>
              ·重定向服务器以返回一个指的URL </p>
            <p>应答协议 <br>
              ·getWriter() <br>
              ·返回一个输出的PrintWriter <br>
              ·setContentType(String type) <br>
              ·为这个响应设置内容的类型 <br>
              ·类型是MIME型 <br>
              ·sendRedirect(String anURL) <br>
              ·重定向浏览器到一个新的URL </p>
            <p><br>
              简单的servelt </p>
            <p>public class MyServlet extends HttpServlet { <br>
              public void doGet( HttpServletRequest req, <br>
              HttpServletResponse res) <br>
              throws ServletException, IOException { <br>
              // get stream to output HTML on! <br>
              res. setContentType(&quot; text/ html&quot;); <br>
              PrintWriter out = res. getWriter(); <br>
              // send out a simple banner <br>
              out. println(&quot;&lt; HTML&gt;&lt; BODY&gt;&quot;); <br>
              out. println(&quot;&lt; h1&gt; Hello World!&lt;/ h1&gt;&quot;); 
              <br>
              out. println(&quot;&lt;/ BODY&gt;&lt;/ HTML&gt;&quot;); <br>
              } <br>
              } </p>
            <p>HttpServletRequest <br>
              ·提供客户请求 <br>
              ·&quot;Getters&quot;请求的特征,比如: <br>
              ·请求头部,内容类型,长度,方法.... <br>
              ·请求URL如同一个String <br>
              ·Servlet&quot;path&quot; <br>
              ·客户安全性类型 <br>
              ·访问请求参数(通过name) <br>
              ·请求中,数据在参与对象中的共享范围 </p>
            <p><br>
              请求协议 <br>
              ·getParmeterNames() <br>
              ·在HTML页上,返回一个的枚举的参数 <br>
              ·getParmeterValues(String name) <br>
              ·返回multi-valued参数的值 <br>
              ·getParameter(String name) <br>
              ·返回一个指定的命名的参数的值 <br>
              ·getReader() <br>
              ·返回BufferedReader到输入视图 </p>
            <p>案例: <br>
              &lt;P&gt; Please fill out this form with your name. <br>
              Thanks! <br>
              &lt;FORM METHOD=&quot; POST&quot; <br>
              ACTION=&quot;/ servlet/ NameServlet&quot;&gt; <br>
              &lt;P&gt; Please enter your name: <br>
              &lt;P&gt; First name: &lt;INPUT NAME=&quot; first&quot; TYPE=&quot; 
              TEXT&quot; <br>
              SIZE=&quot; 12&quot; MAXLENGTH=&quot; 20&quot;&gt; <br>
              Surname: &lt;INPUT NAME=&quot; surname&quot; TYPE=&quot; TEXT&quot; 
              <br>
              SIZE=&quot; 15&quot; MAXLENGTH=&quot; 25&quot;&gt; <br>
              &lt;P&gt; Thank you! &lt;INPUT TYPE=&quot; SUBMIT&quot;&gt; &lt;INPUT 
              <br>
              TYPE=&quot; RESET&quot;&gt; <br>
              &lt;/ FORM&gt; </p>
            <p><br>
              读入一个post <br>
              public void doPost( HttpServletRequest req, <br>
              HttpServletResponse res) <br>
              throws ServletException, IOException <br>
              { <br>
              … <br>
              Enumeration enum = req. getParameterNames(); <br>
              while (enum. hasMoreElements()) { <br>
              String name = (String) enum. nextElement(); <br>
              String value = req. getParameter( name); <br>
              //… do something with each pair... <br>
              } <br>
              } </p>
            <p>调用servelet <br>
              最普遍使用的调用HttpServlet是通过类名(classname)比如: <br>
              http://www.ibm.com/servlets/com.ibm.a.Myservlet </p>
            <p>·&quot;load/run by classname&quot;的支持通过另一个称为&quot;Invoker&quot;的servlet所提供 
              <br>
              ·&quot;Invoker&quot;servlet试图找到servlet的类的路径 <br>
              ·考虑到会有无名的servlet,一个servlet用这种方法装入运行 <br>
              在WebSphere中的servlet <br>
              ·另一方面,大多数的servlet引擎支持servlet通过名字注册 <br>
              ·被使用的参数可以初始化 <br>
              ·参数约束servlet的行为 <br>
              ·一个servlet可以提供不同的服务(在不同的&quot;short names&quot;) <br>
              ·参数在init()方法中使用 <br>
              ·允许servlet被预装入 <br>
              ·通过RequestDispatcher,允许简单定位 <br>
              ·允许servlet被保护 </p>
            <p>摘要 <br>
              ·我们已经看到Servlets的优势大于CGI <br>
              ·安全性,灵活性,效率 <br>
              ·我们已经介绍了Servlet的基本类和接口 <br>
              ·Servlets,GenericServlet,HttpServlet,HttpServletRequest,HttpServletResponse 
            </p>
            <p><br>
              VisulalAge for Java 的复习 <br>
              ·首先,需要知道: <br>
              ·IBM VisualAge for Java 基本概念 <br>
              ·IDE <br>
              ·Scrapbook <br>
              ·Debugger <br>
              ·VisualAge for Java与WebSphere之间的关系 <br>
              ·VisualAge for Java: <br>
              ·Visual Builders <br>
              ·Visual Application Builder <br>
              ·Enterprise Access Builder <br>
              ·Data,CICS,RMI,C++ <br>
              · Many others <br>
              工具: <br>
              ·IDE <br>
              ·AppletViewer <br>
              ·Smart Guides <br>
              ·Debugger <br>
              ·Browsers <br>
              ·Scrapbook <br>
              类库 <br>
              ·JDK1.1.7 <br>
              ·JDK1.2 <br>
              ·IBM Enterprise Connectivity <br>
              编译器和虚拟机 <br>
              ·Incremental <br>
              ·Java to byte code <br>
              ·Byte code to machine code translation <br>
              ·Multiple VMs <br>
              部件: <br>
              · JavaBeans <br>
              ·EJB develpement environment <br>
              ·WebSphere Test environment <br>
              技术支持 <br>
              ·Integrated team environment <br>
              ·Scaleable </p>
            <p>集成开发环境 <br>
              ·组织管理项目,类,方法 <br>
              ·组队开发--聚宝库 <br>
              ·导入及导出类文件到开发环境同Java文件一样 <br>
              ·优化编译 <br>
              ·视图:项目,类,界面,所有的问题 <br>
              ·搜索,智慧向导 <br>
              ·剪贴本,Debugger <br>
            </p>
            <p>&nbsp; </p>
            <p>&nbsp; </p>
            <!-- #EndEditable --></td>
          <td width="20">&nbsp;</td>
        </tr>
        <tr> 
          <td width="20" height="11">&nbsp;</td>
          <td width="541" height="11"><!-- #BeginEditable "7" --><!-- #EndEditable --></td>
          <td width="101" height="11"> 
            
          </td>
          <td width="20" height="11">&nbsp;</td>
        </tr>
      </table><div align="center"> <br>
      </div>
      
    </td>
  </tr>
</table>
<div align="center"> 
  
  <br>
</div>
</body>
<!-- #EndTemplate --></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -