??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美一区二粉嫩精品国产一线天,粉嫩喷白浆久久,夜夜嗨一区二区http://www.aygfsteel.com/zhhp1314520/articles/web_doc_excel.html捕风捕风Mon, 15 Jan 2007 07:08:00 GMThttp://www.aygfsteel.com/zhhp1314520/articles/web_doc_excel.htmlhttp://www.aygfsteel.com/zhhp1314520/comments/93962.htmlhttp://www.aygfsteel.com/zhhp1314520/articles/web_doc_excel.html#Feedback0http://www.aygfsteel.com/zhhp1314520/comments/commentRss/93962.htmlhttp://www.aygfsteel.com/zhhp1314520/services/trackbacks/93962.htmlweblogic应用E序下对于有时上传的文gQ(?/span>word?/span>excel{)需要打开或下载到本地Ӟ?/span>weblogic容器默认情况下可能是以记事本打开从而导致ؕ码现象。ؓ解决此问题可以在你的目QprojectQ下的web.xml文g中增加如下代码即可解决直接打开而出Cؕ码问?
Z让能在IE览器中自动打开或弹出对话框的设|:需要在WEB.XML中进行如下的讄Q在WEB.XML中添?lt;mime-mapping>
<extension>: 文g的扩展名
<mime-type>: 除了该类型文件的可执行文?同WINDOW注册表中?
/HKEY_CLASSES_ROOT下该cL件的Content Type 的g?
如能在IE中自动打开DOCQXLSQPDF文g需在web.xml文g中增加如下配|?
<mime-mapping>
<extension>doc</extension>
<mime-type>application/msword</mime-type>
</mime-mapping>

<mime-mapping>
<extension>xls</extension>
<mime-type>application/msexcel</mime-type>
</mime-mapping>

<mime-mapping>
<extension>pdf</extension>
<mime-type>application/pdf</mime-type>
</mime-mapping>
web.xml在WEB-INF目录下面.
x卛_解决出现上述的问题了.

 

 


在JSP打开EXCEL文g

 1.通过配置web.xml(tomcat\conf)Q实现在JSP打开EXCEL文g的功?

 

在WEB.xml(tomcat\conf)中加入如下代?

 

<mime-mapping>

<extension>xls</extension>

<mime-type>application/msexcel</mime-type>

</mime-mapping>

 

 

2.如果需要文件以EXCEL形式打开Q则在JSP文g头部增加如下配置

 

 

<%@ page contentType="application/vnd.ms-excel" %>

 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1293331



捕风 2007-01-15 15:08 发表评论
]]>
web.xml配置的详l说?/title><link>http://www.aygfsteel.com/zhhp1314520/articles/webxml.html</link><dc:creator>捕风</dc:creator><author>捕风</author><pubDate>Fri, 15 Dec 2006 07:34:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhhp1314520/articles/webxml.html</guid><wfw:comment>http://www.aygfsteel.com/zhhp1314520/comments/87955.html</wfw:comment><comments>http://www.aygfsteel.com/zhhp1314520/articles/webxml.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhhp1314520/comments/commentRss/87955.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhhp1314520/services/trackbacks/87955.html</trackback:ping><description><![CDATA[     摘要: (转蝲)[TOMCAT]用web.xml控制Web应用的行?1 定义头和根元素部|描q符文g像所有XML文g一P必须以一个XML头开始。这个头声明可以使用的XML版本q给出文件的字符~码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(?.2?.3Qƈ指定理此文件其余部分内容的语法的DTD(Document Type DefinitionQ文...  <a href='http://www.aygfsteel.com/zhhp1314520/articles/webxml.html'>阅读全文</a><img src ="http://www.aygfsteel.com/zhhp1314520/aggbug/87955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhhp1314520/" target="_blank">捕风</a> 2006-12-15 15:34 <a href="http://www.aygfsteel.com/zhhp1314520/articles/webxml.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring 对Log4j的增?http://www.aygfsteel.com/zhhp1314520/articles/spring_log4j.html捕风捕风Wed, 25 Oct 2006 00:53:00 GMThttp://www.aygfsteel.com/zhhp1314520/articles/spring_log4j.htmlhttp://www.aygfsteel.com/zhhp1314520/comments/77105.htmlhttp://www.aygfsteel.com/zhhp1314520/articles/spring_log4j.html#Feedback0http://www.aygfsteel.com/zhhp1314520/comments/commentRss/77105.htmlhttp://www.aygfsteel.com/zhhp1314520/services/trackbacks/77105.html Spring最擅长的,是在别家的蛋糕上再加些creamQ让你J2EE without Spring的时候心痒痒?

