摘要:
综述:linux由于其超强的安全性、稳定性,而受到越来越广泛的使用。下面就以redhat为例,看看在linux下,jsp开发环境是如何建立的。 虽然apache jserv的开发小组现在都从事tomcat的开发,而且apache jserv只支持servlet 2.0的标准,并且要加其他的软件(gnujsp)才能支持jsp;但是apache jserv在现阶段比tomcat稳定,因此现在a......
摘要:
public string validateuser(string inputuserid, string inputpwd) throws sqlexception{string returnstring = null;string dbuserid = "userid"; // 数据库的用户名string dbpassword = "password" ; //数据库的密......
JSP与Servlet
综述:java servlet是jsp技术的基础,而且大型的web应用程序的开发需要java servlet与jsp配合才能完成.现在许多web服务器都支持servlet,即使不直接支持servlet的web服务器,也可以通过附件的应用服务器与模块来支持servlet,这得益于java的跨平台特性.另外,由于servlet内部以线程方式提供提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此servlet的效率非常高.
但它并不是没有缺点,与传统的cgi.isapi.nsapi方式相同,java servlet也是利用输出html语句来实现动态网页的,如果用它来开发整个网站,动态部分与静态页面的整合过程将变得无法想象.这就是sun还要推出jsp的原因. 【程序编程相关:
在Linux上构建JSP环境】
【推荐阅读:
PWIN98营造JSP环境及建立数据查询】
如何正确理解servlet? 【扩展信息:
Servlet中jdbc应用高级篇(四)】
servlet的基本概念
一.servlet的结构
在具体掌握servlet之前,须对java语言有所了解.我们假设读者已经具备一定的java基础.在servlet api中最重要的是servlet接口(interface),所有的servlets都必须实现该接口,途径有很多:一是直接实现该接口,二是通过扩展类(class)来实现,如
httpservlet. 这个servlet接口提供了servlet与客户端联系的方法.servlet编写者可以在他们开发 servlet程序时提供更多一些或所有的这样方法.
当一个servlet接收来自客户端的调用请求, 它接收两个对象:一个是servletrequest,另外一个是servletresponse.这个servletrequest类概括从客户端到服务器之间的联系,而
servletresponse类概括从servlet返回客户端的联系.
servletrequest接口可以获取到这样一些信息,如由客户端传送的阐述名称,客户端正在使用的协议,产生请求并且接收请求的服务器远端主机名.它也提供获取数据流的servletinputstream,
这些数据是客户端引用中使用http post 与 put 方法递交的.一个servletrequest的子类可以让servlet获取更多的协议特性数据.例如:httpservletrequest
包含获取 http-specific头部信息的方法.
servletresponse接口给出相应客户端的servlet方法.它允许servlet设置内容长度与回应的mime类型,并且提供输出流servletoutputstream,通过编写者可以发回相应的数据.servletresponse子类可以给出更多protocol-specific内容的信息.
例如:httpservletresponse 包含允许servlet 操作http-specific头部信息的方法.
上面有关类与接口的描述,构成了一个基本的servlet框架.http servlets有一些附加的可以提供session-tracking capabilities的方法.servlet编写者可以利用这些api,在有他人操作时维护servlet与客户端之间的状态.
二.servlet的接口
我们编写的servlet ,一般从javax包的httpservlet类扩展而来,在httpservlet中加入了一些附加的方法,这些方法可以被协助处理http
基本请求的httpservlet类中的方法service自动地调用.这些方法有:
· doget 用来处理http的get请求.
这个get操作仅仅允许客户从http server上取得(get)资源.重载此方法的用户自动允许支持方法head.这个get操作被认为是安全的,没有任何的负面影响,对用户来说是很可靠的.比如,大多数的正规查询都没有副作用.打算改变存储数据的请求必须用其他的http方法.这些方法也必须是个安全的操作.方法doget的缺省实现将返回一个http的bad_request错误.
方法doget的格式:
protected void doget(httpservletresquest request, httpservletresponse response)
throws servletexception,ioexception;
· dopost 用来处理http的post请求.
这个post操作包含了在必须通过此servlet执行的请求中的数据.由于它不能立即取得资源,故对于那些涉及到安全性的用户来说,通过post请求操作会有一些副作用.
方法dopost的缺省实现将返回一个http的bad_request错误.当编写servlet时,为了支持post操作必须在子类httpservlet中实现(implement)此方法.
此方法的格式:
protected void dopost(httpservletresquest request, httpservletresponse response)
throws servletexception,ioexception;
· doput用来处理http的put请求.
此put操作模拟通过ftp发送一个文件.对于那些涉及到安全性的用户来说,通过put请求操作也会有一些副作用.
此方法的格式:
protected void doput(httpservletresquest request,httpservletresponse response)
throws servletexception,ioexception;
· dodelete用来处理http的delete请求.
此操作允许客户端请求一个从server移出的url.对于那些涉及到安全性的用户来说,通过delete请求操作会有一些副作用.
方法dodelete的缺省实现将返回一个http的bad_request错误.当编写servlet时,为了支持delete操作,必须在子类httpservlet中实现(implement)此方法.
此方法的格式:
protected void dodelete (httpservletresquest request, httpservletresponse response)
throws servletexception,ioexception;
· dohead 用来处理http的head请求.
缺省地,它会在无条件的get方法执行时运行,但是不返回任何数据到客户端.只返回包含内容信息的长度的header.由于用到get操作,此方法应该是很安全的(没有副作用)也是可重复使用的.此方法的缺省实现(implement)自动地处理了httpde的head操作并且不需要通过一个子类实现(implement).
此方法的格式:
protected void dohead (httpservletresquest request,httpservletresponse response)
throws servletexception,ioexception;
· dooptions用来处理http的options请求.
此操作自动地决定支持什么http方法.比如说,如果读者创建httpservlet的子类并重载方法doget,然后方法dooptions会返回下面的header:
allow:get,head,trace,options
一般不需要重载方法dooptions.
此方法的格式:
protected void dooptions (httpservletresquest request, httpservletresponse response)
throws servletexception,ioexception;
· dotrace用来处理http的trace请求.
此方法的缺省实现产生一个包含所有在trace请求中的header的信息的应答(response).在开发servlet时,多数情况下需要重载此方法.
此方法的格式:
protected void dotrace (httpservletresquest request, httpservletresponse response)
throws servletexception,ioexception;
在开发以http为基础的servlet中,servlet开发者关心方法doget与方法dopost即可....
下一页 摘要:
<jsp:usebean>
创建一个bean实例并指定它的名字和作用范围.
jsp 语法
<jsp:usebean
id="beaninstancename"
scope="page | request | session | application"
{
class="package.class" |
type="packag......