﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-ply-文章分类-知识小串通</title><link>http://www.blogjava.net/peiliangye/category/49424.html</link><description>吞噬黑暗</description><language>zh-cn</language><lastBuildDate>Fri, 09 Dec 2011 10:54:38 GMT</lastBuildDate><pubDate>Fri, 09 Dec 2011 10:54:38 GMT</pubDate><ttl>60</ttl><item><title>length、length()、size的区别...</title><link>http://www.blogjava.net/peiliangye/articles/365370.html</link><dc:creator>ply</dc:creator><author>ply</author><pubDate>Fri, 02 Dec 2011 05:37:00 GMT</pubDate><guid>http://www.blogjava.net/peiliangye/articles/365370.html</guid><wfw:comment>http://www.blogjava.net/peiliangye/comments/365370.html</wfw:comment><comments>http://www.blogjava.net/peiliangye/articles/365370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/peiliangye/comments/commentRss/365370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/peiliangye/services/trackbacks/365370.html</trackback:ping><description><![CDATA[length是数组的属性，<br />length()是字符串获取长度的方法，<br />size是list的个数<img src ="http://www.blogjava.net/peiliangye/aggbug/365370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/peiliangye/" target="_blank">ply</a> 2011-12-02 13:37 <a href="http://www.blogjava.net/peiliangye/articles/365370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2 异常处理总结</title><link>http://www.blogjava.net/peiliangye/articles/357856.html</link><dc:creator>ply</dc:creator><author>ply</author><pubDate>Fri, 02 Sep 2011 15:07:00 GMT</pubDate><guid>http://www.blogjava.net/peiliangye/articles/357856.html</guid><wfw:comment>http://www.blogjava.net/peiliangye/comments/357856.html</wfw:comment><comments>http://www.blogjava.net/peiliangye/articles/357856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/peiliangye/comments/commentRss/357856.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/peiliangye/services/trackbacks/357856.html</trackback:ping><description><![CDATA[<p>1---:java.lang.NoClassDefFoundError: org/apache/struts2/dojo/views/jsp/ui/HeadTag</p>
<p>解决办法：原因缺少了dojo的JAR包，引入即可:struts2-dojo-plugin-2.1.2.jar</p>
<p>The "head" tag renders required JavaScript code to configure Dojo and is required in order to use any of the tags included in the Dojo plugin.</p>
<p>--------------------</p>
<p>If you are planning to nest tags from the Dojo plugin, make sure you set parseContent="false", otherwise each request made by the inner tags will be performed twice.<br /></p>
<p>2---:Unable to load configuration. -bean -jar:file:/F:/Struts2/Struts2/WebRoot/WEB-INF/lib/struts2-core- 2.1.2.jar!/struts-default.xml:46:178</p>
<p>Caused by: Unable to load bean: type:org.apache.struts2.dispatcher.multipart.MultiPartRequest class:org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest -bean -jar:file:/F:/Struts2/Struts2/WebRoot/WEB-INF/lib/struts2-core-2.1.2.jar!/struts-default.xml:46:178</p>
<p>Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/RequestContext<br />解决办法：缺少JAR包，引入commons-fileupload-1.2.1.jar，commons-io-1.3.2.jar即可<br /><br /></p>
<p>3---:No tag "datetimepicker" defined in tag library imported with prefix "s"</p>
<p>原因版本问题：缺少struts-dojo-plugin JAR包，以及HTML的,&lt;HEAD&gt;&lt;/HEAD&gt;中没有使用&lt;s:head/&gt;标签</p>
<p>If you're using Struts 2.1.x you're probablymissing the&gt;struts-dojo-plugin. Michal's reference below applies to Struts 2.1.xonly. In the lasts versions (since 2.0.9 I guess), all AJAX are in dojo&gt; plugin.<br />&gt; &gt; So you need toinclude &lt;%@ taglib uri="/struts-dojo-tags" prefix="sx"%&gt;<br />&gt; &gt; and &lt;sx:head/&gt;<br />&gt; &gt;( Temp1:<br />&lt;sx:datetimepicker name="picker" /&gt;<br />Temp2:<br />&lt;sx:datetimepicker type="time" name="picker" /&gt;&lt;br/&gt;<br />Temp3:<br />&lt;sx:datetimepicker value="%{'2008-06-08'}" name="picker" /&gt;<br />Temp4:<br />&lt;sx:datetimepicker value="date" name="picker" /&gt;)<br />&gt; &gt; and call :&lt;sx:datetimepicker .../&gt;<br /><br /></p>
<p>4---:使用TILES框架</p>
<p>If you use the Tiles 2 plugin, check your tiles.xml file(s) to ensure they contain a DOCTYPE.</p>
<p>&lt;!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN" "http://tiles.apache.org/dtds/tiles-config_2_0.dtd"&gt;&lt;tiles-definitions&gt;<br /></p>
<p><br />5---:struts2中不支持EL表达式 </p>
<p>Struts2.1 tags do not allow evaluation of JSP EL within their attributes.Instead, Struts2 tags evaluate attribute values as OGNL. Allowing bothexpression languages within the same attribute opens major securityvulnerabilities. <br /></p>
<p><br />6---文件上传过程中取不到文件名和文件类型，即都取到NULL</p>
<p>原因：如果页面中file的name=&#8220;a&#8221;则我们ACTION中设置String aContentType,String aFileName;(此两个其实无所谓，关键是SET方法)</p>
<p>setA(File file)(){}; setAContentType(String s){};setAFileName(String name){} 即格式如下：setXContentType() setXFileName().X代表你给FILE取的NAME名字</p>
<p>必须和它相同，固定格式<br /></p>
<p><br />7---严重: Unable to parse request<br />org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (8523356) exceeds the configured maximum (2097152)<br />at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.&lt;init&gt;(FileUploadBase.java:914)2008-5-27 17:46:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn<br />警告: Could not find property [struts.valueStack]<br />2008-5-27 17:46:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error<br />严重: the request was rejected because its size (8523356) exceeds the configured maximum (2097152)<br />2008-5-27 17:46:51 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn<br />警告: Could not find property [org.apache.catalina.jsp_file]<br /></p>
<p>原因：上传文件大小超过预定大小，可以在struts.properties配置文件中设置struts.multipart.maxSize=XXX（XXX为文件大小）<br /></p>
<p><br />8---配置了文件类型限制后，当传错误类型可以拦截不让用户上传该文件，可是跳转的页面却没有跳转到input配置的错误页面，而是返回</p>
<p>到了success正确页面。</p>
<p>严重: Content-Type not allowed: filedata "upload__5b01657_11a329d4dcf__8000_00000000.tmp" text/plain<br />《我的打印输出DEBUG语句内容:File:null FlieName:null type:null》即拦截类型成功了<br />java.lang.NullPointerException<br />at java.io.FileInputStream.&lt;init&gt;(FileInputStream.java:103)<br />at com.study.web.util.FileUploadUtil.uploadFile(FileUploadUtil.java:36)<br />at com.study.web.action.UploadFileAction.execute(UploadFileAction.java:58)<br />at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)。。。</p>
<p align="center"><script type="text/javascript"><!--
google_ad_client = "pub-6103762777392798";
/* 468x15, 创建于 09-3-23 */
google_ad_slot = "5292326697";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><ins style="border-bottom: medium none; position: relative; border-left: medium none; padding-bottom: 0px; margin: 0px; padding-left: 0px; width: 468px; padding-right: 0px; display: inline-table; height: 15px; visibility: visible; border-top: medium none; border-right: medium none; padding-top: 0px"><ins style="border-bottom: medium none; position: relative; border-left: medium none; padding-bottom: 0px; margin: 0px; padding-left: 0px; width: 468px; padding-right: 0px; display: block; height: 15px; visibility: visible; border-top: medium none; border-right: medium none; padding-top: 0px" id="aswift_1_anchor"><iframe style="position: absolute; top: 0px; left: 0px" id="aswift_1" height="15" marginheight="0" frameborder="0" width="468" allowTransparency name="aswift_1" marginwidth="0" scrolling="no"></iframe></ins></ins></p>
<p>2008-5-29 10:59:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn<br />警告: Could not find property [org.apache.catalina.jsp_file]<br />2008-5-29 10:59:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn<br />警告: Could not find property [struts]<br />2008-5-29 10:59:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger info<br />信息: Removing file filedata \tmp\upload__5b01657_11a329d4dcf__8000_00000000.tmp</p>
<p>原因及解决办法：在该文件上传Action中只配置了FileUploadInterceptor后缺少配置了defaultStack拦截器.</p>
<p>在ACTION中配置玩defaultStack拦截器后改错误消失。<br /></p>
<p><br />9---struts.properties中全局配置文件大小，再使用默认FileUploadInterceptor拦截器时候能实现拦截的功能但是后台出现异常。</p>
<p>严重: Unable to parse request<br />org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (380) exceeds the configured maximum (10)<br />at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.&lt;init&gt;(FileUploadBase.java:914)</p>
<p>原因：未知。将全局配置中的限制大小去掉，再重新在ACTION中覆盖配置FileUploadInterceptor拦截器设置大小和文件类型限制，可消除异常。<br /></p>
<p><br />10---多文件上传中，其中一个传被限制的文件如限制aplication/msword(即.doc)文件，允许传文本文件。然而当夹杂在一起传的时候，后台能截获类型错误不可传信息，但是</p>
<p>实际却还是上传成功。</p>
<p>严重: Content-Type not allowed: filedata "upload_4d958287_11a33e76ab9__8000_00000007.tmp" application/msword<br />file is :\tmp\upload_4d958287_11a33e76ab9__8000_00000006.tmp fileName:project.txt fileType:text/plain<br />file is :\tmp\upload_4d958287_11a33e76ab9__8000_00000007.tmp fileName:application base.doc fileType:application/msword<br />file is :\tmp\upload_4d958287_11a33e76ab9__8000_00000008.tmp fileName:zhongqi-bug.txt fileType:text/plain</p>
<p>原因：忘记了继承ActionSupport类。继承后异常消失。<br /></p>
<p><br />11--文件上传异常，不能创建File文件</p>
<p>Cannot create type class java.io.File from value C:\Documents and Settings\admin\桌面\OrderReporterServiceImp.java - [unknown location]</p>
<p>原因：忘记了在form表单里将enctype设置成文件上传格式：enctype="multipart/form-data"<br /><br /></p>
<p>12--当使用限制文件类型和大小的时候抛出空指针异常</p>
<p>java.lang.NullPointerExceptiondemo.struts2.action.ValidatFileUploadAction.execute(ValidatFileUploadAction.java:71)sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)原因：在ACTION中配置了fileUpload拦截器后忘记了配置默认拦截器：defautlStack。注意当ACTION中配置自己的拦截器后需要显示配置默认</p>
<p>拦截器defaultStack<br /></p>
<p><br />13--在国际化时候抛空指针异常：</p>
<p>16:31:12,812 ERROR [jsp]:253 - Servlet.service() for servlet jsp threw exception<br />java.lang.NullPointerException at java.text.MessageFormat.applyPattern(MessageFormat.java:414)</p>
<p>at java.text.MessageFormat.&lt;init&gt;(MessageFormat.java:350)<br />at com.opensymphony.xwork2.DefaultTextProvider.getText(DefaultTextProvider.java:70)</p>
<p>原因：忘记了在struts.xml中配置国际化常量，或者在struts.properties中配置全局国际化常量 struts.custom.i18n.resources=globeMessage<br /></p>
<p><br />14-- struts action的配置文件加载失败：</p>
<p>Unable to load configuration. - result - file:/D:/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:10:26</p>
<p>Caused by: No result type specified for result named 'error', perhaps the parent package does not specify the result type? - result - file:/D:/Java/apache-tomcat-5.5.20/webapps/mysts/WEB-INF/classes/test.xml:10:26<br />at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildResults(XmlConfigurationProvider.java:609)</p>
<p>原因：忘记了继承包struts-default<br /></p>
<p><br />15-- struts action 配置文件注意事项：</p>
<p>1. 别忘记了继承struts-default默认配置包</p>
<p>2.如果配置命名空间，一定要以"/"开始，例如：namespace="/test"</p>
<p>3.每个模块struts action配置文件中都可以配置全局result，global-result 经测试不会冲突，STRTUS会智能寻找该Action请求的</p>
<p>模块STRUTS ACTION配置包</p>
<p>关键字: 警告: no configuration found for the specified action </p>
<p>警告: No configuration found for the specified action: 'ShowMessage' in namespace: ''. Form action defaulting to 'action' attribute's literal value. </p>
<p>解决方法：</p>
<p>经过测试发现，是没有正确使用tag的原因，这种情况下，正确的写法应该是，&lt;s:form name="login" method="post" action="login" &gt; </p>
<p>您是否添加了action这个呢？</p><img src ="http://www.blogjava.net/peiliangye/aggbug/357856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/peiliangye/" target="_blank">ply</a> 2011-09-02 23:07 <a href="http://www.blogjava.net/peiliangye/articles/357856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下配置免安装版Tomcat .</title><link>http://www.blogjava.net/peiliangye/articles/357768.html</link><dc:creator>ply</dc:creator><author>ply</author><pubDate>Thu, 01 Sep 2011 15:06:00 GMT</pubDate><guid>http://www.blogjava.net/peiliangye/articles/357768.html</guid><wfw:comment>http://www.blogjava.net/peiliangye/comments/357768.html</wfw:comment><comments>http://www.blogjava.net/peiliangye/articles/357768.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/peiliangye/comments/commentRss/357768.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/peiliangye/services/trackbacks/357768.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;实习过程中，需要在Linux环境下配置免安装版本的Tomcat，下面列出详细步骤，希望对大家有帮助。 
<p><strong>一、下载免安装版Tomcat</strong></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;打开Tomcat主页<a href="http://tomcat.apache.org/"><font color="#336699">http://tomcat.apache.org/</font></a>，下载Tomcat免安装版，我这里下载的是apache-tomcat-7.0.2.tar.gz。</p>
<p><strong>二、配置Java环境变量</strong></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;Java的环境变量已经在前几篇文章里有了概述，详细见：<a href="http://www.fengwenxuan.com/index.php/red-hat-enterprise-linux/238.html"><font color="#336699">http://www.fengwenxuan.com/index.php/red-hat-enterprise-linux/238.html</font></a></p>
<p><strong>三、解压Tomcat</strong></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;将Tomcat解压缩到/usr/local目录下</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;# tar zxvf apache-tomcat-7.0.2.tar.gz&nbsp;</p>
<p><strong>四、启动Tomcat</strong></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;# cd /usr/local/apache-tomcat-7.0.2/bin</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;# ./startup.sh</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;如果启动成功，shell终端会出现如下提示：</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;Using CATALINA_BASE: &nbsp; /usr/local/apache-tomcat-7.0.2</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;Using CATALINA_HOME: &nbsp; /usr/local/apache-tomcat-7.0.2</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;Using CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.2/temp</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;Using JRE_HOME: &nbsp; &nbsp; &nbsp; /usr/local/jdk1.6.0_21</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;如果终端报错，基本上可以肯定是Jdk环境变量没有配置好，仔细在检查一下Jdk环境变量的配置</p>
<p><strong>五、测试Tomcat</strong></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;打开火狐浏览器，地址栏输入http://localhost:8080，回车后看到Tomcat的LOGO，表示一切正常。也可以更改Tomcat目录下的conf文件夹，里面有一个server.xml文件，修改成使用80端口，这样浏览器只要输入http://localhost/就可以直接进入你的主页了。</p>
<p><strong>六、停止Tomcat</strong></p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;# cd /usr/local/apache-tomcat-7.0.2/bin</p>
<p>&nbsp;&nbsp; &nbsp; &nbsp;# ./shutdown.sh</p>
<p><strong>七、设置开机自动启动Tomcat</strong></p>
<p>&nbsp;</p>
<p>方法一：</p>
<p>在/usr/local/apache-tomcat-7.0.2/bin/startup.sh 为:</p>
<p>JAVA_HOME=/home/fwx/jdk1.6.0_14</p>
<p>CLASSPATH=.:$JAVA_HOME/lib/tools.jar</p>
<p>PATH=$JAVA_HOME/bin:$PATH</p>
<p>export JAVA_HOME CLASSPATH PATH</p>
<p>export CATALINA_HOME=/usr/local/apache-tomcat-7.0.2<br />/usr/local/tomcat/bin/catalina.sh start</p>
<p>&nbsp;</p>
<p>在/etc/rc.d/rc.local中加入:<br />/usr/local/apache-tomcat-7.0.2/bin/startup.sh</p>
<p><br />方法二：<br />1、把下面的代码保存为tomcat文件，并让它成为可执行文件 chmod 755 tomcat.<br />#!/bin/bash<br />#<br /># fengwx0413@163.com<br /># /etc/rc.d/init.d/tomcat<br /># init script for tomcat precesses<br />#<br /># processname: tomcat<br /># description: tomcat is a j2se server<br /># chkconfig: 2345 86 16<br /># description: Start up the Tomcat servlet engine.</p>
<p>if [ -f /etc/init.d/functions ]; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . /etc/init.d/functions<br />elif [ -f /etc/rc.d/init.d/functions ]; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; . /etc/rc.d/init.d/functions<br />else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo -e "/atomcat: unable to locate functions lib. Cannot continue."<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit -1<br />fi</p>
<p>RETVAL=$?<br />CATALINA_HOME="/usr/local/apache-tomcat-7.0.2"</p>
<p>case "$1" in<br />start)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ -f $CATALINA_HOME/bin/startup.sh ];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $"Starting Tomcat"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $CATALINA_HOME/bin/startup.sh<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br />stop)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if [ -f $CATALINA_HOME/bin/shutdown.sh ];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; then<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $"Stopping Tomcat"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $CATALINA_HOME/bin/shutdown.sh<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fi<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br />*)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo $"Usage: $0 {start|stop}"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit 1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;;<br />esac</p>
<p>exit $RETVAL</p>
<p>2、将tomcat文件拷贝到/etc/init.d/下，并运行：chkconfig --add tomcat</p>
<p>3、在apache-tomcat-7.0.2/bin/catalina.sh文件中加入以下语句：<br />export JAVA_HOME=/home/fwx/jdk1.6.0_14<br />export CATALINA_HOME=/usr/local/apache-tomcat-7.0.2</p>
<p>export CATALINA_BASE=/usr/local/apache-tomcat-7.0.2<br />export CATALINA_TMPDIR=/usr/local/apache-tomcat-7.0.2/temp</p>
<p>启动tomcat： service tomcat start<br />停止tomcat: service tomcat stop　</p><img src ="http://www.blogjava.net/peiliangye/aggbug/357768.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/peiliangye/" target="_blank">ply</a> 2011-09-01 23:06 <a href="http://www.blogjava.net/peiliangye/articles/357768.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>采用过滤器解决中文乱码问题 </title><link>http://www.blogjava.net/peiliangye/articles/356999.html</link><dc:creator>ply</dc:creator><author>ply</author><pubDate>Sun, 21 Aug 2011 15:13:00 GMT</pubDate><guid>http://www.blogjava.net/peiliangye/articles/356999.html</guid><wfw:comment>http://www.blogjava.net/peiliangye/comments/356999.html</wfw:comment><comments>http://www.blogjava.net/peiliangye/articles/356999.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/peiliangye/comments/commentRss/356999.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/peiliangye/services/trackbacks/356999.html</trackback:ping><description><![CDATA[<div id="blog_content" class="blog_content">
<p>import java.io.IOException;<br /><br />import javax.servlet.Filter;<br />import javax.servlet.FilterChain;<br />import javax.servlet.FilterConfig;<br />import javax.servlet.ServletException;<br />import javax.servlet.ServletRequest;<br />import javax.servlet.ServletResponse;<br /><br />public class CharacterEncodingFilter implements Filter{<br /><br />&nbsp;&nbsp;&nbsp; private FilterConfig config;<br />&nbsp;&nbsp;&nbsp; private String encoding;<br />&nbsp;&nbsp;&nbsp; private boolean enable;<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; public void destroy() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public void doFilter(ServletRequest request, ServletResponse response,<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; FilterChain filterChain) throws IOException, ServletException {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(this.enable){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<span style="color: #ff0000"> request.setCharacterEncoding(encoding);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; response.setCharacterEncoding(encoding);</span> <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; filterChain.doFilter(request, response);<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public void <span style="color: #ff0000">init</span> (<span style="color: #ff0000">FilterConfig config</span> ) throws ServletException {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.config = config;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; loadConfigParams();<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; private void loadConfigParams() {<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <span style="color: #ff0000">this.encoding= this.config.getInitParameter("enconding");</span> <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; String flag = this.config.getInitParameter("enable");<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(flag.equalsIgnoreCase("true")){<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.enable = true;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }else{<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; this.enable = false;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }<br /><br />}</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>web.xml</p>
<p>&nbsp;</p>
<p>&lt;filter&gt;<br />&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;encondingFilter&lt;/filter-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;filter-class&gt;com.morning.web.filter.CharacterEncodingFilter&lt;/filter-class&gt;<br />&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;param-name&gt;enconding&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;param-value&gt;utf-8&lt;/param-value&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />&nbsp;&nbsp;&nbsp; &lt;init-param&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;param-name&gt;enable&lt;/param-name&gt;<br />&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;param-value&gt;true&lt;/param-value&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/init-param&gt;<br />&lt;/filter&gt;</p>
<p><br />&lt;filter-mapping&gt;<br />&nbsp;&nbsp;&nbsp; &lt;filter-name&gt;encondingFilter&lt;/filter-name&gt;<br />&nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;*.do&lt;/url-pattern&gt;<br />&lt;/filter-mapping&gt;</p></div> <img src ="http://www.blogjava.net/peiliangye/aggbug/356999.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/peiliangye/" target="_blank">ply</a> 2011-08-21 23:13 <a href="http://www.blogjava.net/peiliangye/articles/356999.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA经典算法40题</title><link>http://www.blogjava.net/peiliangye/articles/356998.html</link><dc:creator>ply</dc:creator><author>ply</author><pubDate>Sun, 21 Aug 2011 15:11:00 GMT</pubDate><guid>http://www.blogjava.net/peiliangye/articles/356998.html</guid><wfw:comment>http://www.blogjava.net/peiliangye/comments/356998.html</wfw:comment><comments>http://www.blogjava.net/peiliangye/articles/356998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/peiliangye/comments/commentRss/356998.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/peiliangye/services/trackbacks/356998.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1: JAVA经典算法40题&nbsp; 2: 【程序1】&nbsp;&nbsp; 题目：古典问题：有一对兔子，从出生后第3个月起每个月都生一对兔子，小兔子长到第四个月后每个月又生一对兔子，假如兔子都不死，问每个月的兔子总数为多少？&nbsp;&nbsp; &nbsp; 3: 1.程序分析：&nbsp;&nbsp; 兔子的规律为数列1,1,2,3,5,8,13,21....&nbsp;&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/peiliangye/articles/356998.html'>阅读全文</a><img src ="http://www.blogjava.net/peiliangye/aggbug/356998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/peiliangye/" target="_blank">ply</a> 2011-08-21 23:11 <a href="http://www.blogjava.net/peiliangye/articles/356998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>