log4jQ可以有如下的creamQ?
1. 动态的改变记录U别和策略,不需要重启Web应用Q如《Effective Enterprise Java》所说?
2. 把log文g定在 /WEB-INF/logs/ 而不需要写l对路径?
3. 可以把log4j.properties和其他properties一h?WEB-INF/ Q而不是Class-Path?

在web.xml d

<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>

<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>

<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>

在上文的配置?
Log4jConfigListener会去WEB-INF/log4j.propeties d配置文g;
开一条watchdogU程?0U扫描一下配|文件的变化;
q把web目录的\径压入一个叫webapp.root的系l变量?

然后Q在log4j.properties 里就可以q样定义logfile位置


log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log

如果有多个web应用Q怕webapp.root变量重复Q可以在context-param里定义webAppRootKey?

在jboss中启动时出错Q?
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR A "org.jboss.logging.util.OnlyOnceErrorHandler" object is not assignable to a "org.apache.log4j.spi.ErrorHandler" variable.
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR The class "org.apache.log4j.spi.ErrorHandler" was loaded by
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR [WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
java.net.FactoryURLClassLoader@40f7a8
] whereas object of type
2006-03-22 00:58:38,983 INFO [STDOUT] log4j:ERROR "org.jboss.logging.util.OnlyOnceErrorHandler" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@120a47e].
2006-03-22 00:58:39,133 INFO [STDOUT] log4j:ERROR Could not create an Appender. Reported error follows.
2006-03-22 00:58:39,133 INFO [STDOUT] java.lang.ClassCastException


我log4j.properties如下Q?
log4j.rootLogger=DEBUG,stdout,R
#log4j.rootLogger=DEBUG,R

#--------------------stdout--------------------------------
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n

#--------------------R--------------------------------
#log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#this log file will be stored in web server's /bin directory,modify to your path which want to store.
log4j.appender.R.File=${webapp.root}/WEB-INF/logs/MeetPortal.log
#log4j.appender.R.datePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.R.datePattern='.'yyyy-MM-dd
log4j.appender.R.append=true
## Keep one backup file
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
#[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
按各位高手帮我看哈,谢谢?!!!!!!!!!!!!!!!!!!!!!!!111
===============================================
The error above is caused by jboss problem, see
http://jira.atlassian.com/browse/JRA-6823.
"

One way to solve the classloader issue is by reverting the JBoss configuration
to the old classloading model.
Edit the file
<jboss>/server/default/jbossweb-tomcat55.sar/META-INF/jboss-service.xml
Change the following lines:
<attribute name="Java2ClassLoadingCompliance">true</attribute>
<attribute name="UseJBossWebLoader">true</attribute>
(both are default set to false in jboss-4.0.2).


