阿拉丁的神灯
===========================================================
jsp对象的简单介绍
===========================================================
jsp的对象 Out,Request,Session,Application的简单介绍,以及一个计数器的例子,最后是Resign的简单介绍。 适合入门者


1、Out对象

主要用来向客户端输出各种格式的数据,并且管理应用服务器上的输出缓冲区,Out对象的基类是javax.servlet.jsp.JspWriter类。

Out的主要方法:

out.println(DataType);或out.print(DataType);

实例:

<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> out对象使用实例</TITLE>
</HEAD>
<BODY>
<%
out.println(new Date().toLocaleString());
out.print("<BR>");
out.print("测试成功");
%>
</BODY>
</HTML>

2、Request对象

Request.setAttribute()与Request.getAttribute()方法实例(也可以使用forward建立请求关系):

主页面:

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<%@ include file="1.jsp" %>
你刚才输入的内容是:
<%=request.getAttribute("gr")%>

引入页面:

<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request对象使用实例</TITLE>
</HEAD>
<BODY>
<%
request.setAttribute("gr","123333");
%>
</FORM>
</BODY>
</HTML>

Request.getParameter()方法实例

主页面

<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getParameter()方法使用实例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" NAME="submit" value="提交">
<INPUT TYPE="reset" NAME="reset" value="清除">
</FORM>
</FORM>
</BODY>
</HTML>

引入页面

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
你刚才输入的内容是:<BR>
<%=request.getParameter("gr1")%><BR>
<%=request.getParameter("gr2")%><BR>
<%=request.getParameter("gr3")%><BR>

Request.getParameterName()方法实例

主页面

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> request.getParameterName()方法使用实例</TITLE>
</HEAD>
<BODY>
<FORM METHOD=post ACTION="2.jsp">
<INPUT TYPE="text" NAME="gr1"><BR>
<INPUT TYPE="text" NAME="gr2"><BR>
<INPUT TYPE="text" NAME="gr3"><BR>
<INPUT TYPE="submit" value="提交">
<INPUT TYPE="reset" value="清除">
</FORM>
</FORM>
</BODY>
</HTML>

指向页面

<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
你刚才输入的内容是:<BR>
<%
Enumeration e=request.getParameterNames();
while(e.hasMoreElements()){
String parameterName=(String)e.nextElement();
String parameterValue=(String)request.getParameter(parameterName);
out.print("参数名称:"+parameterName+"<BR>");
out.print("参数内容:"+parameterValue+"<BR>");
}
%>

Request.getAttributeName()方法实例

主页面:

<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> request.getAttributeName()方法使用实例</TITLE>
</HEAD>
<BODY>
<jsp:include page="2.jsp" flush="true"/>
<%
Enumeration e=request.getAttributeNames();
while(e.hasMoreElements()){
String attributeName=(String)e.nextElement();
String attributeValue=(String)request.getAttribute(attributeName);
out.print("变量名称:"+attributeName);
out.print("变量内容:"+attributeValue+"<BR>");
}
%>
</FORM>
</FORM>
</BODY>
</HTML>


转向页面

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<%
request.setAttribute("gr1","111");
request.setAttribute("gr2","222");
request.setAttribute("gr3","333");
%>

request.getRemoteAddr()方法实例:

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> request.getRemoteAddr()方法使用实例</TITLE>
</HEAD>
<BODY>
<B>你的IP地址:</B>
<B><%=request.getRemoteAddr()%></B>
</FORM>
</FORM>
</BODY>
</HTML>

3、Response对象

response.setHeader()方法网页自动刷新实例:

<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> response刷新页面实例</TITLE>
</HEAD>
<BODY>
<%
response.setHeader("refresh","3");
out.println(new Date().toLocaleString());
%>
</BODY>
</HTML>

4、Application对象

在JSP服务器运行时刻,仅有一个Application对象,它由服务器创建,也由服务器自动清除,
不能被用户创建和清除。我们只能创建这个Appliation对象的同步拷贝。

setAttribute(),getAttribute()和removeAttribute()方法实例:

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Application对象方法实例</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
application.setAttribute("username",username);
application.setAttribute("password",password);
out.println(application.getAttribute("username")+"<BR>");
out.println(application.getAttribute("password")+"<BR>");
application.removeAttribute("password");
out.println(application.getAttribute("password")+"<BR>");
%>
</BODY>
</HTML>

getAttributeNames()方法实例:

<%@page language="java"
contentType="text/html;charset=gb2312"
import="java.util.*"
%>
<HTML>
<HEAD>
<TITLE> Application对象方法实例</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";

application.setAttribute("username",username);
application.setAttribute("password",password);

Enumeration enum=application.getAttributeNames();
while(enum.hasMoreElements()){
String attrName=(String)enum.nextElement();
out.println(attrName+"----"+application.getAttribute(attrName)+"<BR>");
}

%>
</BODY>
</HTML>


5、Session对象

当用户登陆网站,系统将为他生成一个独一无二的Session对象,用以记录改用户的个人信息
,一旦改用户退出网站,那么该Session对象将会注销。Session对象可以绑定若干个人信息或
者Java对象,不同Session对象的同名变量是不会相互干扰的。

getValue(String name)、putValue(String name)、removeValue(String name)、getValueNames()
、getCreationTime()、getId()、getLastAccessedTime()、getMaxInactiveInterval()、
setMaxInactiveInterval()方法:

主文件:

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session主页面</TITLE>
</HEAD>
<BODY>
<%
String username="rossini";
String password="126263";
session.putValue("username",username);
session.putValue("password",password);
%>
<A HREF="2.jsp">指向第二页</A>
</BODY>
</HTML>

转向页面1

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session转向页面1</TITLE>
</HEAD>
<BODY>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%><BR>
<%=pwd%><BR>
<%out.println("session create:"+session.getCreationTime());%><BR>
<%out.println("session id:"+session.getId());%><BR>
<%out.println("session last access:"+session.getLastAccessedTime());%><BR>
<%out.println("session 原来最大休眠时间:"+session.getMaxInactiveInterval());%><BR>
<%session.setMaxInactiveInterval(session.getMaxInactiveInterval()+1);%><BR>
<%out.println("session 最新最大休眠时间:"+session.getMaxInactiveInterval());%><BR
<%
String []name=session.getValueNames();
out.println("--------------"+"<BR>");
for(int i=0;i<name.length;i++)
{
out.println(session.getValue(name[i])+"<BR>");
}
%>
<%
session.removeValue("username");
%>
<A HREF="3.jsp">指向第三页</A>
</BODY>
</HTML>

转向页面2

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> Session转向页面2</TITLE>
</HEAD>
<BODY>
<%
String usr=(String)session.getValue("username");
String pwd=(String)session.getValue("password");
%>
<%=usr%><BR>
<%=pwd%>
</BODY>
</HTML>

invalidate()方法将会将会清除当前的session对象解除它和任何参数或者JAVA对象的绑定关系

实例略







简单的JSP计数器
实例:

主页面

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<HTML>
<HEAD>
<TITLE> JSP计数器 </TITLE>
</HEAD>
<BODY>
<div align="center"><font face="黑体" size="10">你是第<jsp:include page="11.jsp" flush="true"/> 位访客</font> </div>
</BODY>
</HTML>

引入页面

<%!protected int count=0;%>
<%=++count%>
JavaBean设计规范及实例
javaBean的设计规范:
一个javaBean类必须是一个公共类
一个javaBean类必须有一个空的构造函数
一个javaBean类不应有公共实例变量
持有值应该通过一组存取方法(getXxx和setXxx)来访问
实例:

package Show;
import java.sql.*;

public class DBconn{
private String sDBDriver="org.gjt.mm.mysql.Driver";
private String sConnStr="jdbc:mysql://10.1.1.79:3306/web?user=root&password=2676141";
private Connection conn=null;
private ResultSet rs=null;

public DBconn(){
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e){
System.out.println("DBconn():"+e.getMessage());
}
}

public String getsConnStr(){
return sConnStr;
}

public void setsConnStr(String sConnStr){
this.sConnStr=sConnStr;
}

public void executeUpdate(String sql)throws Exception{
sql=new String(sql.getBytes("GBK"),"ISO8859_1");
try{
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
stmt.executeUpdate(sql);
conn.close();
stmt.close();
}
catch(SQLException ex){
System.out.println("sql.executeUpdate:"+ex.getMessage());
}
}
public ResultSet executeQuery(String sql)throws Exception{
rs=null;
try{
sql=new String(sql.getBytes("GBK"),"ISO8859_1");
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
conn.close();
stmt.close();
}
catch(SQLException ex){
System.out.println("sql.executeQuery:"+ex.getMessage());
}
return rs;
}
}

Resin的使用和安装
Resin的使用和安装(网络文章)

一、Java Web服务器选择简介

在实际进行java Web项目实施的时候,我们可以采用的商业java Web服务器有Ibm WebSphere,Bea Web Logic

。这两种服务器功能齐全而强大,支持所有的java 服务容器标准,适合成品商业java Web应用的发布。但是

这两种服务器是商业服务器,价格昂贵,而且对系统资源要求极高。特别是Websphere 配置复杂,如果不配合

采用ibm Websphere Studio Application非常不适合开发。而且他们不同的版本对servlet.jar等javax组件和

jdk的要求不同。如Websphere 3.5所要求的servlet.jar 支持的是旧版本的javax.servlet.http.HttpSession

操作,不支持session.setAttribute() session.getAttribute()。

在开发或者学习过程中,有许多免费的轻型的Java Web服务器可以供我们选用,如Tomcat,Resin,Orion等等。

他们使用都很方便,占用资源也很少,适合开发中不断的调试;还可以和Jbuilder这样的集成开发工具集成使

用。根据实际开发中的情况来看,Jakata Tomcat 和Sun Java结合的最好,和其他应用服务器配合使用可支持

完整的j2ee标准,应用也很广泛。但是从Java 普遍存在的编码问题来看,还是Resin 解决的最好。还有从使

用的角度讲,个人认为Resin比Tomcat方便,而且Resin也可以结合Jbuilder6等ide使用。Resin强调使用Xml技

术,从Resin自己的HomePage使用xtp就可以看出来。

二、Resin的安装和配置

Resin 可以在 http://www.caucho.com/download/index.xtp 免费下载和使用。使用Resin开发或者学习是免

费的,但是如果把Resin作为收费产品发布是需要付费的。目前的版本是2.10。

下载Resin 时选择Archive Versions 中的 windows.zip的普通安装包resin-2.1.0.zip。

把该zip包解压到任何目录下面,如d: esin。以下介绍都假设Resin安装在d: esin下。进入d: esinin,

键入httpd,可以在命令行控制台下运行Resin服务器。此时弹出一个有start 和stop两个Radio按纽和一close

按纽的对话框。在这里可以看到Resin的运行信息。这些信息同时Resin可以在d: esinlog目录下面的

stdout.log 日志文件中察看到。如:

Resin 2.0.4 (built Thu Nov 15 17:56:24 PST 2001)
Copyright(c) 1998-2001 Caucho Technology. All rights reserved.
Starting Resin on Wed, 23 Jan 2002 14:41:47 +0800 (CST)

http listening to *:80
srun listening to haitaiserver:6802

点选stop,可以停止当前的Resin服务器进程;再点选start,又可以开启新的Resin服务器进程。关闭该对话

框,则回到Command 控制台的盘符提示状态下。如果在nt4或者win2k环境下,需要把Resin当成服务,只需要

在Command控制台的该目录下,键入 httpd ?install,就可以在管理工具的服务下面看到新增了一条Resin

Web Server的自动的服务。以后只要进入nt 4或者win2k,就可以启动Resin服务。该服务也可以像其他服务一

样设置成手动或者禁用状态。注意有的时候在安装完服务后,启动Resin,并不能看到自己写的Resin例程可以

被解析,浏览器显示服务器找不到错误。只要重新启动win2k或者nt,就能解决该问题。

下面简要介绍一下Resin服务器的配置。Resin服务器和大多数Java Web服务器一样,通过一个Xml文件配置。

进入d: esinconf目录,打开resin.conf,这是一个xml格式的文本。

这里面有很多标记,先查找到:<http-server>。在<http-server></http-server>标记对中的配置和resin的

Java Web 服务器有关。找到<app-dir>,在<app-dir></app-dir>标记对中的表示resin的根,相当于Apache的

htdocs 或者 IIS 的wwwroot。Resin自带http服务器,但是也可以不使用它,采用Apache 或者 IIS做http服

务器。这个在下面段落中会提到。

再查找<http port=´8080´/>标记,它可以这样配置<http host=´localhost´ port=´80´/>。host参数指定的

是服务器,port指定的是http端口,默认是localhost和8080。还有<srun host=´localhost´ port=´6802´/>

标记。这个是jsp和java Servlet的引擎配置。一般默认就可以了,除非6802端口已经被别的程序占用了。然

后,配置jdk。这个需要在classpath中设置。右键点击我的电脑,在系统特性的高级标签中,点击环境变量,

在系统变量中新建一个环境变量,变量名为classpath,值为jdk所在的目录;再新建另外一个环境变量,变量

名为path,值为javac.exe和java.exe所在的目录(在jdk所在的目录下面的bin目录下)。一般这样子配置以

后,Resin就可以使用了。在d: esindoc中(假设你的<appdir></appdir>对中的名称是doc,也就是根是

d:/resin/doc,而且你的<http host=´localhost´ port=´80´/>如左配置),随便写一个jsp文件,如可以写

个test.jsp文件,内容为<%=1+2+3%>。然后,在浏览器中,键入http://localhost/test.jsp。如果你可以看

到浏览器显示6,则表示Resin服务器已经可以正常运行了。注意,修改配置后,一般重新启动resin才能看到

变化。

三、Resin使用简介

使用Resin开发Java Web项目时,需要建立自己的WebApp。这里不介绍Resin Cmp/Ejb的开发和使用,只介绍用

Resin开发普通的jspjava servlet项目。在这里还要谈到resin.conf的配置。Resin中的应用可以有2种方式

