精灵王
- 注册日期2010-12-08
- 发帖数640
- QQ
- 火币1103枚
- 粉丝120
- 关注75
|
阅读:4689回复:0
jsp;servelet 学习笔记(1) _jsp教程
楼主#
更多
发布于:2010-12-15 11:47
| | | | 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://www.knowsky.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(""); out.println(""); out.println(" Please submit your information"); //make sure method="post" so that the servlet service method //calls doPost in the response to this form submit out.println( " "); out.println(" "); out.println(""); } //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(""); out.println(""); if (emptyEnum) ...{ out.println( " Sorry, the request does not contain any parameters"); } else ...{ out.println( " Here are the submitted parameter values"); } while(paramNames.hasMoreElements( )) ...{ parName = (String) paramNames.nextElement( ); out.println( "" + parName + " : " + request.getParameter(parName)); out.println(" "); }//while out.println(""); } // doPost } 你有可能注意到doGet()和doPost()每个将抛出ServletException和IOException.那是因为response.getWriter()将会抛出IO异常。
| | | | |
|