捕风 2006-10-25 08:53 发表评论
]]>
JavaScript中的Email验证http://www.aygfsteel.com/zhhp1314520/articles/validator_email.html捕风捕风Wed, 18 Oct 2006 09:48:00 GMThttp://www.aygfsteel.com/zhhp1314520/articles/validator_email.htmlhttp://www.aygfsteel.com/zhhp1314520/comments/75996.htmlhttp://www.aygfsteel.com/zhhp1314520/articles/validator_email.html#Feedback0http://www.aygfsteel.com/zhhp1314520/comments/commentRss/75996.htmlhttp://www.aygfsteel.com/zhhp1314520/services/trackbacks/75996.html<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>EMAIL?lt;/title>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function check()
{
 if(document.register.email.value.length!=0)
  {
    if (document.register.email.value.charAt(0)=="." ||       
         document.register.email.value.charAt(0)=="@"||      
         document.register.email.value.indexOf('@', 0) == -1 ||
         document.register.email.value.indexOf('.', 0) == -1 ||
         document.register.email.value.lastIndexOf("@")==document.register.email.value.length-1 ||
         document.register.email.value.lastIndexOf(".")==document.register.email.value.length-1)
     {
      alert("Email的格式不正确Q?);
      document.register.email.focus();
      return false;
      }
   }
 else
  {
   alert("Email的不能ؓI!");
   document.register.email.focus();
   return false;
   }
 return false;
}
//-->
</SCRIPT>
<form name="register" method="POST" action onSubmit="return  check();">
<p align="center">
  Email:<input type="text" name="email" size="20">
  <input type="submit" value="提交" name="B1">
  <input type="reset" value="重填" name="B2">
</p>
</form>
</body>
</html>



捕风 2006-10-18 17:48 发表评论
]]>
Eclipse实用快捷键大?/title><link>http://www.aygfsteel.com/zhhp1314520/articles/eclipse.html</link><dc:creator>捕风</dc:creator><author>捕风</author><pubDate>Tue, 17 Oct 2006 07:11:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhhp1314520/articles/eclipse.html</guid><wfw:comment>http://www.aygfsteel.com/zhhp1314520/comments/75623.html</wfw:comment><comments>http://www.aygfsteel.com/zhhp1314520/articles/eclipse.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhhp1314520/comments/commentRss/75623.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhhp1314520/services/trackbacks/75623.html</trackback:ping><description><![CDATA[ <p>Eclipse实用快捷键大全[转蝲]<br />Ctrl+1 快速修?最l典的快捷键,׃用多说了)<br />Ctrl+D: 删除当前?<br />Ctrl+Alt+?复制当前行到下一?复制增加)<br />Ctrl+Alt+?复制当前行到上一?复制增加)<br />Alt+?当前行和下面一行交互位|?特别实用,可以省去先剪?再粘贴了)<br />Alt+?当前行和上面一行交互位|?同上)<br />Alt+?前一个编辑的面<br />Alt+?下一个编辑的面(当然是针对上面那条来说了)<br />Alt+Enter 昄当前选择资源(工程,or 文g or文g)的属?br />Shift+Enter 在当前行的下一行插入空?q时鼠标可以在当前行的Q一位置,不一定是最?<br />Shift+Ctrl+Enter 在当前行插入I(原理同上?<br />Ctrl+Q 定位到最后编辑的地方<br />Ctrl+L 定位在某?(对于E序过100的h有音?<br />Ctrl+M 最大化当前的Edit或View (再按则反?<br />Ctrl+/ 注释当前?再按则取消注?br />Ctrl+O 快速显C?OutLine<br />Ctrl+T 快速显C当前类的承结?br />Ctrl+W 关闭当前Editer<br />Ctrl+K 参照选中的Word快速定位到下一?br />Ctrl+E 快速显C当前Editer的下拉列?如果当前面没有昄的用黑体表示)<br />Ctrl+/(键? 折叠当前cM的所有代?br />Ctrl+×(键? 展开当前cM的所有代?br />Ctrl+Space 代码助手完成一些代码的插入(但一般和输入法有冲突,可以修改输入法的热键,也可以暂用Alt+/来代?<br />Ctrl+Shift+E 昄理当前打开的所有的View的管理器(可以选择关闭,Ȁzȝ操作)<br />Ctrl+J 正向增量查找(按下Ctrl+J?你所输入的每个字母编辑器都提供快速匹配定位到某个单词,如果没有,则在stutes line中显C没有找C,查一个单词时,特别实用,q个功能Idea两年前就有了)<br />Ctrl+Shift+J 反向增量查找(和上条相?只不q是从后往前查)<br />Ctrl+Shift+F4 关闭所有打开的Editer<br />Ctrl+Shift+X 把当前选中的文本全部变呛_?br />Ctrl+Shift+Y 把当前选中的文本全部变为小?br />Ctrl+Shift+F 格式化当前代?br />Ctrl+Shift+P 定位到对于的匚wW?譬如{}) (从前面定位后面时,光标要在匚wW里?后面到前?则反?</p> <p>下面的快捷键是重构里面常用的,本hp己喜Ƣ且常用的整理一??一般重构的快捷键都是Alt+Shift开头的?<br />Alt+Shift+R 重命?(是我自己最q的一个了,其是变量和cȝRename,比手工方法能节省很多力_?<br />Alt+Shift+M 抽取Ҏ (q是重构里面最常用的方法之一?其是对一大堆泥团代码有用)<br />Alt+Shift+C 修改函数l构(比较实用,有N个函数调用了q个Ҏ,修改一ơ搞?<br />Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变?其是多处调用的时?<br />Alt+Shift+F 把Class中的local变量变ؓfield变量 (比较实用的功?<br />Alt+Shift+I 合ƈ变量(可能q样说有点不妥Inline)<br />Alt+Shift+V Ud函数和变?不怎么常用)<br />Alt+Shift+Z 重构的后悔药(Undo)</p> <p>~辑<br />作用?功能 快捷?<br />全局 查找q替?Ctrl+F <br />文本~辑?查找上一?Ctrl+Shift+K <br />文本~辑?查找下一?Ctrl+K <br />全局 撤销 Ctrl+Z <br />全局 复制 Ctrl+C <br />全局 恢复上一个选择 Alt+Shift+?<br />全局 剪切 Ctrl+X <br />全局 快速修?Ctrl1+1 <br />全局 内容辅助 Alt+/ <br />全局 全部选中 Ctrl+A <br />全局 删除 Delete <br />全局 上下文信?Alt+Q?br />Alt+Shift+?<br />Ctrl+Shift+Space <br />Java~辑?昄工具提示描述 F2 <br />Java~辑?选择装元素 Alt+Shift+?<br />Java~辑?选择上一个元?Alt+Shift+?<br />Java~辑?选择下一个元?Alt+Shift+?<br />文本~辑?增量查找 Ctrl+J <br />文本~辑?增量逆向查找 Ctrl+Shift+J <br />全局 _脓 Ctrl+V <br />全局 重做 Ctrl+Y <br /> <br />查看<br />作用?功能 快捷?<br />全局 攑֤ Ctrl+= <br />全局 ~小 Ctrl+- <br /> <br />H口<br />作用?功能 快捷?<br />全局 Ȁzȝ辑器 F12 <br />全局 切换~辑?Ctrl+Shift+W <br />全局 上一个编辑器 Ctrl+Shift+F6 <br />全局 上一个视?Ctrl+Shift+F7 <br />全局 上一个透视?Ctrl+Shift+F8 <br />全局 下一个编辑器 Ctrl+F6 <br />全局 下一个视?Ctrl+F7 <br />全局 下一个透视?Ctrl+F8 <br />文本~辑?昄标尺上下文菜?Ctrl+W <br />全局 昄视图菜单 Ctrl+F10 <br />全局 昄pȝ菜单 Alt+- <br /> <br />D<br />作用?功能 快捷?<br />Java~辑?打开l构 Ctrl+F3 <br />全局 打开cd Ctrl+Shift+T <br />全局 打开cd层次l构 F4 <br />全局 打开声明 F3 <br />全局 打开外部javadoc Shift+F2 <br />全局 打开资源 Ctrl+Shift+R <br />全局 后退历史记录 Alt+?<br />全局 前进历史记录 Alt+?<br />全局 上一?Ctrl+, <br />全局 下一?Ctrl+. <br />Java~辑?昄大纲 Ctrl+O <br />全局 在层ơ结构中打开cd Ctrl+Shift+H <br />全局 转至匚w的括?Ctrl+Shift+P <br />全局 转至上一个编辑位|?Ctrl+Q <br />Java~辑?转至上一个成?Ctrl+Shift+?<br />Java~辑?转至下一个成?Ctrl+Shift+?<br />文本~辑?转至?Ctrl+L <br /> <br />搜烦<br />作用?功能 快捷?<br />全局 出现在文件中 Ctrl+Shift+U <br />全局 打开搜烦对话?Ctrl+H <br />全局 工作Z的声?Ctrl+G <br />全局 工作Z的引?Ctrl+Shift+G </p> <p>文本~辑<br />作用?功能 快捷?<br />文本~辑?改写切换 Insert <br />文本~辑?上滚?Ctrl+?<br />文本~辑?下滚?Ctrl+?<br /> <br />文g<br />作用?功能 快捷?<br />全局 保存 Ctrl+X <br />Ctrl+S <br />全局 打印 Ctrl+P <br />全局 关闭 Ctrl+F4 <br />全局 全部保存 Ctrl+Shift+S <br />全局 全部关闭 Ctrl+Shift+F4 <br />全局 属?Alt+Enter <br />全局 新徏 Ctrl+N <br /> <br />目<br />作用?功能 快捷?<br />全局 全部构徏 Ctrl+B <br /> <br />源代?br />作用?功能 快捷?<br />Java~辑?格式?Ctrl+Shift+F <br />Java~辑?取消注释 Ctrl+\ <br />Java~辑?注释 Ctrl+/ <br />Java~辑?d导入 Ctrl+Shift+M <br />Java~辑?l织导入 Ctrl+Shift+O <br />Java~辑?使用try/catch块来包围 未设|,太常用了Q所以在q里列出,自己讄?br />也可以用Ctrl+1自动修正?<br /> <br />q行<br />作用?功能 快捷?<br />全局 单步q回 F7 <br />全局 单步跌 F6 <br />全局 单步跛_ F5 <br />全局 单步跛_选择 Ctrl+F5 <br />全局 调试上次启动 F11 <br />全局 l箋 F8 <br />全局 使用qo器单步执?Shift+F5 <br />全局 d/去除断点 Ctrl+Shift+B <br />全局 昄 Ctrl+D <br />全局 q行上次启动 Ctrl+F11 <br />全局 q行臌 Ctrl+R <br />全局 执行 Ctrl+U <br /> <br />重构<br />作用?功能 快捷?<br />全局 撤销重构 Alt+Shift+Z <br />全局 抽取Ҏ Alt+Shift+M <br />全局 抽取局部变?Alt+Shift+L <br />全局 内联 Alt+Shift+I <br />全局 Ud Alt+Shift+V <br />全局 重命?Alt+Shift+R <br />全局 重做 Alt+Shift+Y </p> <img src ="http://www.aygfsteel.com/zhhp1314520/aggbug/75623.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhhp1314520/" target="_blank">捕风</a> 2006-10-17 15:11 <a href="http://www.aygfsteel.com/zhhp1314520/articles/eclipse.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2新特性预?/title><link>http://www.aygfsteel.com/zhhp1314520/articles/struts2.html</link><dc:creator>捕风</dc:creator><author>捕风</author><pubDate>Sun, 15 Oct 2006 03:44:00 GMT</pubDate><guid>http://www.aygfsteel.com/zhhp1314520/articles/struts2.html</guid><wfw:comment>http://www.aygfsteel.com/zhhp1314520/comments/75247.html</wfw:comment><comments>http://www.aygfsteel.com/zhhp1314520/articles/struts2.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/zhhp1314520/comments/commentRss/75247.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/zhhp1314520/services/trackbacks/75247.html</trackback:ping><description><![CDATA[ <p>看到关于框架选择的帖子,贡献一点东西,如果你有选择struts的意向,q是直接{struts2好了?/p> <p> <b>Struts2与Struts1的对?/b> </p> <p>来源Qstruts2开发组 译QtianxinetQ胖_</p> <p> <b>Action c? </b> <br />?Struts1要求Actioncȝ承一个抽象基cRStruts1的一个普遍问题是使用抽象cȝE而不是接口?<br />?Struts 2 Actioncd以实C个Action接口Q也可实现其他接口,使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类d?常用的接口。Action接口不是必须的,M有execute标识的POJO对象都可以用作Struts2的Action对象?<br /><b>U程模式: </b><br />?Struts1 Action是单例模式ƈ且必LU程安全的,因ؓ仅有Action的一个实例来处理所有的h。单例策略限制了Struts1 Action能作的事Qƈ且要在开发时特别心。Action资源必须是线E安全的或同步的?<br />?Struts2 Action对象为每一个请求生一个实例,因此没有U程安全问题。(实际上,servlet容器l每个请求生许多可丢弃的对象,q且不会D性能和垃圑֛攉题) </p> <p> <b>Servlet 依赖: </b> <br />?Struts1 Action 依赖于Servlet API ,因ؓ当一个Action被调用时HttpServletRequest ?HttpServletResponse 被传递给executeҎ?<br />?Struts 2 Action不依赖于容器Q允许Actionq容器单独被测试。如果需要,Struts2 Action仍然可以讉K初始的request和response。但是,其他的元素减或者消除了直接讉KHttpServetRequest ?HttpServletResponse的必要性?</p> <p> <b>可测?</b> <br />?试Struts1 Action的一个主要问题是executeҎ暴露了servlet APIQ这使得试要依赖于容器Q。一个第三方扩展Q-Struts TestCaseQ-提供了一套Struts1的模拟对象(来进行测试)?<br />?Struts 2 Action可以通过初始化、设|属性、调用方法来试Q“依赖注入”支持也使测试更Ҏ?</p> <p> <b>捕获输入: </b> <br />?Struts1 使用ActionForm对象捕获输入。所有的ActionForm必须l承一个基cR因为其他JavaBean不能用作ActionFormQ开发者经常创建多余的cL莯入。动态BeanQDynaBeansQ可以作为创ZlActionForm的选择Q但是,开发者可能是在重新描q?创徏)已经存在的JavaBeanQ仍然会D有冗余的javabeanQ?<br />?Struts 2直接使用Action属性作入属性,消除了对W二个输入对象的需求。输入属性可能是有自??属性的rich对象cd。Action属性能够通过 web面上的taglibs讉K。Struts2也支持ActionForm模式。rich对象cdQ包括业务对象,能够用作输入/输出对象。这U?ModelDriven Ҏ简化了taglib对POJO输入对象的引用?</p> <p> <b>表达式语aQ?/b> <br />?Struts1 整合了JSTLQ因此用JSTL EL。这UEL有基本对象图遍历Q但是对集合和烦引属性的支持很弱?<br />?Struts2可以使用JSTLQ但是也支持一个更强大和灵zȝ表达式语aQ-"Object Graph Notation Language" (OGNL). </p> <p> <b>l定值到面QviewQ? </b> <br />?Struts 1使用标准JSP机制把对象绑定到面中来讉K?<br />?Struts 2 使用 "ValueStack"技术,使taglib能够讉KD不需要把你的面QviewQ和对象l定h。ValueStack{略允许通过一pd名称相同但类型不同的属性重用页面(viewQ?<br />  <br /><b>cd转换Q?/b><br />?Struts 1 ActionForm 属性通常都是Stringcd。Struts1使用Commons-Beanutilsq行cd转换。每个类一个{换器Q对每一个实例来说是不可配置的?<br />?Struts2 使用OGNLq行cd转换。提供基本和常用对象的{换器?</p> <p> <b>校验Q?/b> <br />?Struts 1支持在ActionForm的validateҎ中手动校验,或者通过Commons Validator的扩展来校验。同一个类可以有不同的校验内容Q但不能校验子对象?<br />?Struts2支持通过validateҎ和XWork校验框架来进行校验。XWork校验框架使用为属性类cd定义的校验和内容校验Q来支持chain校验子属?</p> <p> <b>Action执行的控Ӟ</b> <br />?Struts1支持每一个模块有单独的Request ProcessorsQ生命周期)Q但是模块中的所有Action必须׃n相同的生命周期?<br />?Struts2支持通过拦截器堆栈(Interceptor StacksQؓ每一个Action创徏不同的生命周期。堆栈能够根据需要和不同的Action一起用?/p> <img src ="http://www.aygfsteel.com/zhhp1314520/aggbug/75247.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/zhhp1314520/" target="_blank">捕风</a> 2006-10-15 11:44 <a href="http://www.aygfsteel.com/zhhp1314520/articles/struts2.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>log4配置文ghttp://www.aygfsteel.com/zhhp1314520/articles/log4j.html捕风捕风Fri, 13 Oct 2006 01:58:00 GMThttp://www.aygfsteel.com/zhhp1314520/articles/log4j.htmlhttp://www.aygfsteel.com/zhhp1314520/comments/74926.htmlhttp://www.aygfsteel.com/zhhp1314520/articles/log4j.html#Feedback0http://www.aygfsteel.com/zhhp1314520/comments/commentRss/74926.htmlhttp://www.aygfsteel.com/zhhp1314520/services/trackbacks/74926.html#############################################
#
# Log4J 配置文g
#
#############################################

