<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[阿权的书房]]></title> 
<link>http://www.aslibra.com/blog/index.php</link> 
<description><![CDATA[技术经验分享，资料收集，偶尔晾几张相片，感言生活]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[阿权的书房]]></copyright>
<item>
<link>http://www.aslibra.com/blog/post/tomcat-add-host.php</link>
<title><![CDATA[tomcat建立虚拟主机]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Mon, 26 Jul 2010 11:35:24 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/tomcat-add-host.php</guid> 
<description>
<![CDATA[ 
	主要是另外增加一个HOST节点即可，便捷的查找方式：<br/><br/>找到以下节点 <br/><div class="code">&lt;/Engine&gt;</div><br/>在前面加上：<br/><br/><div class="code">&lt;Host name=&quot;www.aslibra.com&quot; debug=&quot;0&quot; appBase=&quot;/home/jsp/www.aslibra.com&quot; unpackWARs=&quot;true&quot; autoDeploy=&quot;true&quot;&gt;<br/>&nbsp;&nbsp;&lt;Context path=&quot;&quot; docBase=&quot;.&quot;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&lt;Valve className=&quot;org.apache.catalina.valves.AccessLogValve&quot; directory=&quot;logs&quot;&nbsp;&nbsp;prefix=&quot;aslibra_access_log.&quot;<br/>&nbsp;&nbsp;suffix=&quot;.txt&quot; pattern=&quot;common&quot; resolveHosts=&quot;false&quot;/&gt;<br/>&nbsp;&nbsp;&lt;Logger className=&quot;org.apache.catalina.logger.FileLogger&quot; directory=&quot;logs&quot;&nbsp;&nbsp;prefix=&quot;aslibra_log.&quot; suffix=&quot;.txt&quot; timestamp=&quot;true&quot;/&gt;<br/>&lt;/Host&gt;</div><br/><br/>name 是域名，appBase是根目录<br/>日志选项也可以定义。<br/><br/>参考阅读更多细节：<br/><br/>1 <a href="http://www.7747.net/Article/200906/39179.html" target="_blank">Tomcat虚拟主机配置方案(域名解析)For Windows/Linux(最完全版)</a><br/>2 <a href="http://wenson.javaeye.com/blog/45546" target="_blank">关于Tomcat虚拟主机域名的设置</a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/tomcat/" rel="tag">tomcat</a> , <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/jsp_basic_skill_session_cookie_write_file.php</link>
<title><![CDATA[JSP小结一下]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Wed, 29 Apr 2009 13:30:33 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/jsp_basic_skill_session_cookie_write_file.php</guid> 
<description>
<![CDATA[ 
	折腾了几天，也算完成这点事情了，不容易啊。。<br/><br/>今天还碰到了类型转换的问题，发生错误了想着问问人，问星哥是否有小范同学的QQ，星哥说：“这些问题还要问，上网查一下就行了，jsp，int之类的” 忽然发现，星哥跟我一样，都有点倔强，小伙C++搞的也还不够火热，可也倔强的很多问题都要弄个清楚，我也折腾的有脾气了，倔强，非得解决了不可，有时候还不给自己问人，非得把它折腾出来不可，这坏脾气。。。<br/><br/>以初学者的身份小结一下：<br/><br/><strong>1 jar文件优先级和class文件位置（未解决）</strong><br/><br/>jar放置位置有好几个地方，有空一定得弄明白，目前对优先级还不太明确，小范同学做过jsp，好像也没留意此问题。<br/>但是有一点要注意，这个包引用的其它jar文件要放一个目录下，否则在别的地方找不来，java的机制蛮复杂。<br/>class文件放在 WEB-INF/classes/下，有一个问题还不太明白，是自身目录下的WEB-INF还是网站根目录的？<br/>似乎我的本地环境需要放置在网站根目录，服务器环境放在自身目录的？<br/>至少，发现找不到类定义时，可以从以上问题开始解决，也算是得益。<br/><br/><strong>2 设置jbuilder环境</strong><br/><br/>打开一个jpx项目文件，发现一堆的错误提示，怎么办？<br/>设置一下就好：<br/><br/><a href="http://farm4.static.flickr.com/3401/3485313007_f694b8f2ff_o.jpg" target="_blank"><img src="http://farm4.static.flickr.com/3401/3485313007_f694b8f2ff_o.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>设置library<br/><br/><a href="http://farm4.static.flickr.com/3311/3485313011_d25d7391a9_o.jpg" target="_blank"><img src="http://farm4.static.flickr.com/3311/3485313011_d25d7391a9_o.jpg" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>添加你的所有相关的jar文件即可<br/><br/>jbuilder似乎对UTF8文件不太支持，中文是乱码。另外，对于字符定位也很差劲，跟我的盗版有关？<br/>我只有在editplus里面编辑，切换过来会自动更新了，这点很聪明，然后可以编译成class，更新到服务器上即可。<br/><br/><strong>3 类型转换</strong><br/><br/>做PHP和js都不会有严格的类型定义，这里可不一样了，一点类型的问题都会导致错误。<br/><br/><strong>如何将字串 String 转换成整数 int? </strong><br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">1). int i = Integer.parseInt([String]); 或 <br/>i = Integer.parseInt([String],[int radix]);<br/><br/>2). int i = Integer.valueOf(my_str).intValue(); <br/><br/>注: 字串转成 Double, Float, Long 的方法大同小异</div></div><br/><br/>对于这个理解要注意，比如long类型是 Long.parseLong("23231")<br/>如果很长的数字用Integer.parseInt转换就会出错的，看不出问题，我也迷惑了，得小范同学提示以long解决<br/><br/><strong>如何将整数 int 转换成字串 String ? </strong><br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">1.) String s = String.valueOf(i);<br/><br/>2.) String s = Integer.toString(i); <br/><br/>3.) String s = "" + i; <br/><br/>注: Double, Float, Long 转成字串的方法大同小异</div></div><br/><br/><strong>4 cookie使用</strong><br/><br/>给个示例代码片段，我也还没知道最好的方式，那就这个不错啦：<br/><br/><div class="code">//cookie名称<br/>String cookieName = &quot;UserInfo&quot;;<br/><br/>String cookieValue = null;<br/>Cookie&#91;&#93; userCookie = request.getCookies();<br/><br/>//检查cookie值<br/>if(userCookie != null &amp;&amp; userCookie.length&gt;0)&#123;<br/>&nbsp;&nbsp;for(int i=0;i&lt;userCookie.length;i++)<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if (userCookie&#91;i&#93;.getName().equalsIgnoreCase(cookieName))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cookieValue = userCookie&#91;i&#93;.getValue();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/>//写Cookie<br/>Cookie uCookie = new Cookie(cookieName,&quot;http://www.aslibra.com/&quot;);<br/>response.addCookie(uCookie);<br/></div><br/><br/><strong>5 session的使用</strong><br/><br/>参考代码片段好了，这玩意不新鲜：<br/><br/><div class="code">String mySession = request.getParameter(&quot;mySession&quot;);<br/>if(mySession != null )&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(&quot;mySession&quot;, mySession);<br/>&#125;else&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;session.setAttribute(&quot;mySession&quot;, &quot;0&quot;);<br/>&#125;</div><br/><br/><strong>6 BASE64 编码和解码</strong><br/><br/>看例子吧，看的<a href="http://www.zhuoda.org/elite/34479.html" target="_blank">别人的文章</a>，但不是原出处，我也不知道出处了。<br/><br/><div class="code">// 将 s 进行 BASE64 编码 <br/>public static String getBASE64(String s) &#123; <br/>&nbsp;&nbsp;if (s == null) return null; <br/>&nbsp;&nbsp;return (new sun.misc.BASE64Encoder()).encode( s.getBytes() ); <br/>&#125; <br/><br/>// 将 BASE64 编码的字符串 s 进行解码 <br/>public static String getFromBASE64(String s) &#123; <br/>&nbsp;&nbsp;if (s == null) return null; <br/>&nbsp;&nbsp;BASE64Decoder decoder = new BASE64Decoder(); <br/>&nbsp;&nbsp;try &#123; <br/>&nbsp;&nbsp;&nbsp;&nbsp;byte&#91;&#93; b = decoder.decodeBuffer(s); <br/>&nbsp;&nbsp;&nbsp;&nbsp;return new String(b); <br/>&nbsp;&nbsp;&#125; catch (Exception e) &#123; <br/>&nbsp;&nbsp;&nbsp;&nbsp;return null; <br/>&nbsp;&nbsp;&#125; <br/>&#125;</div><br/><br/>要用的时候要引用两个类：<br/><br/><div class="code">import sun.misc.BASE64Encoder; <br/>import sun.misc.BASE64Decoder; </div><br/><br/>文中还有其他加密的内容，我没试过，就不介绍了。<br/><br/><strong>7 jsp追加的方式写文件</strong><br/><br/>内容参考自《<a href="http://blog.csdn.net/moshangchenzi/archive/2008/11/11/3270459.aspx" target="_blank">PrintWriter追加至文本文件</a>》，代码简化一下就是：<br/><br/><div class="code"><br/>//需要的两个类：<br/>//import java.util.*;<br/>//import java.io.*;<br/><br/>String fileName = &quot;/tmp/logs.txt&quot;;<br/>FileWriter fw = null;<br/>PrintWriter toFile = null;<br/>String info = &quot;info to write into file...&quot;;<br/>try &#123;<br/>&nbsp;&nbsp;fw = new FileWriter(fileName, true); //&nbsp;&nbsp;throw IOException<br/>&nbsp;&nbsp;toFile = new PrintWriter(fw); // throw FileNotFoundException<br/>&nbsp;&nbsp;toFile.println(info +&quot;&#92;n&quot;);<br/>&nbsp;&nbsp;toFile.close();<br/>&#125; catch (FileNotFoundException e) &#123;<br/>&nbsp;&nbsp;//System.out.println(&quot;PrintWriter error opening the file &quot; + fileName);<br/>&nbsp;&nbsp;//System.exit(0);<br/>&#125; catch (IOException e) &#123;<br/>&nbsp;&nbsp;//System.out.println(&quot;FileWriter error opening the file &quot; + fileName);<br/>&nbsp;&nbsp;//System.exit(0);<br/>&#125;</div><br/><br/><strong>8 使用Mysql</strong><br/><br/>见之前整理的《<a href="http://www.aslibra.com/blog/post/jsp_mysql.php" target="_blank">JSP使用Mysql</a>》<br/><br/><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/jsp_error_NoClassDefFoundError_jar_filePath.php</link>
<title><![CDATA[JSP错误：NoClassDefFoundError]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Mon, 27 Apr 2009 15:46:40 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/jsp_error_NoClassDefFoundError_jar_filePath.php</guid> 
<description>
<![CDATA[ 
	学会看出错信息很重要，这个能知道错在哪里很重要。<br/><br/>一般会有两种出错的情况：<br/><br/><strong>1 语法错误</strong><br/><br/>首先不能有语法错误，否则会先报错的，即便缺失类定义，也先提示这个错误，比如：<br/><br/><div class="code">&lt;%<br/>b = &quot;&quot;;<br/>String a = &quot;&quot;;</div><br/><br/>错误信息：<br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">org.apache.jasper.JasperException: Unable to compile class for JSP<br/><br/>An error occurred at line: 3 in the jsp file: /beijing/import.jsp<br/><br/>Generated servlet error:<br/>&nbsp;&nbsp;&nbsp;&nbsp;[javac] Compiling 1 source file<br/><br/>/Data/apps/tomcat/work/Standalone/localhost/_/beijing/import_jsp.java:46: cannot resolve symbol<br/>symbol&nbsp;&nbsp;: variable b <br/>location: class org.apache.jsp.import_jsp<br/>b = "";<br/>^<br/>1 error</div></div><br/><br/><strong>2 缺失类定义</strong><br/><br/>比如这样的代码：<br/>首先，Microsoft.DVAP.PSO.PSOInterfaceWraper是正常的，但还有相关的类可能需要也会导致出错的。<br/><br/><div class="code">&lt;%@ page import=&quot;Microsoft.DVAP.PSO.PSOInterfaceWraper&quot; %&gt;<br/>&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot; %&gt;<br/>&lt;%<br/>String b = &quot;&quot;;<br/>String fileInfo = &quot;&quot;;<br/>fileInfo = new PSOInterfaceWraper().getClass().getProtectionDomain().getCodeSource().getLocation().toString();<br/>out.print(&quot;&lt;hr&gt;&quot;+fileInfo+&quot; &lt;hr&gt;&quot;);<br/>%&gt;</div><br/><br/>没有了第一种错误，但会有缺失类的提示（NoClassDefFoundError）：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">root cause <br/><br/>java.lang.NoClassDefFoundError: javax/xml/rpc/Service</div></div><br/><br/>要了解为什么，可以看看 Microsoft.DVAP.PSO.PSOInterfaceWraper 的定义，比如：<br/><br/><div class="code">package Microsoft.DVAP.PSO;<br/><br/>// Imports<br/>import com.chinavnet.zx.service.VNetCenterInterfaceForSP;<br/>import com.chinavnet.zx.service.VNetCenterInterfaceForSPSoap;<br/><br/>public class PSOInterfaceWraper &#123;</div><br/><br/>追查一下com.chinavnet.zx.service.VNetCenterInterfaceForSP即可找到凶手了：<br/><div class="code">package com.chinavnet.zx.service;<br/><br/>// Imports<br/>import java.net.URL;<br/>import javax.xml.rpc.Service;<br/>import javax.xml.rpc.ServiceException;<br/><br/>public abstract interface VNetCenterInterfaceForSP extends Service &#123;</div><br/><br/>这里引入了javax.xml.rpc.Service，而没有办法找到此类的定义，所以就出错了啦~~<br/><br/>java里面根据这样的名称还真不知道缺失了哪个jar文件，那只能查一下相关的jar文件了，用jbuilder可以打开jar文件看的到，其它软件也许也可以的，是jaxrpc.jar文件，那可以把这个jar文件复制到 JAVA_DIR/jre/lib/ext/下即可，阿权不知道还可以复制到啥目录，java还是个复杂的东西，复制完毕还需要重启一下tomcat才行。<br/><br/>可以看到程序的运行结果：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">--------------------------------------------------------------------------------<br/>file:/usr/java/j2sdk1.4.2_15/jre/lib/ext/PSO.jar <br/>--------------------------------------------------------------------------------<br/>test OK</div></div><br/><br/>另外说一下可以检查引用的是哪个jar的方法，就是代码里面说的了：<br/><br/><div class="code">fileInfo = new PUBLIC_CLASSNAME().getClass().getProtectionDomain().getCodeSource().getLocation().toString();</div><br/><br/>注意，类是需要public的，abstract的会得到类似的提示：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">com.chinavnet.zx.service.VNetCenterInterfaceForSP is abstract; cannot be instantiated</div></div><br/><br/>这样顺着错误解决错误就正常了~<br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/jar/" rel="tag">jar</a> , <a href="http://www.aslibra.com/blog/go.php/tags/error/" rel="tag">error</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/post/jsp_mysql.php</link>
<title><![CDATA[JSP使用Mysql]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Fri, 24 Apr 2009 13:38:02 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/post/jsp_mysql.php</guid> 
<description>
<![CDATA[ 
	JSP一直用的不多，但最近还是有擦边了，记录一下艰难的使用mysql的过程。<br/><br/>要使用Mysql那肯定用到相应的mysql的jar包了，只是我比较笨，不太懂从哪里获得什么样的jar文件才能使用，所以只能靠点网上的经验了：<br/><br/><a href="http://tech.163.com/05/0701/10/1NIO31NE00091589.html" target="_blank">JSP连接mysql数据库攻略</a><br/><br/>05年的文章了，看来四年前的知识我现在都赶不上，可以跟着操作一下。<br/><br/>安装Mysql就不用说了，跟使用没有关系，先下载Mysql的jar文件：<br/><br/><strong>JDBC驱动 mysql-connector-java-3.1.14.tar.gz</strong> ：<br/><a href="http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.14.tar.gz/from/pick" target="_blank">http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.14.tar.gz/from/pick</a><br/><br/>文件下载后，解压后有一个 mysql-connector-java-3.1.14-bin.jar 文件，这个就是我们需要的啦。<br/><br/><strong>1 jar文件放在哪里？</strong><br/><br/>这个对于不熟悉jsp的人而言，有点茫然，jsp怎么找jar文件的，查找顺序是怎么样的？等我知道具体细节再做笔记。今天只是小尝试了一下：<br/><br/><div class="code">WEB-INF/lib/<br/>Tomcat_dir/common/lib/<br/>Tomcat_dir/shared/lib/<br/>Java_dir/j2sdk1.4.2_15/lib/</div><br/><br/>我在这几个目录依次都放置了，可还提示无法找到相应的类，可怜了，重启tomcat后就可以了。<br/>不服气，然后就倒着依次删掉，依次重启tomcat，尝试出还是放 common/lib/ 下稳妥，但居然放在 WEB-INF/lib/ 下无用，java真复杂，可惜没有时间细研究这个问题了。<br/><br/><strong>2 代码怎么写？</strong><br/><br/>参考上面的页面即可，这里也贴一下稍微整理过的代码：<br/><br/><div class="code">&lt;%@ page import=&quot;com.mysql.jdbc.Driver&quot; %&gt;<br/>&lt;%@ page import=&quot;java.sql.*&quot; %&gt;<br/>&lt;%<br/><br/>//Mysql<br/>String driverName=&quot;com.mysql.jdbc.Driver&quot;;<br/>String mysqlserver=&quot;www.aslibra.com&quot;;<br/>String userName=&quot;aquan&quot;;<br/>String userPasswd=&quot;aquan&quot;;<br/>String dbName=&quot;aslibra&quot;;<br/><br/>Class.forName(driverName).newInstance();<br/>String mysqlURL=&quot;jdbc:mysql://&quot;+mysqlserver+&quot;/&quot;+dbName+&quot;?user=&quot;+userName+&quot;&amp;password=&quot;+userPasswd;<br/>Connection connection = DriverManager.getConnection(mysqlURL);<br/>Statement statement = connection.createStatement();<br/>String sql=&quot;SELECT * FROM usr&quot;;<br/>ResultSet rs = statement.executeQuery(sql); <br/>while(rs.next()) &#123;<br/>&nbsp;&nbsp;out.print(rs.getString(1)+&quot; &quot;); <br/>&nbsp;&nbsp;out.print(&quot;&#124;&quot;);<br/>&nbsp;&nbsp;out.print(rs.getString(2));<br/>&nbsp;&nbsp;out.print(&quot;&lt;br&gt;&quot;); <br/>&#125;<br/>rs.close();<br/>statement.close(); <br/>connection.close(); <br/><br/>%&gt;</div><br/><br/>真伤心，jsp里面使用这个还没有php里面使用方便，一直纳闷为什么insert会出错<br/><br/><div class="code">sql=&quot;insert into usr set userID=&#039;1&#039;,nickName=&#039;aquan&#039;,website=&#039;http://www.aslibra.com/&#039; &quot;;<br/>//out.print(&quot;&lt;hr&gt;&quot;+sql);<br/>statement.executeQuery(sql);</div><br/><br/>后来还是找到解法：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">The method executeQuery is designed for statements that <br/>produce a single result set, such as SELECT statements.<br/><br/>The method executeUpdate is used to execute INSERT, UPDATE, <br/>or DELETE statements and also SQL DDL (Data Definition Language) <br/>statements like CREATE TABLE, DROP TABLE, and ALTER TABLE.... </div></div><br/><br/>来自： <a href="http://www.javaworld.com.tw/jute/post/view?bid=6&id=60810&tpg=1&ppg=1&sty=1&age=0#60810" target="_blank">http://www.javaworld.com.tw/jute/post/view?bid=6&id=60810&tpg=1&ppg=1&sty=1&age=0#60810</a><br/>原出处： <a href="http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/getstart/statement.html#1003674" target="_blank">http://java.sun.com/j2se/1.4.2/docs/guide/jdbc/getstart/statement.html#1003674</a><br/><br/>代码小修改即可：<br/><br/><div class="code">sql=&quot;insert into usr set userID=&#039;1&#039;,nickName=&#039;aquan&#039;,website=&#039;http://www.aslibra.com/&#039; &quot;;<br/>//out.print(&quot;&lt;hr&gt;&quot;+sql);<br/>statement.executeUpdate(sql);</div><br/><br/>真搞不懂，就这么一个语句在php里面就统一成 mysql_query 就成了，多方便啊~~<br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/mysql/" rel="tag">mysql</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/read.php/1187.htm</link>
<title><![CDATA[jsp小结]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Thu, 18 Dec 2008 15:19:32 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/read.php/1187.htm</guid> 
<description>
<![CDATA[ 
	这两天被jsp折磨了，今天要赶时间，更加着急。<br/>做完了其实也没有多少东西，就是把时间耗在了跟别人调试上了，然后还有自己的查错。<br/>做个小结吧：<br/><br/><strong>1 class文件部署</strong><br/><br/>要使用class文件，需要看看定义的package，按路径放好class文件<br/>要放在根目录的WEB-INF/classes下<br/>如果b.class定义的是 package a，那就是 WEB-INF/classes/a/b.class<br/>在程序里面无须引入package，直接可以使用 a.b<br/><br/><strong>2 jar文件部署</strong><br/><br/>jar文件可以放置在 WEB-INF/lib下<br/>上面说的class文件其实可以打包成jar文件<br/>jar cvf myjar.jar a<br/>(把a目录打包 类似目录： tar cvfz a.tar.gz a)<br/><br/>需要声明导入类，比如：<br/><div class="code">&lt;%@ page import=&quot;Microsoft.DVAP.PSO.*&quot; %&gt;<br/>&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot; %&gt;</div><br/><br/><strong>3 比较需要注意类型</strong><br/><br/>在php里面可以不分类型，所以很多想法到jsp里面总容易报错<br/>String a = "test"; // php可以用单引号，这里不行，单引号估计是字符类型的吧，和c一样？<br/>if(a.equals("0"))&#123;<br/>//do sth<br/>&#125;<br/>不能是 if(a == 0) ，但可以比较null，if(a != null)<br/><br/><strong>4 cookie的使用</strong><br/><br/><div class="code">Cookie uCookie = new Cookie(&quot;domain&quot;,&quot;www.aslibra.com&quot;);<br/>uCookie.setMaxAge(60*60*24); //设置过期时间<br/>response.addCookie(uCookie);</div><br/><br/>cookie值应该是字符类型， new Cookie("domain",1); 这样会出错的<br/><br/><strong>5 时间戳</strong><br/><br/><div class="code">&lt;%@ page import=&quot;java.text.*&quot;%&gt;&nbsp;&nbsp;<br/>&lt;%@ page import=&quot;java.util.*&quot;%&gt;<br/>&lt;%@ page contentType=&quot;text/html; charset=gb2312&quot; %&gt;<br/>&lt;%<br/>Date currentTime = new Date();<br/>SimpleDateFormat formatter = new SimpleDateFormat(&quot;yyyy-MM-dd HH:mm:ss&quot;);<br/>String TimeStamp = formatter.format(currentTime);</div><br/><br/>时间戳让我抓狂，jsp没有类似php的手册，让人烦<br/><br/><strong>6 终止程序</strong><br/><br/>if(true)return;<br/>或者 out.close(); 不过我没试过呢<br/><br/><strong>7 base64_decode</strong><br/><br/><div class="code">&lt;%@ page import=&quot;sun.misc.BASE64Decoder&quot;%&gt;<br/>&lt;%<br/>//......<br/>BASE64Decoder decoder = new BASE64Decoder();<br/>byte&#91;&#93; b = decoder.decodeBuffer(filename);<br/>filename = new String(b);<br/>%&gt;</div><br/><br/><strong>8 其它</strong><br/><br/>好像class文件的优先级要比jar的高，存在同意定义的方法，class的优先<br/>如果更新class文件和jar文件，好像重启tomcat才立刻生效？不知道什么时候生效<br/><br/>小结完毕。。以上有几点是我解决的最费心的，看着痛心呀。。<br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/tomcat/" rel="tag">tomcat</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/read.php/1186.htm</link>
<title><![CDATA[jar文件和class文件的放置问题]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Tue, 16 Dec 2008 16:00:27 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/read.php/1186.htm</guid> 
<description>
<![CDATA[ 
	我对JSP一直有点惧怕，一来我没有时间慢慢琢磨它，所以也仅仅停留在表面的了解，程序小小的改改补补也还可以，二来就是偶尔来个任务是合作方要求用JSP的，又经常出问题，搞的头昏脑胀，摸不着头脑，烦人。<br/><br/>今天又是中国电信的东西，每家的电信似乎都有自己的一套程序，但不同的电信给人的帮助文档都不同，有的说的很详细，比如广东电信，从服务器环境到安装配置和测试，甚至到样例，都做的尽可能的简洁，按步骤做完就差不多了，不太懂jsp也就按样例改改就是了。<br/><br/>今天是北京电信的，放样例上去后，就报错了，当然，可能是我的技术问题，对方给予的合作也就一般，相信他们会觉得，样例给过去有运行不正常是正常的，因为比较是样例而已。碰到问题解决不了那只能是自己的本事问题了。<br/><br/>今天碰到的问题：<br/><br/>提示编译出错<br/>String redirectURL = SampleSP.AuthValidation.Authoration(returnURL,ConfigFilePath);<br/>SampleSP出错，但这个class文件都有，在WEB-INF&#92;classes&#92;SampleSP文件夹里面，按道理好像是对的<br/><br/>折磨了比较久，查资料说是：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">1.你必须在网站的根目录下建立WEB-INF文件夹,然后在里面建立2个文件夹叫class和lib,以及一个文件web.xml <br/>.注意我的大小写.建立好后,开始放入class的文件.如果你的class已经封装成lib了,就直接放在lib文件夹下.如果是.class,就直接把WEB-INF&#92;class作为包的根路径,把class放入class文件夹,比如我有个类 MyClass.class,是包MyPacket里面的,那么她应该放在WEB-INF&#92;class&#92;MyPacket&#92;里面. <br/><br/>2.在JSP里面,首先在页首加载相关的包或者类.类似下面: <br/><%@ page import="MypPacket.MyClass, <br/>MypPacket.MyClass2%> <br/>或者 <br/><%@ page import="MypPacket.*"%> <br/>区别我就步用说了吧呵呵. <br/>然后在代码内就很简单了,和java一样了.比如调用函数: <br/><% <br/>MyClass mc = new MyClass(); <br/>mc.getMyParameter(); <br/>%> </div></div><br/><br/>于是乎发现我的文件的确没有在根目录，所以把相关的文件（lib和classes文件夹，上面好像说错了）都挪根目录的WEB-INF文件夹里面，发现windows的本地环境通过了，正常，却在服务器环境不行。<br/><br/>再折磨我就可以成为草根专家了，都是尝试出来的假专家。<br/>检查程序，发现里面有引用别的包，在AuthValidation.class文件里面：<br/><br/><div class="code">package SampleSP;<br/><br/>import Microsoft.DVAP.PSO.*;<br/>import java.util.Vector;<br/>import java.util.Random;<br/><br/>public class AuthValidation &#123;<br/>&nbsp;&nbsp;public AuthValidation() &#123;<br/>&nbsp;&nbsp;&#125;</div><br/><br/>也就是说，其实引用了 Microsoft.DVAP.PSO.*，在jsp文件里面没有做引用，那就加上就是了：<br/><br/><div class="code">&lt;%@ page import=&quot;Microsoft.DVAP.PSO.*&quot; %&gt;</div><br/><br/>原先都尝试过 PSO.* ，SampleSP.* ，看来都是好奇怪的想法，应该先看看包对应的路径<br/>PSO.jar里面的类都是定义在Microsoft.DVAP路径下，所以引用的时候要用 Microsoft.DVAP.PSO.*的方式<br/>也曾经怀疑过是否tomcat的版本问题，是否java的版本问题，不懂java的人就是只能猜想了，慢慢猜，慢慢误，有一天会傻的。有时间再好好收拾它。。。。<br/><br/>good luck!!<br/><br/>引用资料出自：<a href="http://zhidao.baidu.com/question/2860474.html?fr=qrl" target="_blank">jsp怎么使用.class文件?tomcat</a><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/tomcat/" rel="tag">tomcat</a> , <a href="http://www.aslibra.com/blog/go.php/tags/java/" rel="tag">java</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/read.php/1015.htm</link>
<title><![CDATA[在tomcat中jsp文件的大概执行过程(转)]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Sat, 15 Mar 2008 15:39:44 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/read.php/1015.htm</guid> 
<description>
<![CDATA[ 
	<p>1.在Tomcat的公共设定中<br />&lt;servlet&gt;<br />&lt;servlet-name&gt;<span style="color: #ff0000"><strong>jsp</strong></span>&lt;/servlet-name&gt;<br />&lt;servlet-class&gt;<span style="color: #ff0000"><strong>org.apache.jasper.servlet.JspServlet</strong></span>&lt;/servlet-class&gt;<br />........................<br />&lt;/servlet&gt;<br />&lt;servlet-mapping&gt;<br />&lt;servlet-name&gt;<span style="color: #ff0000"><strong>jsp</strong></span>&lt;/servlet-name&gt;<br />&lt;url-pattern&gt;<span style="color: #ff0000"><strong>*.jsp</strong></span>&lt;/url-pattern&gt;<br />&lt;/servlet-mapping&gt;<br />可以看出*.jsp文件都是请求<strong><span style="color: #ff0000">org.apache.jasper.servlet.JspServlet</span></strong>得。</p><p>2.下面再看看<strong><span style="color: #ff0000">org.apache.jasper.servlet.JspServlet</span></strong>中做什么。<br />从源代码中可以看出，这个类是继承HttpServlet类，并覆盖了主要方法<br />public void service (HttpServletRequest request, <br />HttpServletResponse response)<br />throws ServletException, IOException &#123;<br />在这个方法中找到jsp文件的路径<span style="color: #0000ff"><strong>jspUri</strong></span>，并执行方法<span style="color: #0000ff"><strong>serviceJspFile</strong></span>。<br />接着在方法<span style="color: #0000ff"><strong>serviceJspFile</strong></span>中我们看到它新创建了一个类<strong><span style="color: #ff0000">JspServletWrapper</span></strong>的实例，并执行了这个类实例的<span style="color: #0000ff"><strong>service</strong></span>方法。</p><p>3.接下来，我们再看看这个类<span style="color: #ff0000"><strong>org.apache.jasper.servlet.JspServletWrapper</strong></span><br />在这个类中<br />我们可以看到在初始化的时候，创建了一个新的对象<br />ctxt = new JspCompilationContext(jspUri, tagInfo, options,<br />servletContext, this, rctxt,<br />tagFileJarUrl);<br />找到方法<br />public void service(HttpServletRequest request, <br />HttpServletResponse response,<br />boolean precompile)<br />throws ServletException, IOException, FileNotFoundException<br />这里，使用了<span style="color: #0000ff"><strong>ctxt.compile</strong></span>()，对jsp文件进行了编译，<br />再调用方法<span style="color: #0000ff"><strong>getServlet();</strong></span>给Servlet类型对象<span style="color: #3300ff"><strong>theServlet</strong></span>赋值，<br />最后，调用theServlet的<span style="color: #0000ff"><strong>service</strong></span>方法。<br />由于从jsp转换来的java继承类<span style="color: #ff0000"><strong>HttpJspBase</strong></span>，我们可以从类<span style="color: #ff0000">HttpJspBase</span> 中看到<span style="color: #0000ff">servcie</span>方法又调用了<span style="color: #0000ff">_jspService</span>方法，<br /><br /><span style="color: #4444bb"><strong>这样最终调用了由jsp转换来的java中的_jspService方法</strong></span>。<br /><br />我们可以通过在%TOMCAT_HOME%&#92;work&#92;目录下找到从jsp转换来的java源文件，可以找到_jspService这个方法。<br /><br />转自：<a href="http://weiqingfei.blog.com.cn/archives/2006/1372512.shtml">http://weiqingfei.blog.com.cn/archives/2006/1372512.shtml</a></p><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/read.php/982.htm</link>
<title><![CDATA[Redhat linux 9下让PHP支持java类(转载)]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Mon, 21 Jan 2008 12:32:28 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/read.php/982.htm</guid> 
<description>
<![CDATA[ 
	最近要处理类似的事情，特记录本篇内容，挺好的介绍，虽然版本比较旧，但估计可以参考一下<br/><br/><hr/><br/>由于公司业务的需要，最近要在linux下的php支持java类，故把我的调试笔记贴出来,希望对大家有用。 <br/><br/>系统环境： <br/>Redhat 9.0 <br/>Apache-1.3.27 <br/>Mysql3.23-54a-11 <br/>Php-4.32 <br/>j2sdk1.4.1_03 <br/><br/>安装配置： <br/>1．mysql使用的是redhat9自带的rpm包，不介绍安装了，jdk的安装也很简单，我们把jdk安装到/usr/java/j2sdk1.4.1_03 并在/etc/profile设置jdk环境参数。 <br/><br/>2．编译安装apache <br/>tar zvxf apache_1.3.27.tar.gz <br/>cd apache_1.3.27 <br/>./configure –prefix=/usr/local/apache –enable-module=so –enable-shared=max <br/>make <br/>make install <br/><br/>3．编译安装php <br/>tar zvxf php-4.3.2.tar.gz <br/>cd php-4.3.2 <br/>./configure –prefix=/usr/local/php –with-mysql &#92; <br/>--with-apxs=/usr/local/apache/bin/apxs &#92; <br/>--with-java=/usr/java/j2sdk1.4.1_03 <br/>make <br/>make install <br/><br/>修改/usr/local/apache/conf/httpd.conf <br/>查找&lt;IfModule mod_mime.c&gt; <br/><br/>在此范围添加 <br/><br/>AddType application/x-httpd-php .php <br/>AddType application/x-httpd-php-source .phps <br/><br/>4．配置php.ini <br/>cp php.ini.dist /usr/local/php/lib/php.ini <br/><br/>vim php.ini <br/><br/><br/>修改如下内容： <br/>[Java] <br/>java.class.path = /usr/local/php/lib/php/php_java.jar <br/>java.home = /usr/java/j2sdk1.4.1_03 <br/>java.library = /usr/java/j2sdk1.4.1_03/jre/lib/i386/libjava.so <br/>java.library.path =/usr/local/php/lib/php/extensions/no-debug-non-zts-20020429 <br/>extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429 <br/>extension=java.so <br/>保存退出。 <br/>cd /usr/local/php/lib/php/extensions/no-debug-non-zts-20020429 <br/>ln –s java.so libphp_java.so 这一步很重要哦！ <br/><br/>设置环境变量： <br/>export LD_LIBRARY_PATH=/usr/java/j2sdk1.4.1_03/jre/lib/i386:/usr/java/j2sdk1.4.1_03/jre/lib/i386/server <br/><br/>ok!重启一下apache <br/>/usr/local/apache/bin/apachectl start <br/><br/>测试一下，写个测试页test.php <br/>&lt;? <br/>$system=new Java(&quot;java.lang.System&quot;); <br/><br/>//demonstrate property access <br/>print &#039;Java version=&#039;.$system-&gt;getProperty(&#039;java.version&#039;).&#039; &lt;br&gt;&#039;; <br/>?&gt; <br/><br/>正常的话页面应该能显示：Java version=1.4.1_03<br/><br/><br/> <br/><br/>作者：张微波<br/><br/>2003-07-05 于北京<br/><br/>出处：http://www.5ilinux.com/apache02.html<br/><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a> , <a href="http://www.aslibra.com/blog/go.php/tags/php/" rel="tag">php</a> , <a href="http://www.aslibra.com/blog/go.php/tags/linux/" rel="tag">linux</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/read.php/873.htm</link>
<title><![CDATA[JSP学习笔记：定义系统变量]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Fri, 31 Aug 2007 17:40:15 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/read.php/873.htm</guid> 
<description>
<![CDATA[ 
	今天解决了一个问题让我觉得惊喜，虽然我对JSP还算陌生，可是正因为这样，工作时需要解决问题时，得到解决是让人兴奋的。<br/><br/>做的项目其实是互联星空的收费项目，其实是有样例给参考的，代码倒不是主要的问题，主要是处理一下特殊情况。发觉JAVA给项目合作是很合适的，class打包jar后，功能给出接口就行了，一个黑盒子，客户开发是在自己的控制之下的。<br/><br/>先说一下服务器配置，安装java环境和tomcat就不多说了，见《<a href="http://www.aslibra.com/blog/read.php?819" target="_blank">Linux下搭建JSP环境小记</a>》<br/><br/>看到比较跩的淘气猫的时候，jsp环境就已经搭建好了，开始配置应用环境。<br/><br/><div class="code">set CLASSPATH=%CLASSPATH%;%TOMCAT_HOME%&#92;lib&#92;ispsoapservice.jar;....</div><br/><br/>以上设置是加上classpath参数，程序可以找到相应的jar文件，并需要把jar文件放到刚才定义的路径里面。<br/>但我不相信每次使用jar文件都得修改系统配置，重启服务器，看了一下文章，可以这样处理：<br/><br/>在jsp应用程序下建立 <strong>WEB-INF/lib</strong> 文件夹，把相应的jar文件放置在该目录下，这样就不需要添加系统变量，但仅限于jsp文件不是到处存放的情况吧，否则就得到处复制了<br/><br/><div class="code">set CATALINA_OPTS=%CATALINA_OPTS% <br/>-Dcom.onewaveinc.webpro=D:&#92;webpro2&#92;webpro.xml</div><br/><br/>一直要解决的就是这个问题，xml文件在系统启动的时候指定了，我希望可以引用独立的xml文件。<br/>自己不太懂，问一些有经验的人，该怎么做，好像这个是机密一样，总不肯透漏，或者就是不知道了。阿权比较倔强，希望自己解决掉。问多了也不给答案也没啥意思的。<br/><br/>于是重新安装过tomcat，一步一步配置，让它出错，尝试解决出错，前面的jar文件解决过了，剩下这个了。<br/>首先得明白这个代码的作用，查了一下含义：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content"><br/>Options的可选取项： <br/><br/>（1） -debug：以deug的模式运行interpreter，它允许也jdb(Java调试器)一起使用； <br/><br/>（2） -checksource：打开interpreter时会检查源文件即.java文件和.class文件的日期，如果.java比.class还要新，那么.class文件会被重新编译； <br/><br/>（3） -classpath：该参数覆盖环境变量CLASSPATH； <br/><br/>（4） -mx x：修改所分配内存的最大值，如-mx –10m；x>1000byte <br/><br/>（5） -ms x：修改初始化内存；x>1000byte <br/><br/>（6） -noasyncgc：关闭垃圾回收线程，即不自动回垃圾，这时可以使用System.gc这个方法来手动回收垃圾； <br/><br/>（7） -noverify：关闭代码的验证功能； <br/><br/>（8） -prof：打开报表功能，该功能对程序的执行进行跟踪，最终形成报表文件，记录所有方法的执行时间，有利于找出程序的瓶颈所在； <br/><br/>（9） -ss x：在java的运行环境中为每个线程配置两个别stack，一个用于Java代码，另一个用于c/c++代码，这里可以-ss用于改变用于c/c++代码的stack大小，如-ss 100k，最小值为1000bytes，默认值为128k； <br/><br/>（10） -oss x：用于修改java代码的stack，默认值为400k <br/><br/>（11） -t：显示程序执行过程 <br/><br/>（12） -verbose：每次.class运行时显示相关信息； <br/><br/>（13） -verbosegc：每次垃圾回收时显示相关信息； <br/><br/><span style="color: #FF0000;">（14） -D：允许修改System的属性值</span> <br/></div></div><br/><br/>这个就好办了，也就是说赋予了System一个变量com.onewaveinc.webpro，指定其值是一个路径<br/>那是否可以在程序开始的时候设定这个值呢，大振人心~~<br/><br/>找到设置系统变量的方法是：<br/><br/><div class="code">System.setProperty(&quot;com.onewaveinc.webpro&quot;,&quot;D:&#92;webpro2&#92;webpro.xml&quot;);</div><br/><br/>测试成功~<br/>那问题又来了，是否可以读取当前目录下的配置文件呢？<br/>取得现在的系统路径就OK啦~<br/><br/>阿权实践过程就完成了，参考代码如下，加在文件开始处：<br/><br/><div class="code">&lt;%<br/>String strAbsPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();<br/>System.setProperty(&quot;com.onewaveinc.webpro&quot;,strAbsPath+&quot;/webpro.xml&quot;);<br/>%&gt;</div><br/><br/><strong>解释一下：</strong><br/>request.getRequestURI() 取得现在请求的URI<br/>application.getRealPath 把URI转换为物理路径<br/>getParent()是取得上级路径，也就是现在目录啦！<br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a>
]]>
</description>
</item><item>
<link>http://www.aslibra.com/blog/read.php/870.htm</link>
<title><![CDATA[JSP摘抄]]></title> 
<author>hqlulu &lt;hqlulu@163.com&gt;</author>
<category><![CDATA[JSP]]></category>
<pubDate>Wed, 29 Aug 2007 13:52:52 +0000</pubDate> 
<guid>http://www.aslibra.com/blog/read.php/870.htm</guid> 
<description>
<![CDATA[ 
	今天又忙了些简单的JSP，找一个MD5的加密都没找到，突然发现用的程序样例里面有例子，于是乎依葫芦画瓢，就做好了，可怜的家伙....<br/><br/>搜了一下jsp做跳转的方法：<br/><br/><div class="quote"><div class="quote-title">引用</div><div class="quote-content">使用JSP大约有下列三种跳转方式：<br/>1. response.sendRedirect();<br/>2. response.setHeader(&quot;Location&quot;,&quot;&quot;);<br/>3. &lt;jsp:forward page=&quot;&quot; /&gt; <br/><br/>语句前不允许有out.flush()，如果有，会有异常</div></div><br/><br/>赶紧搜一下资料补点血，发现有一个《jsp入门笔记》总结的不错，不知道出处：<br/><br/><strong>一 jsp基本语法</strong><br/><br/>1，&lt;%! %&gt; 声明全局变量<br/> &nbsp; &nbsp; &lt;% &nbsp; &nbsp;%&gt; 一般java代码都在此标记中编写，里面声明的变量为局部变量<br/> &nbsp; &nbsp; &lt;%=表达式%&gt; 用于输出表达式的值 类似于out.println（）的作用 但在开发中一般不宜用out.println（）来输出<br/> &nbsp; &nbsp; 在程序开发中html与java代码不宜联系太过紧密。<br/>2.表单交互接收传值用 request.getParameter(&quot;参数名称&quot;) 返回的值为String类型，如果需要转为int类型可用 Integer.parseInt(&quot;饱含数字的String&quot;);<br/>3.&lt;form&gt;中method的值由post和get两种<br/> &nbsp; &nbsp; post 传递的值不会显示<br/> &nbsp; &nbsp; get 传递的值会在地址栏中显示<br/>4。网页中处理乱码<br/>&lt;%@ page contentType=&quot;text/html;charset=gb2312&quot;%&gt;<br/><br/>5.包含语句<br/> &nbsp; &nbsp;&lt;%@ include file=&quot;url&quot; %&gt;可以包含任意文件，包含文件中的内容，不能分清所包含的内容是静态还是动态<br/> &nbsp; &nbsp;和<br/> &nbsp; &nbsp; &lt;jsp:include page=&quot;url&quot; flush=&quot;true&quot;/&gt; <br/> &nbsp; &nbsp; &nbsp; 或者 &lt;jsp:include page=&quot;url&quot; flush=&quot;true&quot;&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;jsp:param=&quot;参数名称&quot; value=&quot;参数的值&quot;&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 。。。。<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;/jsp:include&gt;<br/> &nbsp; &nbsp; &lt;jsp:include&gt;语句包含的内容是先对所包含的内容进行处理之后，在将其处理后的内容包含进来，能自动分清所包含的内容是静态还是动态，<br/> &nbsp; &nbsp; 如是静态，则将其内容包含进来，与&lt;%@ include%&gt;类似。如是动态，则会先处理后包含。<br/> &nbsp; &nbsp; 6.跳转语句<br/> &nbsp; <br/> &nbsp; &nbsp; &nbsp; &lt;jsp:forward page=&quot;url&quot;/&gt; 无条件跳转<br/> &nbsp; &nbsp; &nbsp; &nbsp;或者 <br/> &nbsp; &nbsp; &nbsp; &nbsp; &lt;jsp:forward page=&quot;url&quot;&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;jsp:param name=&quot;传递参数&quot; value=&quot;参数的值&quot;&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp;。。。<br/> &nbsp; &nbsp; &nbsp; &nbsp; &lt;/jsp:forward&gt;<br/> &nbsp; &nbsp; &nbsp; &nbsp; 使用此跳转语句，页面内容虽然改变，但是地址栏中的内容却没有改变。<br/><br/><strong>二 JavaBean</strong><br/>1，在jsp中调用JavaBean的方法<br/> &nbsp; &nbsp; 在jsp文件中直接用&lt;%@ page import=&quot;&quot;%&gt;调用JavaBean所在的位置，然后用 new 方法声明对象，与一般的java文件运用类似.<br/> &nbsp; &nbsp; 或 <br/> &nbsp; &nbsp; 使用java的标签调用<br/> &nbsp; &nbsp; &nbsp;&lt;jsp:useBean id=&quot;&quot; scope=&quot;&quot; class=&quot;&quot;/&gt;<br/> &nbsp; &nbsp; &nbsp;其中id 为在此处需要使用的Bean的对象名，scope为此对象的页面属性范围，class为所使用的JavaBean。<br/> &nbsp; &nbsp; &nbsp;为对象的属性付值用<br/> &nbsp; &nbsp; &nbsp;&lt;jsp:setProperty name=&quot;&quot; property=&quot;&quot;/&gt;<br/> &nbsp; &nbsp; &nbsp;其中name为上面id所代表的对象名，property=&quot;*&quot;则会为对象的各个属性自动付值,可以替代一切的setter调用，当需要设置的属性很多时，用此方法很方便<br/><br/>Tags - <a href="http://www.aslibra.com/blog/go.php/tags/jsp/" rel="tag">jsp</a>
]]>
</description>
</item>
</channel>
</rss>