分享
 
 
 

Jsp&Servelet 学习笔记(1)

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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("<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异常。

http://blog.csdn.net/bruceleey/archive/2007/02/07/1503843.aspx

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有