# 定义~省的日志别和输出对象
log4j.rootLogger=INFO, logfile

# 讑֮控制台输出模?br />log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{MM/dd HH:mm:ss}] [%-3p] %c{1}: %m%n

# 针对package定义日志U别
log4j.logger.org.apache=WARN
log4j.logger.com.paic.pafademo=DEBUG

# 讑֮日志文g的输出模?br />log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern=yyyyMMdd
# ${pafa.log.home}通过参数-D指定Q比如启动WebLogic时加入参?Dpafa.log.home=c:/
log4j.appender.logfile.File=${log.home}/appdemo/pafa.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{MM/dd HH:mm:ss} [%-3p] %c{1}: %m%n

# 如果要查看iBATIS的SQL日志信息Q确保有下面配置
log4j.logger.com.ibatis=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

捕风 2006-10-13 09:58 发表评论
]]>
weblogic.xml的作用和配置 http://www.aygfsteel.com/zhhp1314520/articles/weblogic_basic.html捕风捕风Fri, 13 Oct 2006 01:56:00 GMThttp://www.aygfsteel.com/zhhp1314520/articles/weblogic_basic.htmlhttp://www.aygfsteel.com/zhhp1314520/comments/74924.htmlhttp://www.aygfsteel.com/zhhp1314520/articles/weblogic_basic.html#Feedback0http://www.aygfsteel.com/zhhp1314520/comments/commentRss/74924.htmlhttp://www.aygfsteel.com/zhhp1314520/services/trackbacks/74924.htmlweblogic Server允许通过讄weblogic应用E序扩展描述W(weblogic.xmlQ配|jsp容器Q?br />该文仉常位于web应用E序的web-inf目录下。一般不通过修改weblogic文g直接配置Q?br />而是通过控制台配|该文gQ在Deploments-->web Application-->defaultWebApp中配|?br />可在开发和生环境中配|不同的信息?br />主要配置信息Q?br />compilerSupportsEncoding
//trueQ-支持使用字符?br />encoding
//指定jsp文g的默认字W集Q如gb2312Q?br />vervose
//是否调试信息输出到览器和日志Q?br />keepgenerated
//是否让编译jsp文g产生?java文g持箋存在Q?br />Page Check Seconds
//正数Q-在以Uؓ单位的时间间隔检查jsp文g是否发生了修改,如果是则重新~译Q?br />// 0Q-在每一个请求检查jsp;
//-1Q-不对jsp文gq行查?br />Precompile
//trueQ-在weblogic服务器启动时自动~译所有的jsp?br />Debug Enable //trueQ-是否允许调试?br />
详细信息Q请参照Q?br />http://www.matrix.org.cn:8080/re ... 3115_XbkjYZEJXw.pdf