发布:一是在Resin的目录下发布;二是打包成War发布。

1、在Resin的目录下发布

在resin.conf中查找<web-app>标签,该标签表示一个web应用。

标签中,id属性表示该应用的Web路径。如<web-app id=´/test´>,表示该应用在Web上访问的时候应该用

http://hostname/test/来访问。app-dir属性表示该应用的实际路径。如

<app-dir>d: esindoc est</app-dir>表示该应用在d: esindoc est目录下面。默认值为根下面的和id

同名的目录。Resin可以配置3种error-page:404错误也就是文件找不到错误页;Exception违例页;不能连接

java引擎页。他们分别可以这样子设置。

404文件找不到页

<web-app id=´/app1´>
<error-page error-code=´404´ location=´/file_not_found.jsp´/>
</web-app>

Exception 违例页

<web-app id=´/foo´>
<error-page exception-type=´java.lang.NullPointerException´
location=´/nullpointer.jsp´/>
</web-app>

不能连接到srun Servlet引擎错误页

该页设置和应用无关,属于服务器的设置。

<http-server>
<error-page exception-type=´connection´
location=´/missing_file.html´/>
</http-server>

classpath的设置

参见下面的语句:

<classpath id=´WEB-INF/classes´ source=´WEB-INF/src´ compile=´true´/>

id参数的值表示classpath中编译后的class的存放路径;source参数的值表示classpath中java源代码的存放

路径;compile中的值可能是true或者false,表示是否由Resin的srun自动编译java源代码。Classpath的设置

一般和javaBean或者Servlet的使用有关。id的值表示javaBean的编译好的包存放的根,source的值表示

javaBean的java源代码存放的根。Servlet相同。

Servlet的设置

参见下面的语句:

<servlet-mapping url-pattern=´*.xtp´ servlet-name=´xtp´/>
<servlet-mapping url-pattern=´*.jsp´ servlet-name=´jsp´/>
<servlet-mapping url-pattern=´/servlet/*´ servlet-name=´invoker´/>

一般就是指定那些需要通过srun的解析。比如在这里,把*.jsp改成*.jss,其他不变,那么只要在访问时遇到

*.jss的文件就和原来遇到*.jsp一样处理。通过这个可以指定解析的引擎,如以下的配置:

<servlet-mapping url-pattern=´*.xtp´ servlet-name=´com.caucho.jsp.XtpServlet´/>

在Servlet中,也可以指定servlet。如

<servlet servlet-name=´hello´ servlet-class=´test.HelloWorld´/>
<servlet-mapping url-pattern=´/hello.html´ servlet-name=´hello´/>

在servlet-mapping中有个重要的参数case-sensitive 如果在windows上,最好配置成false,忽略大小写,从

而和windows的约定一致。

Session的配置

参见如下的配置语句:

<session-config>
<session-max>4096</session-max>
<session-timeout>30</session-timeout>
<enable-cookies>true</enable-cookies>
<enable-url-rewriting>true</enable-url-rewriting>
<file-store>WEB-INF/sessions</file-store>
</session-config>

session-max :最大 session数量
session-timeout :session过期时间,以分钟为单位。

是否允许cookie :指session是否采用cookies。如果采用cookies,浏览器必须支持session才能使用,发布

时建议改成false。enable-url-rewriting和enable-cookies一般配合使用。如果enable-cookies是false,

enable-url-rewriting应该设成true比较合适。

file-store :该配置指示服务器是否把session作为文件存放在服务器上。如果把该项注释掉,则在你的

web-app目录下的WEB-Inf/sessions目录不保存序列化后的session对象。Session还有jdbc-store配置,对应

着把session通过jdbc永久保存在数据库中。其实也就是会话变量的序列化后的保存和重新载入的物理实现。
在这里session还支持了多服务器的设置问题,

通过tcp-store参数设置。由于涉及到负载平衡的问题,在这里不详细叙述,只简单写一个例子:

<http-server>

<http id=´a´ port=´80´/>
<srun id=´a´ host=´host-a´ port=´6802´/>

<http id=´b´ port=´80´/>
<srun id=´b´ host=´host-b´ port=´6802´/>

<host id=´´>
<web-app id=´´>

<session-config>
<tcp-store/>
<always-load-session/>
</session-config>
</web-app>
</host>

</http-server>

这个例子表示session是按照tcp ring的方式传递。

temp-dir 的设置

temp-dir指的是应用的临时目录。也就是在javax.servlet.context.tempdir中用到的目录。模认是应用目录

下的WEB-INF mp目录。

以上的设置都可以在<web-app>标签对中设置,控制某个web应用的设置。

2、打包成War发布

以下是介绍对如何在resin下使用已经打包成War的java Web应用进行发布。

其实这个是最简单也是最清晰的良好方法。在j2ee中,所有的项目都打包成ear发布。其中,Web应用打包成

war,ejb应用打包成jar。在resin中,这些都可以直接部署。这里我只对打包成war的Web应用的部署做介绍。

在resin.conf中,查找这个:<war-dir id=´webapps´/>。他表示war文件应该被拷贝的路径。这里指的是相对

于resin的安装路径,如以上的设置表示d: esinwebapps。只要重新启动Resin就可以了。Resin会把该war自

动解包到webapps目录下。你可以在command控制台或者stdout.log中看到类似于

[2002-04-27 09:56:21.680] initializing application http://haitaiserver:8080/rwtest 的语句。这个

表示该Web应用是自动安装的。只要这个应用是符合j2ee标准的Web应用,应该不会有问题。通过如上显示的路

径就可以访问到这个应用。如果你到d: esinwebapps wtest中浏览,你会看到Resin已经为你生成了rwtest

目录,下面是META-INF和WEB-INF还有你自己的JSPservlet 文件和目录。是完全符合j2ee的结构的。你可以

在rwtest目录下建立新的jspservlet,一样可以被编译和解析并运行的。在实际操作中,可以使用Jbuilder

或者 WebSphere等Ide工具进行集成调试和打包,非常的方便。 四、使用Resin进行java Web项目的开发和调试

这里篇幅有限,不可能讲太多,我只对实际中最有用的部分做介绍。

Resin中如果定义了错误页,则出错后最常见的一大串Exception不会被看到,直接跳转到错误页。所以建议开

发中先不设置错误页。jsp错误中最常见的就是Nullpoint Exception,其次是名称的拼写错误。错误也可以在

Resin安装目录下的log目录下的stderr.log中找到。通过对该log文件的分析可以看到很多有用的错误信息。

在调试jsp的时候,如果定义了compile为true,jsp先被翻译成Servlet的java文件,再被编译成class文件。

可以在你自己的work目录中找到该文件。java的名称在Resin中是这样子定义的:原先的jsp文件名前加下划线

,再加上_jsp这个字样。所以在java 应用中的命名不要以_jsp结尾,也不要出现中文名称等字符;其实名称

以_jsp为开头也是不合法的。

关于java对多国语言的支持问题,在Resin中得到了很好的解决。以jsp为例,参考Resin自动生成的java

Servlet文件。只要在任何的jsp文件的最开始处增加:

<% @page contentType="text/html;charset=gb2312" %>

中文问题就解决了。察看生成的Servlet源文件片断:

response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("GB2312");

以上为设置字符集

private static byte[] _jsp_string26;
private static byte[] _jsp_string27;

_jsp_string26 = " </table> <table class="type"> <tr> <td>".getBytes("GB2312");
_jsp_string27 = " </td><td> </tr> <!-- <tr> <td> ".getBytes("GB2312");

以上是对页面的显示的编码。其中,getBytes("gb2312")是静态编码,这是Resin为了解决某些环境下还是不

能正常显示而设置的。在Resin的配置文件(/conf/resin.conf)中,可以通过设置<jsp precompile=´true´

static-encoding=´false´ recompile-on-error=´true´/>中的static-encoding属性为true或者false,来控

制是否静态编码。其实在Resin容器的内部,所有的字符都是按照iso-8859-1来处理的。iso-8859-1是一个大

字符集,虽然中文的gb2312和8859在字的定义上有不同,但是编码是包容了gb2312的。按照解决多国语言的方

法,在纯英文平台上用iso-8859-1处理内部编码,而把字符的显示推向客户端的机器。所以这样只要编码是正

确的,在页面上显示中文就不存在问题。Tomcat3.2不方便的地方是Tomcat对数据库的操作中文支持不好,需

要手动在java Bean或者Servlet中硬编码。通过测试,在Resin中完全没有这个问题。Tomcat4.0解决了这个问

题。不过个人习惯来讲还是觉得resin在配置方面方便一些。

在Resin中可以自动解决引入的jar。这个在使用特殊的类或者第三方提供的开发包非常有用。方法非常简单:

只要把该jar或者是zip拷贝到Resin安装目录下的lib目录下面,重新启动Resin,就可以了。如db2用到的

db2java.zip文件,只要轻松拷贝到d: esinlib中就可以了。

Resin提供了对Jbuilder的集成调试。可以到:

http://www.caucho.com/projects/jbuilder/resin-jbuilder.jar免费下载到resin的jbuilder的ide扩展包。

然后,把该包该名成:resin-jbuilder.jar,拷贝到jbuilder6libext目录下。然后,把Resin2.1解包安装

在jbuilder6 esin-2.1目录下,就可以了。打开任何的War项目,在project上点右键,选择properties,选

择Servers标签。在原来的选择框上,就可以看到多了一项Resin2.1。这样子就可以象原来用tomcat一样调试

jspservlet了,而且比Tomcat更方便。调试方法和用Tomcat调试一样。

五、其他问题

使用Resin可以和apache结合使用。也就是利用apache做http服务器,而Resin做srun服务器。可以参考

resinconfsamples目录下的apache.conf。主要就是把 app-dir 设成 /usr/local/apache/htdocs(也就是

apache的root)。同时在apache 中的http.conf也做了相应的设置。Resin还提供了对该过程的自动安装程式

,运行resininsetup,你可以在弹处的对话框中选择apache,这样子就可以了。只要你曾经安装过apache

,resin可以自己找到httpd.conf文件所在的路径。

使用命令行方式启动Resin,如果改动了Resin.conf,Resin会自己重新启动适应新的配置。这个很适合初期安

装时使用。

Resin对数据库缓冲池的支持很好。在这里,它提供了DBPool对缓冲池做了封装。实际使用时,只要在

resin.conf这样配置:

<dbpool.sql>

  <id>ORCL</id>
  <driver>oracle.jdbc.driver.OracleDriver</driver>
  <url>jdbc:oracle:thin:@localhost:1521:SMTH</url>

  <!-- <url>jdbc:oracle:oci8:@SMTH</url> -->

  <user>scott</user>
  <password>tiger</password>

  <max-connections>5</max-connections>

</dbpool.sql>

然后,在你的jsp或者servlet中就可以这样子使用了:

先导入 com.caucho.sql.*包,然后如下直接得到连接:

Connection conn = DBPool.getPool("ORCL").getConnection();

个人建议不要如上使用连接池,还是按照ejb的方法用从Context中直接找到的DataSource对象中得到连接通用

性比较好。代码也很简单:

Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup(“jdbc/EmployeeDB”);
Connection conn = ds.getConnection();

在Resin中如下配置jdbc就可以了:

<resource-ref>
<res-ref-name>jdbc/EmployeeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.caucho.jdbc.mysql.Driver"/>
<init-param url="jdbc:mysql_caucho://localhost:3306/test"/>
<init-param user="name"/>
<init-param password="password"/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>

在Resin中conf中resin.conf中配置默认主页就可以了:

<welcome-file-list>index.jsp, index.html,index.xtp</welcome-file-list>



用Resin Web Server开发还是比较愉快的。只是没有像Weblogic 或者WebSphere那样子提供现成的管理控制台而已。但是从稳定性和方便性来讲,Resin个人认为比Tomcat要好很多。况且Resin还有提供了resin-cmp 和 resin-ejb,功能更强大。

女人的美与男人的心

对一个年轻貌美女孩的追求,很能激发一个男人的进取心

古人云:未见好学如好色者也

真知灼见
JSP标准语法

1、JSP的注释语法:

<%--comments--%>

其中,comments是你可以添加的任意文本注释,但是不能使用“--%>”,
如果非使用不可,请用“--%\>”

实例:
<%--
FileName:helloworld.jsp
Author:rossini
Date:2004-1-29
Note:显示一个"Hello World!"信息
--%>
<html>
<head>
<title>JavaServer Pages Sample-Hello World!</title>
</head>
<body>
<%
out.print("Hello World!");
%>
</body>
</html>

2、JSP的声明语法:

<%!declarations;... ;%>

(a)在JSP中使用到的变量和函数必须事先声明,并以分号“;”结尾
(b)在JSP声明中允许一次声明多个变量
(c)在JSP声明中,不但可以声明变量,还可以声明函数或者自定义类
(d)你可以直接使用在include编译指令中被包含进来的已经声明的变量
和方法,不能在当前的JSP程序中对它们进行重新进行声明;JSP声
明的作用范围是页面层的,一个声明只在一个页面有效;如果想在
每个页面都使用一些声明,最好把他们写在一个单独文件里面,然
后用include编译指令或者是<jsp:include>操作指令包含进来

实例:
<html>
<head>
<title>JavaServer Pages Sample-Declarations</title>
</head>
<body>
<%!String msg="变量声明";%>
<H1><%=msg%></H1>
</body>
</html>

3、JSP表达式语法:

<%=JAVA表达式%>

JAVA表达式是一个值,转换成字符串后插入到页面中,不能用分号(;)
来作为JAVA表达式的结束符。一个表达式可以变的很复杂,它可能由
多个合法的JAVA表达式组成,这些表达式执行顺序是从左到右。如果
一个表达式的结果不能转化为String类型,将会导致错误发生。

实例:
<html>
<head>
<title>JavaServer Pages Sample-Declarations</title>
</head>
<body>
<%!String msg="变量声明";%>
<H1><%=msg%></H1>
</body>
</html>

4、JSP程序段语法:

<% 程序段%>

(a)程序段中只能包含合法的JAVA语法的代码,不允许出现HTML标记,
JSP标记,JSP指令等元素。但是可以使用“<%”,“%>”标记,交错
使用JAVA代码、HTML标记。
(b)程序段中对变量的声明最好进行初始化,否则有些服务器可能会出错。

实例:
<html>
<head>
<title>JavaServer Pages Sample-dribs and drabs</title>
</head>
<body>
<%
String words="welcome!";
int font_size=0;
for(int i=0;i<8;i++){
%>
<FONT SIZE=<%=++font_size%>><%=words.charAt(i)%></FONT>
<%
}
%>
</body>
</html>

5、JSP编译指令PAGE:

<%@ page
language="java" //指出使用的语言是JAVA,这既是缺省的又是唯一合法选项
import="package.class1,...,package.classN" // 用于引入程序中需要使用的JAVA
//程序包,多个包之间用逗号分割
contentType="text/html;charset=gb2312" //制定输出的MIME类型
errorPage="URL" //指定一个JSP页面来处理任何当前页面并未处理的意外错误
isErrorPage="true | false" //该属性指示当前页面是否可以作为其他页面的错误处理
//页面,默认值false
isThreadSafe="true | false" //值为false表示Serverlet以单线程模式工作,值为true表示
//多个请求被一个Serverlet并行处理,默认值true
session="true | false" //true表示session可用,false表示session不可用
buffer="size | none" //确定out对象输出缓冲大小,默认大小为8KB
autoflash="true | false" //默认值为true,表示当缓冲满时将自动清空
extends="package.class" //指出将要生成的serverlet使用哪个超类
info="message" //定义当前JSP文件的一些相关信息,如作者,功能描述等
%>

实例:
<%@ page language="java"
import="java.util.*"
contentType="text/html;charset=gb2312"
%>
<html>
<head>
<title>JavaServer Pages Sample-Page你好</title>
</head>
<body>
<%=(new Date()).toLocaleString()%>
</body>
</html>

6、JSP编译指令INCLUDE:

<%@ include file="relativeURL" %>

include指令用于在JSP文件转换成Serverlet时引入一个静态文件,这个文件可以是JSP
和HTML以及文本文件等。许多网站的每个页面都有一个同样的导航条,为了避免重复
,可以单独编写一个页面来描述这个导航条,然后利用include指令把这个文件包含在
每个主页面里。不过这种方法有一个缺点,因为这个导航条是在页面被编译时插入的
,如果导航条改变了,那么每个包含这个导航条的页面都必须重新编译。因此,如果
导航条经常改变,应该使用jsp:include动作来实现。

实例:

主文件(index.jsp)

<html>
<head>
<title>JavaServer Pages Sample-include</title>
</head>
<%@ page language="java"
contentType="text/html;charset=gb2312"
%>
<body>
<H1>当前时间</H1>
<%@ include file="time.html"%>
</body>
</html>

引入文件(time.html)

<%=(new java.util.Date().toLocaleString())%>

7、JSP操作指令INCLUDE(此操作指令的中文参数传入问题还没有解决):

<jsp:include page="relativeURL | <%=expression%>" flush="true"/> 或者

<jsp:include page="relativeURL | <%=expression%>" flush="true">
<jsp:param name="parameterName" value="parameterValue | <%=expression%>"/>
</jsp:include>

include动作的目的是把其他文件的正文插入到这个程序中来,在一定程度上重用代码,过度使
用会降低执行效率。前面已经介绍过include指令,它是在jsp文件被编译时引入文件,当被引入
文件做过修改,也不需要重新编译主jsp文件。

page="relativeURL | <%=expression%>" 指定需要包含文件的相对路径,可以使用jsp表达式
动态生成需要包含文件的相对路径。

flush="true" 此属性的值必须为true。

<jsp:param name="parameterName" value="parameterValue | <%=expression%>"/> 能为
引入文件传递参数。

实例:

主页面

<%@ page language="java"
contentType="text/html;charset=gb2312"
%>
<html>
<head>
<title>Include Actions</title>
</head>
<body>
<H1>带参数引入页面</H1>
<jsp:include page="11.jsp" flush="true">
<jsp:param name="gr1" value="aaabbb"/>
<jsp:param name="gr2" value="rossini"/>
</jsp:include>
</body>
</html>

引入页面

<%
String gr1=request.getParameter("gr1");
String gr2=request.getParameter("gr2");
out.print(gr1);
out.print(gr2);
%>

8、JSP操作指令FORWARD:

<jsp:forward page="relativeURL | <%=expression%>"/> 或者

<jsp:forward page="relativeURL | <%=expression%>">
<jsp:param name="parameterName" value="parameterValue | <%=expression%>"/>
</jsp:forward>

改动作把请求转到另外的页面,</jsp:forward>后面的代码将不能执行,因为已经转到其他
页面上去了,所以后面的代码不会被执行的。

实例:

主页面

<%@ page language="java"
contentType="text/html;charset=gb2312"
%>
<html>
<head>
<title>Forward Actions</title>
</head>
<body>
<jsp:forward page="11.jsp">
<jsp:param name="gr1" value="rossini"/>
<jsp:param name="gr2" value="126263"/>
</jsp:forward>
</body>
</html>

转到页面

<%
String gr1=request.getParameter("gr1");
String gr2=request.getParameter("gr2");
out.print(gr1+"#");
out.print(gr2);
%>

9、JSP操作指令PLUGIN

<jsp:plugin
type="bean | applet"
code="classFileName"
codebase="classFileDirectoryName"

name="instanceName"
archive="URIToArchive,..."
align="bottom | top | middle | left | right"
height="displayPixels"
width="displayPixels"
hspace="leftRightPixels"
vspace="bottomTopPixels"
jreversion="JREVersionNumber | 1.1"
nspluginurl="URLToPlugin"
iepluginurl="URLToPlugin" >

<jsp:params>
<jsp:param name="parameterName" value="paramValue | <%=expression%>"/>
</jsp:params>

<jsp:fallback> text massage for user </jsp:fallback>

</jsp:plugin>

jsp:plugin动作用来根据浏览器的类型,插入通过java插件运行Applet所必须的OBJECT
或embed元素。

type="bean | applet"插件将执行的对象类型,用户必须在Bean和Aplet中指定一个。
code="classFileName"插件将执行的java类文件名称,在名称中必须包含扩展名。
codebase="classFileDirectoryName"插件将执行的java类文件的路径,默认与JSP文件
在同一个文件夹下
name="instanceName"Bean或Applet的实例名称,使得被同一个JSP文件调用的Bean或
Applet之间的通信成为可能
archive="URIToArchive,..."以逗号分隔的路径名列表,这些路径名用于预装一些将要使用
的class,这会提高applet的性能。


实例:

<%@ page
language="java"
contentType="text/html;charset=gb2312"
%>
<html>
<title>Plugin 实例</title>
<body bgcolor="white">
<h3> 当前的时间是 : </h3>
<jsp:plugin
type="applet"
code="Clock2.class"
codebase="/guorui"
name="time1"
jreversion="1.2"
width="160"
height="150" >
<jsp:fallback>
Plugin tag OBJECT or EMBED not supported by browser.
</jsp:fallback>
</jsp:plugin>
</body>
</html>

10、jsp:useBean操作指令:

<jsp:useBean id="beanInstanceName" scope="page | request | session | application" class="package.class"/>

该动作用来装载一个将在JSP页面中使用的JavaBean,其含义是创建一个package.class的
实例,然后把它绑定到变量ID上,并使用scope定义Bean的作用范围。

获得Bean的实例之后,要修改或获取Bean的属性就变得很重要

<jsp:setProperty name="beanInstanceName"
property="*" | property="propertyName" | property="propertyName" param="paramName" |
property="propertyName" value="string | <%=expression%>"/>

如果property的值是"*",表示所有名字和Bean属性名字匹配的请求中的参数都将传递给相应属性的set()
方法。
如果property的值是"propertyName",表示所有名字和Bean的propertyName属性名字匹配的请求中的参数都将传递给propertyName属性的set()方法。
如果使用property="propertyName" param="paramName"方式,则用指定的请求参数作为Bean指定属性
的值。

<jsp:getProperty name="beanInstanceName" property="propertyName"/>

这个动作提取指定bean属性的值,转换成字符串然后输出。

实例:

主页面:

<%@page language="java"
contentType="text/html;charset=gb2312"
%>
<%!private int aa=0;%>
<HTML>
<HEAD>
<TITLE> JavaBean使用实例 </TITLE>
</HEAD>
<BODY>
<jsp:useBean id="test" scope="page" class="test.testBean"/>
1输入变量值:
<jsp:setProperty name="test" property="test1"/>
<form method="get">
<input type="text" name="test1" size="25">
<input type="submit" value="确定">
<input type="reset" value="清除">
<P>
你刚才输入的内容是:
<jsp:getProperty name="test" property="test1"/>
<P>
2输入变量值:
<jsp:setProperty name="test" property="*"/>
<form method="get">
<input type="text" name="test2" size="25">
<input type="submit" value="确定">
<input type="reset" value="清除">
<P>
你刚才输入的内容是:
<jsp:getProperty name="test" property="test2"/>
<P>
3输入变量值:
<jsp:setProperty name="test" property="test3" param="guorui"/>
<form method="get">
<input type="text" name="guorui" size="25">
<input type="submit" value="确定">
<input type="reset" value="清除">
<P>
你刚才输入的内容是:
<jsp:getProperty name="test" property="test3"/>
<P>
<jsp:setProperty name="test" property="count" value="<%=++aa%>"/>
你登陆的次数是:
<jsp:getProperty name="test" property="count"/>
</BODY>
</HTML>

JavaBean源码:

package test;

public class testBean{
private String test1="呵呵,还没有输入内容呢!!";
private String test2="嘻嘻,还没有输入内容呢!!";
private String test3="嘿嘿,还没有输入内容呢!!";
private String test4="哈哈,还没有输入内容呢!!";
private int count=0;

public testBean(){}

public void setCount(int s){
this.count=s;
}
public int getCount(){
return this.count;
}

public void setTest1(String s){
this.test1=s;
}
public String getTest1(){
return this.test1;
}

public void setTest2(String s){
this.test2=s;
}
public String getTest2(){
return this.test2;
}

public void setTest3(String s){
this.test3=s;
}
public String getTest3(){
return this.test3;
}

public void setTest4(String s){
this.test4=s;
}
public String getTest4(){
return this.test4;
}
}
zzw0598 发表于:2005.04.01 09:35 ::分类: ( java开发 ) ::阅读:(111283次) :: 评论 (27)
[url=][/url] [回复]

[url=][/url]

ajhum 评论于: 2008.01.02 20:16
hmm... [url=][/url] [url=][/url] [url=][/url] [url=][/url] ... [回复]

hmm...
[url=][/url]
[url=][/url]
[url=][/url]
[url=][/url] ...

nolj 评论于: 2008.02.20 00:29
downloads of ringtones ringtones downloads [回复]

this.value

Googlegs 评论于: 2008.04.20 18:15
sexy black breast homosexuel [回复]

this.value

tJZggDXsdcwEr 评论于: 2008.08.12 01:55
If You want to delete your site from my base [回复]

to: Admin - If You want to delete your site from my spam list, please sent url of your domain to my e-mail: stop.spam.today@gmail.com
And I will remove your site from my base within 24 hours
webmastegz

integoatopype 评论于: 2008.11.17 12:55
re: jsp对象的简单介绍 [回复]

[url=http://www.tvlinkvault.com/forums/profile.php?mode=viewprofile&u=82000]Remko[/url]
Science and art have that in common that everyday things seem to them new and attractive
foliposterhus

foliposterhus 评论于: 2009.04.16 08:15
60 chevrolet for sale 4x4 [回复]

[url=http://tsdna6gt.hostevo.com/60_chevrolet_for_sale_4x4.html]60 chevrolet for sale 4x4[/url]
No honest man will argue on every side
voldonmartek

voldonmartek 评论于: 2009.04.22 02:34
chevrolet chevelles project car for sale [回复]

[url=http://q88yfltjqj.hostevo.com/chevrolet_chevelles_project_car_for_sale.html]chevrolet chevelles project car for sale[/url]
Silence is one of the hardest arguments to refute.
jokilpatis

jokilpatis 评论于: 2009.04.22 05:19
trucks dodge trader classic [回复]

[url=http://th9j7h0lqq.007sites.com/trucks_dodge_trader_classic.html]trucks dodge trader classic[/url]
He doesn't make sense. I don't make sense. Together we make sense.
liliportus

liliportus 评论于: 2009.04.22 07:53
It's for any zzw0598.itpub.net visitors... [回复]

This site is very cool throughout the Internet by a hot girl [url=http://king-xxx.blogspot.com/][color=red][b]Clik[/b][/color][/url]

dabcofsabomia 评论于: 2009.04.29 03:11
小时甚至连海 [回复]

pcvdyxomr-->出门口的时候盆会混叫估计

smeycan 评论于: 2009.08.04 16:19
srthsarthsuu [回复]

http://jgfuyouopp.com/

HoiplellLibly 评论于: 2009.10.31 22:14
sretjkeu [回复]

http://jgrtyjp.com/

dupPommaBup 评论于: 2009.11.01 17:38
dor3.txt;10;15 [回复]

dor3.txt;10;15

cqweaas 评论于: 2010.01.22 12:47
dor4.txt;10;15 [回复]

dor4.txt;10;15

cqweaas 评论于: 2010.01.22 14:46
005.txt;10;15 [回复]

005.txt;10;15

cqweaas 评论于: 2010.01.22 16:36
006.txt;10;15 [回复]

006.txt;10;15

cqweaas 评论于: 2010.01.22 18:16
011.txt;10;15 [回复]

011.txt;10;15

cqweaas 评论于: 2010.01.23 02:30
012.txt;10;15 [回复]

012.txt;10;15

cqweaas 评论于: 2010.01.23 04:05
013.txt;10;15 [回复]

013.txt;10;15

cqweaas 评论于: 2010.01.23 05:44
023.txt;10;15 [回复]

023.txt;10;15

cqweaas 评论于: 2010.01.23 21:54
025.txt;10;15 [回复]

025.txt;10;15

cqweaas 评论于: 2010.01.24 00:58
027.txt;10;15 [回复]

027.txt;10;15

cqweaas 评论于: 2010.01.24 03:56
039.txt;10;15 [回复]

039.txt;10;15

cqweaas 评论于: 2010.01.25 04:23
where to puchase cheapest pills online In our SHOP [回复]

[url=http://www.naturalpath.com/online-pharmacies-abana/buy-cheap-abana-online-now]buy Abana[/url]
where to buy Abana online http://www.naturalpath.com/online-pharmacies-abana/buy-cheap-abana-online-now order Abana
[url=http://www.naturalpath.com/where-can-i-buy-brahmi-online/order-brahmi]buy brahmi[/url]
buy cod cheap brahmi http://www.naturalpath.com/where-can-i-buy-brahmi-online/order-brahmi Buy cheap Brahmi
[url=http://www.naturalpath.com/where-can-i-buy-mentat-without-prescription/buy-mentat]buy mentat[/url]
buy discount mentat http://www.naturalpath.com/where-can-i-buy-mentat-without-prescription/buy-mentat cheap mentat without prescription overnight delivery
[url=http://www.naturalpath.com/discount-purim/order-purim]PURIM[/url]
BUY CHEAP PURIM http://www.naturalpath.com/discount-purim/order-purim PURCHASE ONLINE BUY PURIM
[url=http://www.naturalpath.com/where-buy-styplon/buy-styplon]buy Styplon [/url]
buy Styplon online http://www.naturalpath.com/where-buy-styplon/buy-styplon uk order Styplon
[url=http://www.naturalpath.com/ordering-ophthacare-online/buy-ophthacare]buy ophthacare[/url]
ophthacare overnight saturday delivery http://www.naturalpath.com/ordering-ophthacare-online/buy-ophthacare order ophthacare
[url=http://www.naturalpath.com/order-cystone/buy-cystone-online-no-prescription]Cystone buy [/url]
Cystone with next day delivery http://www.naturalpath.com/order-cystone/buy-cystone-online-no-prescription where to puchase Cystone online

Cispsityarrip 评论于: 2010.02.10 05:14
FqTSaGNYUEVwyXXDe [回复]

comment5, indianapolis free black chat lines, jessica hecht anarchy tv, free leaf clipart, the majestic movie download, free antivirus software for windows 2000, economic news lethbridge, software download center products framework key, all natural tits, parents fuck babysitter, new moon movie producer, maple story computer game, land of the dead movie game, leet digital tv, lahaina news, nasogastric tube feeding, 1 free asian edge idol av, free bareback movies, toataly free adult chat, free itunes redeemable codes, wire schematics software, microsoft vitual software, x games bicycle 18, pine unit for tv and hifi, food bank software, junoon mp3 song free download,

Xmnnjxxe 评论于: 2010.02.10 05:43
Order zyprexa buying zyprexa uk. Cheap generic zyprexa substitutes. Zyprexa com newpatient. Sale zyprexa. Where can i buy zyprexa. [回复]

[size=5][b][center]The Best Quality Pills. Zyprexa Online Pharmacy! Buy Discount ZYPREXA - Order ZYPREXA -
[i][color="#FF0000"]THE LOWEST PRICES GUARANTEED, Fast And Discreet Shipping Worldwide! [/color][/i]
Cheap Zyprexa in our Pharmacy. Generic and Brand!
Save up to 80%. The Highest Quality ZYPREXA! Purchase ZYPREXA - Fast WoldWide Delivery! Save up to 80%. No prescription required. Absolutely Anonymously!
[/center][/b][/size]

[img]http://www.bog-apotheke.com/pilltab.gif[/img]
[url=http://www.bog-apotheke.com/gfeed/link/zyprexa/1_dor.html][img]http://www.bog-apotheke.com/gfeed/img/zyprexa/1_dor.png[/img][/url]
[url=http://www.bog-apotheke.com/gfeed/link/zyprexa/2_dor.html][img]http://www.bog-apotheke.com/gfeed/img/zyprexa/2_dor.png[/img][/url]
[url=http://www.bog-apotheke.com/gfeed/link/zyprexa/3_dor.html][img]http://www.bog-apotheke.com/gfeed/img/zyprexa/3_dor.png[/img][/url]
[url=http://www.bog-apotheke.com/gfeed/link/zyprexa/4_dor.html][img]http://www.bog-apotheke.com/gfeed/img/zyprexa/4_dor.png[/img][/url]
[url=http://www.bog-apotheke.com/gfeed/link/zyprexa/5_dor.html][img]http://www.bog-apotheke.com/gfeed/img/zyprexa/5_dor.png[/img][/url]
[url=http://www.bog-apotheke.com/gfeed/link/zyprexa/6_dor.html][img]http://www.bog-apotheke.com/gfeed/img/zyprexa/6_dor.png[/img][/url]

More information on Zyprexa you can find at these sites: [url=http://www.drugs.com]www.drugs.com[/url] and [url=http://en.wikipedia.org]en.wikipedia.org[/url]

lolipop org reserved right site some zyprexa
order zyprexa buying zyprexa uk
free zyprexa canada
zyprexa heart problems
generic softtabs zyprexa
zyprexa online sales
recent referrers zyprexa
brand drug generic name zyprexa
zyprexa overdose
review herbal zyprexa
zyprexa prescription online
referers top zyprexa
zyprexa 100 mg
generic zyprexa zyprexa
avoid fake zyprexa
get zyprexa without a prescription
discount zyprexa europe
avoid generic zyprexa
recreational zyprexa
zyprexa generic drug
zyprexa commercial video
where can i buy zyprexa
generic price zyprexa
drug side effects zyprexa
doctor online order zyprexa visit
where to buy zyprexa in uk
doses of zyprexa
purchase zyprexa uk
recreational use of zyprexa
dosage of zyprexa
best herbal zyprexa
buy cheapest online place zyprexa
canadian zyprexa online
zyprexa female sexual inhancement
dosage zyprexa
zyprexa cost uk
cheap online purchase zyprexa
free zyprexa sample
buy zyprexa cheap online
qoclick shop zyprexa
buying zyprexa
sell zyprexa online
erectile dysfunction zyprexa
zyprexa drug information zyprexa
zyprexa drug interactions
add a link zyprexa
alternative drug zyprexa
free prescription sample zyprexa
zyprexa lowest price
lawsuit zyprexa
cost zyprexa
generic overnight shipping zyprexa
mexico zyprexa
free online zyprexa
generic zyprexa softtabs
canadian pharmacy zyprexa
online zyprexa consultation
online sales zyprexa
medical report about zyprexa
canada zyprexa
free try zyprexa
medication online zyprexa
how does zyprexa work
genaric zyprexa
generic online pharmacy zyprexa
cheap pfizer zyprexa
generico zyprexa
what is zyprexa used for
zyprexa online order guide
order zyprexa zyprexa online
zyprexa suppliers in the uk
zyprexa without prescription
zyprexa and blindness
where can i buy zyprexa uk
zyprexa doseage
zyprexa expiration
does zyprexa woman
dose of zyprexa
zyprexa alternatives
discount zyprexa
generic soft zyprexa
discount online zyprexa
approved fda zyprexa womens
uk cheapest zyprexa
buy lvivhostcom online zyprexa zyprexa
zyprexa women
buy generic zyprexa online
drug generic generic zyprexa
drink energy zyprexa
geneic zyprexa
zyprexa prescription
get zyprexa
problem zyprexa vision
liqued zyprexa
price zyprexa viacreme
recreational zyprexa use
buy zyprexa uk
zyprexa without a prescription
mail online order zyprexa
ordering zyprexa
generic lowest price zyprexa
order zyprexa without prescription
price for generic zyprexa
zyprexa faqs
on line zyprexa
zyprexa and zyprexa together
zyprexa prescriptions online
buy from trackback zyprexa
female zyprexa cream
claus joke santa zyprexa
overnight zyprexa
effects long side term zyprexa
drug generic zyprexa
2005 comment december leave zyprexa
cheap prescription zyprexa
zyprexa wholesale
over the counter zyprexa alternative
online zyprexa prescription
chinese herbal zyprexa
zyprexa overnight shipping
congress zyprexa
cheapest generic price zyprexa
atenolol zyprexa
zyprexa new zyprexa
generic zyprexa
fill online prescription zyprexa
female spray zyprexa
referrers zyprexa
buy prescription zyprexa without
zyprexa side affects
zyprexa lawsuit
zyprexa pill splitter
zyprexa free consultation
sophia zyprexa
prescription order zyprexa online
zyprexa treatment migraine headache
generic name for zyprexa
free zyprexa sample pack
side effects of zyprexa
generic zyprexa zyprexa
santa claus zyprexa jokes
free zyprexa samples uk
buy cheapest online zyprexa
alternative herbal supplement zyprexa
erection zyprexa
in use zyprexa woman
zyprexa substitute
zyprexa premature
zyprexa high blood pressure
cheapest zyprexa online
cheapest generic substitute zyprexa
low price zyprexa
generic name zyprexa
lowest zyprexa price
zyprexa france
generic prescription zyprexa without
cheap phizer zyprexa
zyprexa and mexican jumping bean
uk zyprexa sales in the
zyprexa drugs
generic zyprexa caverta
zyprexa overnight delivery
zyprexa supplier
zyprexa drug company
zyprexa com newpatient
cost low zyprexa
safety zyprexa
expired zyprexa
buy online order zyprexa
caverta veega generic zyprexa
online store zyprexa
free generic sample zyprexa
buy no online prescription zyprexa
link myblogde online order zyprexa
zyprexa cheap prescription
linkdomain buy online zyprexa info domain buy onlin
female sexual inhancer zyprexa spray
zyprexa drug interaction
zyprexa pills
zyprexa buy do nu
zyprexa useage
zyprexa impotence pill
zyprexa sales uk
buy online zyprexa zyprexa
compare generic zyprexa prices
zyprexarecords
buy uk zyprexa
buy zyprexa where
is zyprexa safe for woman
natural alternative to zyprexa
celexa sexual side effects zyprexa
buy generic online zyprexa
buy zyprexa other drug online
mark martin zyprexa car
drug female new zyprexa
buy zyprexa online cheap
cheapest in uk zyprexa
citrate sildenafil zyprexa
prescription free zyprexa
herbal alternative to zyprexa
cheap pill zyprexa
generic zyprexa review
zyprexa prescription uk
home made zyprexa
money online order save zyprexa
zyprexa sample pack
buy free zyprexa on internet
is zyprexa safe for women
buy cheapest zyprexa
dysfunction erectile zyprexa
diovan zyprexa
zyprexa testimony
zyprexa discussion forum
last referrers zyprexa
generic meltabs zyprexa
buy and purchase zyprexa online
generic zyprexa reviews
zyprexa aphrodisiac
over the counter zyprexa alternatives
between zyprexa difference zyprexa
herbal zyprexa affiliate
mail order zyprexa online
generic mexican online over pharmacy phone zyprexa
online shop zyprexa
buy zyprexa internet
herbal alternative zyprexa
zyprexa sale online
natural suppliments work like zyprexa
online purchase zyprexa zyprexa
mitral valve prolapse zyprexa
zyprexa free pill
back comment index post review zyprexa
zyprexa canada online
funny picture zyprexa
impotence pill zyprexa
zyprexa and diabetes
cheap generic zyprexa substitutes
zyprexa pharmacy
buy sildenafil zyprexa
zyprexa ingredients
buy zyprexa without prescription
crohns disease zyprexa
try zyprexa for free
zyprexa cost
generic zyprexa.com
zyprexa grapefruit juice
zyprexa strip poker flash games
zyprexa cheap uk
bz generic zyprexa
buy later now pay zyprexa
discussion generic zyprexa
what happens when women take zyprexa
zyprexa zyprexa and
zyprexa commercial clips
free pack sample zyprexa
counter drug over zyprexa
natural over counter just like zyprexa stores
zyprexa kaufen
beitrag name text zyprexa
zyprexa online shop
zyprexa cheap online
order zyprexa online uk
generic zyprexa india
zyprexa libido
zyprexa generic brand
buy followup post zyprexa
zyprexa without a perscription
sale zyprexa
female use zyprexa
zyprexa dose riddim
zyprexa by mail order
cheapest zyprexa
order zyprexa prescription
alternative new zyprexa
cheap zyprexa
cheap molde ticket zyprexa
free trial zyprexa
natural zyprexa free samples
zyprexa dangerous
generic zyprexa from india
cheapest zyprexa in the uk
online zyprexa order
faq zyprexa
cheap zyprexa without prescription
mexican jumping bean zyprexa
discount zyprexa perscription drug
alternative baikalguide zyprexa
cheapest uk zyprexa
palmeiro zyprexa
herbal zyprexa alternative
lowest cost generic zyprexa
buy zyprexa
herbal zyprexa alternative review
cutter pill zyprexa
where can i buy zyprexa online
zyprexa online no prescription
date expiration zyprexa
uk zyprexa
aisha book com guest site zyprexa
safe internet shopping generic zyprexaeng

[url=]like pill zyprexa[/url]
[url=]free zyprexa for woman[/url]
[url=]buy locally zyprexa[/url]
[url=]over the counter zyprexa[/url]
[url=]zyprexa online cheap[/url]
[url=]drug like zyprexa[/url]

PillenTake 评论于: 2010.02.10 05:58

发表评论
标题

在此添加评论
表情符号: smile laughing tongue angry crying sad wassat wink

称呼

邮箱地址(可选)

个人主页(可选)




自我介绍
切换风格
新闻聚合
博客日历
文章归档...
最新发表...
博客统计...
Blog信息
网站链接...