捕风 2006-10-13 09:56 发表评论
]]>
创徏安全的web应用E序http://www.aygfsteel.com/zhhp1314520/articles/web_security.html捕风捕风Wed, 11 Oct 2006 02:50:00 GMThttp://www.aygfsteel.com/zhhp1314520/articles/web_security.htmlhttp://www.aygfsteel.com/zhhp1314520/comments/74499.htmlhttp://www.aygfsteel.com/zhhp1314520/articles/web_security.html#Feedback0http://www.aygfsteel.com/zhhp1314520/comments/commentRss/74499.htmlhttp://www.aygfsteel.com/zhhp1314520/services/trackbacks/74499.htmlZ保证web应用E序的安全,应该对登录的用户q行w䆾验证。在WebLogic Server中进行web应用E序的n份验证有两种方式Q?br />1.基本验证方式QBasic Authentication)
2.表单验证方式QForm AuthenticationQ?br />基本验证方式比较单,而表单验证方式可以提供自定义的登录页面和出错处理面?br />1.基本验证方式QBasic AuthenticationQ?br /> 采用q种验证方式的web应用E序Q用戯问时首先会弹Z个登录界面要求用戯入用户名和密码,然后查看此用h否在web应用中定义的安全角色中?br /> 开发一个以基本验证方式q行w䆾验证的web应用E序的基本步骤如下?br /> Q?Q在web应用E序的描q符web.xml中做如下声明Q?br />

  < security-role >
  
< role-name > webuser </ role-name >
 
</ security-role >


指定验证方式为基本验证方式:?lt;login-config>定义。例如:

< login-config >
  
< auth-method > BASIC </ auth-method >
  
< realm-name > default </ realm-name >
 
</ login-config >

定义被保护的资源Q例如下面这D声明指明了只有角色webuser才能讉K被保护的资源Q?br />

< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > Success </ web-resource-name >
  
< url-pattern > /welcome.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
 
</ security-constraint >


Q?Q在weblogic.xml文g中定义安全角色到weblogic server中用h用户l的映射。即指定weblogic server中的哪些实体属于安全角色。例如下面这D声明将weblogic server中的实体myGroup映射到安全角色webUserQ?br />

< weblogic-web-app >
 
< security-role-assignment >
  
< role-name > webuser </ role-name >
  
< principal-name > myGroup </ principal-name >
 
</ security-role-assignment >
</ weblogic-web-app >


 下面时完整的相关面Q?br /> web.xml文g
 
 

< web-app >
 
< welcome-file-list >
  
< welcome-file > welcome.jsp </ welcome >
 
</ welcome-file-list >
 
< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > Success </ web-resource-name >
  
< url-pattern > /welcome.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
 
</ security-constraint >
 
< login-config >
  
< auth-method > BASIC </ auth-method >
  
< realm-name > default </ realm-name >
 
</ login-config >
 
< security-role >
  
< role-name > webuser </ role-name >
 
</ security-role >
</ web-app >

weblogic.xml文g

< weblogic-web-app >
 
< security-role-assignment >
  
< role-name > webuser </ role-name >
  
< principal-name > myGroup </ principal-name >
 
</ security-role-assignment >
</ weblogic-web-app >

 

welcome.jsp文g

< html >
 
< head >
  
< title > Browser Based Authentication Example Welcome Page </ title >
 
</ head >
 
< body >
 
< h1 > Browser Based Authentication Example Welcome Page </ h1 >
 
< p > Welcome <% = request.getRemoteUser() %>
 
</ body >
</ html >

2.表单验证方式
使用表单验证方式q行web应用E序的n份验证,需要开发者定义一个登录页面和dp|的错误处理页面。登录页面可以时html、jsp或servlet。用这U验证方式的好处时可以对E序有更q一步的控制。登录页面应该让用户输入用户名和密码Q错误处理页面应该将验证p|的信息反馈给用户。开发用表单验证方式的web应用E序的基本步骤如下?br />Q?Q编写登录页面和错误处理面Q在web应用E序的欢q页面中加入到登录页面的链接Q提C用户首先进行登录。登录页面D例:


< form  method ="POST"  action ="j_security_check" >
   
< input  type ="text"  name ="j_username" >
   
< input  type ="text"  name ="j_password" >
   
< input  type ="submit"  value ="Log in" >
</ form >

Q?Q配|web.xml

< web-app >
< welcome-file-list >
  
< welcome-file > welcome.jsp </ welcome >
 
</ welcome-file-list >
< login-config >
   
< auth-method > FORM </ auth-method >
   
< realm-name > Web Demo </ realm-name >
   
< form-login-config >
      
< form-login-page > /admin/login.jsp </ form-login-page >
      
< form-error-page > /admin/error.jsp </ form-error-page >
   
</ form-login-config >
</ login-config >
< security-role >
  
< role-name > webuser </ role-name >
</ security-role >
< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > Success </ web-resource-name >
  
< url-pattern > /welcome.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
</ security-constraint >
< security-constraint >
 
< web-resource-collection >
  
< web-resource-name > login </ web-resource-name >
  
< url-pattern > /login2.jsp </ url-pattern >
   
< http-method > GET </ http-method >
   
< http-method > POST </ http-method >
 
</ web-resource-collection >
 
< auth-constraint >
  
< role-name > webuser </ role-name >
 
</ auth-constraint >
</ security-constraint >
</ web-app >

Q?Q在weblogic.xml文g中定义安全角色到weblogic server中实体(用户或用LQ的映射。例如:

< weblogic-web-app >
 
< security-role-assignment >
  
< role-name > webuser </ role-name >
  
< principal-name > myGroup </ principal-name >
 
</ security-role-assignment >
</ weblogic-web-app >


捕风 2006-10-11 10:50 发表评论
]]>
վ֩ģ壺 | | | | | | ³ľ| | | | | | | ֽ| | ˳| | | | ͨ| ͬ| ͼ| Դ| | ֣| | | | | ͨ| | ʡ| | ŷ| | Ƹ| | Ͳ| | Ϫ| |