??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲第一av网,a4yy在线播放免费观看视频,国产精品丝袜在线 http://www.aygfsteel.com/kim/category/17073.htmlzh-cn Wed, 28 Feb 2007 04:05:09 GMT Wed, 28 Feb 2007 04:05:09 GMT 60 JSP生成静态页实践及其设计思想 http://www.aygfsteel.com/kim/archive/2007/01/10/92858.html大熊?/dc:creator>大熊?/author>Wed, 10 Jan 2007 03:38:00 GMT http://www.aygfsteel.com/kim/archive/2007/01/10/92858.html http://www.aygfsteel.com/kim/comments/92858.html http://www.aygfsteel.com/kim/archive/2007/01/10/92858.html#Feedback 1 http://www.aygfsteel.com/kim/comments/commentRss/92858.html http://www.aygfsteel.com/kim/services/trackbacks/92858.html
转: 引子Q?br />我们以两个大型网站ؓ例作比较Q?br />51job和智联招聘(先声明我不是Z们作q告Q仅以他们ؓ例作技术上的比较) 51job采用的是比较“先q”的php技术,而智联用的是比较落后的asp.但我们可能会明显的感觉到51job的反应速度相比招聘实在是太慢了Qؓ什么会q样Q细心的人可能会察觉C。智联虽然用的是asp,但他采用了另一U更巧妙的技?-asp生成静态页技术。所有的动态页基本上都转换成了html静态页Q不用访问数据库Q当然反应快了?br />下面我们讨论一下jsp怎么转换成html?? 首先要做一个模ѝ后~不限Q但一般都?.template例子 <html> <head> <title>#title#</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <LINK href="../css.css" rel=stylesheet type=text/css> </head> <body> <P align="center"> #title#<BR><BR><BR> 作者:#author#<BR><BR> <BR> #content#<BR><BR><BR><BR> </P> </body> </html> 做一个处理模板的cL者jsp文g?明问题我们从单入手以一个jsp文gZ) ?filePath = request.getRealPath("/")+"WEB-INF/templates/template.htm"; ?out.print(filePath); ?String templateContent=""; ?FileInputStream fileinputstream = new FileInputStream(filePath);//d模块文g ?int lenght = fileinputstream.available(); ?byte bytes[] = new byte[lenght]; ?fileinputstream.read(bytes); ?fileinputstream.close(); ?templateContent = new String(bytes); ?out.print("以下是模板内容:<br>"+templateContent+"<br> 以下是置换以后的html内容<br><hr>"); ?templateContent=templateContent.replaceAll("#title#",title); ?templateContent=templateContent.replaceAll("#author#",editer);//替换掉模块中相应的地?br />?templateContent=templateContent.replaceAll("#content#",content); ?// Ҏ旉得文件名 ?Calendar calendar = Calendar.getInstance(); ?String fileame = String.valueOf(calendar.getTimeInMillis()) +".html"; ?fileame = request.getRealPath("/")+fileame;//生成的html文g保存路径 ?out.print(templateContent); ?FileOutputStream fileoutputstream = new FileOutputStream(fileame);//建立文g输出?br />?byte tag_bytes[] = templateContent.getBytes(); ?fileoutputstream.write(tag_bytes); ?fileoutputstream.close(); 嗯,核心技术就是这样了Q如果大家要求的性能更高Q可以改用freemarker做模ѝfreemarker的用方法可以参阅我的另一文章《Freemarker 模板工具的作用及使用?/font>
转自JavaThink
]]> ZJava的Web应用开发规?/title> http://www.aygfsteel.com/kim/archive/2007/01/10/92856.html大熊?/dc:creator>大熊?/author>Wed, 10 Jan 2007 03:30:00 GMT http://www.aygfsteel.com/kim/archive/2007/01/10/92856.html http://www.aygfsteel.com/kim/comments/92856.html http://www.aygfsteel.com/kim/archive/2007/01/10/92856.html#Feedback 0 http://www.aygfsteel.com/kim/comments/commentRss/92856.html http://www.aygfsteel.com/kim/services/trackbacks/92856.html
转: 1 前言 Z使Y件开发过E有章可循,保证软g质量Q加强开发管理? 2 开发管?br /> 目q度周报表格如下Q?br /> 目~号Q? 汇报人: 汇报日期Q? 目q度详细描述Q? 其他问题Q? 3 目周期 叔R目开发周期分Z下几个步骤: 步骤 说明 参与角色 生成文档或程序(?号ؓ可选) 可行性分?寚w目的技术,功能需求和市场q行调研和初步分析,定是否需要立开发?部门ȝ核心技术员 可行性分析报?技术调研报? 立项 正式立项Q由部门ȝ指定目l理Q项目经理制定初步计划。初步计划包括设计和开发时间的初步估算?部门ȝ核心技术员 目初步计划 需求分?寚w目进行详l的需求分析,~写需求分析文档。对于B/Sl构软gpȝ需要制作静态演C页面。需求分析文档和静态演C页面需要通过部门ȝ审批才能够进行到下一个步?目l理目核心组 需求分析文档静态演C页面项目计划修订版本详l设?Ҏ需求分析对目q行详细设计。详l设计以后,目l理同部门主一h定项目小l开发成员?目l理目核心组 详细设计文档目计划定版本开?Ҏ设计开发项目,q工对操作界面q行化?目l理目开发员工 目计划修订版本*试 目l理提交试甌Q由试部门寚w目进行测试。项目小l配合测试部门修改Y件中的错误?目l理目开发员试?试甌试计划试报告 目验收 目验收归档 部门ȝ目l理 目所有文档和E序 4 命名规范 4.1 目~号命名规范 待完?br /> 4.2 文档命名规范 待完?br /> 4.3 jsp/html命名规范 jsp与html文g名全部小写,q循如下的规范Q?br /> 数据/内容昄?br /> 名词Q多个单词用下划U分隔,要求能说明显C内容的信息Qؓ避免冲突Q可加上 “_list”。例如: new_message.html ?my_file_list.jsp 操作处理?br /> 命名格式Q名词_下划U_动词Q例如:file_delete.jsp?br /> 含frame面 <frameset>?lt;frame>的name属性命名的格式是①xxx._②xxx_③xxx ①xxx部分用来标识当前面隶属于整个系l中的哪一功能模块? 如:属于ebwebmail则被表示为ebwebmailQ其它情况依ơ类推? ②xxx部分标识当前面所要完成的功能?br /> 如:完成用户d的功能则被标识ؓloginQ其它情况依ơ类推? ③xxx部分用来用来表示面在浏览器H口所处的位置? 处于览器窗口的剙则标识ؓtopQ其它情况依ơ类推?br /> 例如Qebwebmail_inbox_top.jsp <frame> src属性相应的文g名根据情况徏议在原命名规范上用下划线加上所处窗口的位置?br /> javascript脚本Ҏ 脚本函数都以①xxx_②xxx的方式命名?br /> ①xxx对应面隶属的模块?br /> ②xxx表示函数所要实现的功能(动宾l构)Q多个单词用下划U连接?br /> 例如Qebwebmail_send_mail() 模块通用的脚本函数必集合于一个js文g中,在页面上通过<script language=”javascript?src=”url?gt;</script>形式导入。js文g名命名用模块名Q例如:ebwebmail.js?br /> 如果目已经提供了公共js脚本Q则优先使用公共js脚本中提供的函数?br /> 所有定义方法的<script>元素定义?lt;head></head>中或</body>后?br /> javascript脚本内部变量与参?br /> 单词之间用下划线分隔且全部小写,例如Q?var file_size?br /> <form>表单name属?br /> l一以“form_”开_其后加该表单所需攉的信息的作用或动作,例如Qform_file_upload ?form_send_mail?br /> 表单elements 表单element的名UCelement需攉的信息标C命名,单词之间使用下划U分隔且全部写Q例如: <input type=”text?name=”username?gt; <input type=”radio?name=”file_type?gt; <textarea name=”content?rows=??cols=?0?gt; cookie命名 命名格式Q模块名_存储信息名词(多个单词用下划线分隔) Q全部大写,例如QEBWEBMAIL_SORT_TYPE?br /> window.open中name参数的命?br /> javascript的window.openҎ中有一个name的参敎ͼ览器约定同L名字的窗口只能打开一个,如果E序间名字重复将怺冲突。如果不限制打开H口敎ͼ可以指定‘’或“”(不是nullQ,否则需要加上模块名Q例如ebwebmail_viewmail?br /> 4.4 数据库命名规?br /> 数据库表命名均遵循以下规范: 模块名_存储信息名词(多个单词用下划线分隔)Q全部小写,例如Qebwebmail_message?br /> 数据库字D命名遵循以下规范: 存储信息名词(多个单词用下划线分隔)Q全部小写,例如Qmessage_id?br /> 5 文档规范 1. ~写文档目前主要使用的工hWordQ项目计划文档例外,需要用Project制作Q,辅助使用的工hVisioQPowerPointQERWin{?br /> 2. 文档务必保持D落格式整齐Q文字字体,颜色Q大统一?br /> 3. 如果需要摘引html面中的内容Q不能直接从html中粘贴过来(会在word文档中留下html格式Q,而必d去除格式Q例如:先粘贴到notepad中?br /> 4. 务必注意中英文标点符P文档正文一概用中文标点符受?br /> 5. 如果需要在文档中插图,不要使用word自带的绘囑ַ兗可以选择使用PowerPoint或visio。用PowerPointQ选择“插入?>“对象?>“Microsoft PowerPoint qȝ片”。用visioQ需要另外徏立visio文档Q绘制完以后_脓到word中?br /> 6. 数据建模使用ERwin工具Q文档中仅需要粘贴数据模型的逻辑视图Qlogical viewQ,另外q要附上表结构描q?br /> 7. 修改他h文档务必使用修订模式Q以便保留备修改的内宏V用修订模式,选择“工具?>“修订?>“突出显CZ订”,勾上“编辑时标记修订”?br /> 附:一些模?br /> ü Javac设?class documentation) 声明Q?br /> 描述Q?br /> 属性:1. property_name 声明 说明 ҎQ?1. method_name 声明 说明 参数 q回? 异常 注: Ҏ声明中,如果遇到重蝲的方法,可以使用“|”表C可以接受不同类型的参数Q例如:“String value | int value”;可以使用“[]”表C可选的参数Q例如:“Object message[,Throwable t]?br /> Servlet设计(servlet document) cd 接受参数列表 描述 数据表设?data modeling) 表名Qsome_table 说明Qdescription 表结构: 字段?cd 说明 6 代码规范 6.1 Java源代码规?br /> 6.1.1 命名 u Package 的命?br /> Package 的名字应该都是由一个小写单词组成,例如Qnet.ebseries.modules?br /> 此外Q对于包名我们做如下U定Q?br /> 1. 工具函数cd名前~?util 2. Servletcd名前~?servlet 3. test casecd名前~?test Class 的命?br /> Class 的名字必ȝ大写字母开头而其他字母都写的单词组成,例如QDataFile或InfoParser?br /> Class 变量的命?br /> 变量的名字必ȝ一个小写字母开头。后面的单词用大写字母开_例如Qdebug ?inputFileSize?br /> Static Final 变量的命?br /> Static Final 变量的名字应该都大写Qƈ且指出完整含义,例如QMAX_UPLOAD_FILE_SIZE=1024?br /> 参数的命?br /> 参数的名字必d变量的命名规范一致?br /> 数组的命?br /> 数组应该L用下面的方式来命名: byte[] buffer; 而不是: byte buffer[]; Ҏ的参?br /> 使用有意义的参数命名Q如果可能的话,使用和要赋值的字段一L名字Q?br /> SetCounter(int size) { this.size = size; } 6.1.2 代码格式 文g头声?br /> 源文件的头部需要一个historyD,对于每次Ҏ文g的重大改动,都需要在historyD中注明。该D定义在package和 import之间Q例如: Q?**************************************************** * HISTORY * * 2002/01/29 Biz 创徏文g * * 2002/02/19 kevin 增加新功?br /> * *******************************************************/ import序 import包按一下顺序: 1. jdk标准?br /> 2. java扩展包(例如servletQjavamailQjce{) 3. 使用的外部库的包Q例如xml parserQ?br /> 4. 使用的项目的公共?br /> 5. 使用的模块的其他?br /> 每一cimport后面加一个换行?br /> 例如Q?br /> import java.io.*; import java.util.*; import javax.servlet.*; import javax.mail.*; import org.apache.xml.*; import net.ebseries.*; import net.ebseries.util.*; import net.ebseries.ebwebmail.*; 代码块书写格?br /> 可以选择以下L一U代码块的书写方式: if (true){ //body } if (true) { //body } 使用W二U书写方式。如果是修改他h的代码,必须使用代码原来的书写方式?br /> 对于代码块过长,过1屏以上,}后面要说明属于那个代码块Q例如: if (i > 100) { //too many lines more than one screen }// if (i > 100) 关于~进 ~进使用4个连l空|不要在源文g中保存tab字符Q?h意调整所用的IDE工具Q打开tab转换为空格功能?br /> 宽 宽应该讄?0字符. 源代码一般不会超q这个宽? q导致无法完整显C? 但这一讄也可以灵z调? 在Q何情况下, 长的语句应该在一个逗号或者一个操作符后折? 一条语句折行后, 应该比原来的语句再羃q?个空根{?br /> 操作W?br /> 操作W左叛_用一个空格分隔?br /> 例如Q?br /> int a = b; if (a > 0); SQL语句 代码中书写的sql语句要求sql关键字全部大写,表名和字D名写。例如: SELECT user_id, name FROM account WHERE user_id > ? AND depart = ? ORDER BY name cdҎ定义 cd义或Ҏ定义q长需要换行书写,例如Q?br /> public class CounterSet extends Observable implements Cloneable private PortletSet getPortlets( Portlets portlets, RunData rundata, boolean application, boolean applicationsOnly ) { } 6.1.3 注释 public ?protected的成员变量和Ҏ必须写javadoc注释。超q?句以上的注释使用中文书写。对于代码多?0行的privateҎ也要写javadoc注释?br /> 对于代码中的逻辑分支或@环条仉要书写注释,例如Q?br /> if (some condition) { //W合某个条gQ应该这样处?br /> } else { //否则应该那样处理 } 6.1.4 其他 关于属?br /> cM的属性不能定义ؓpublic变量直接存取Q而是定义成protect变量q编写get/setҎQ例如: protect String myName; public String getMyName() { return myName; } public void setMyName(String myName) { this.myName=myName; } 6.2 jsp/html代码规范 jsp/html描述注释 jsp/html面剙必须存在一个基本描q注释,包含功能描述、参数列表和历史修改信息Q例如: <%-- /************************************************** * * NAME : file_download.jsp * * PURPOSE : 下蝲文g提示 * * PARAMETERS : * file_id - 文gID?br /> * force ?C 是否强制下蝲 * * HISTORY * * 2002/04/05 Hafele 创徏文g * * 2002/06/07 tmp 增加强制下在功能 * *************************************************/ --%> jsp头格?br /> jsp头部一般需要遵循以下格式: <%@ page contentType="text/html;charset=gb2312" %> <%@ page import="java.io.*" %> // jdk标准?br /> <%@ page import="javax.mail.*" %> // java扩展?br /> <%@ page import="org.apache.xml.*" %> //使用的外部库的包 <%@ page import="com.sunrise..*" %> //使用的项目的公共?br /> <%@ page import=" com.sunrise.applications.*" %> //使用的模块的其他?br /> <%@ include file="some.jsp" %> //include其他的jsp <% response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setHeader("Expires","0"); %> //一般jsp都需要防止缓? html格式 1. html头一般需要遵循以下格式: <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>some title</title> <link rel="stylesheet" href="some.css" type="text/css"> <script language="javascript"> //some javascript </script> </head> 注意Q必L定一个有意义?lt;title>Q严出现“Untitled”或“未命名”之cȝ<title>?br /> 2. 所有html标签使用写 3. html面一般需要设|一个背景色Q一般是#FFFFFFQ?br /> html语法校验 所有的jsp/html面需要能够用DreamWeaver正确打开Q即html语法正确Q没有错误的标记Q?br /> 注释 一般不使用html注释Q除非是有必要让最l用L到的内容。对于包含JSP代码的html块,必须使用JSP注释。对于没有必要的注释Q在发行版本中必ȝ除?br /> form属于域的maxlength 对于textcd的输入域Q必L据数据库字段的长度设|相应的maxlengthQ例如数据库cd是VARCHAR(64)Q那么maxlength?2Q因Z文浏览器对于中文也认为是一个字W)?br /> 6.3 其他规范 对于IDE的?br /> 目前暂不限制开发工L使用Q但是最后提交的代码必须不依赖Q何IDEQ而需要可以用ant完成所有的~译工作。一般提交的代码目录格式如下Q?br /> |_distQ存放输出的文gclass文gQ?br /> |_libQ用的库) |_srcQ源代码Q?br /> |_docsQ文档) |_wwwrootQ页面文Ӟ |_build.xmlQant的build文gQ?br /> |_changes.logQ代码版本和修改的日志) 限制session的?br /> 在代码中使用session需要听取项目经理的意见Q项目经理需要在设计文档中登记项目中所有用到的session的名字和作用?br /> 限制外部包的使用 开发员如果需要用一个外部包需要听取项目经理的意见。在目l理批准以前Q严擅自用一个外部的包?/font>
]]> eclipse安装安装语言包后若有一些英文单词没有翻译成中文的解x法! http://www.aygfsteel.com/kim/archive/2006/11/09/80258.html大熊?/dc:creator>大熊?/author>Thu, 09 Nov 2006 13:22:00 GMT http://www.aygfsteel.com/kim/archive/2006/11/09/80258.html http://www.aygfsteel.com/kim/comments/80258.html http://www.aygfsteel.com/kim/archive/2006/11/09/80258.html#Feedback 2 http://www.aygfsteel.com/kim/comments/commentRss/80258.html http://www.aygfsteel.com/kim/services/trackbacks/80258.html 安装了多国语a包后Q发现还有一些英文单词没有翻译成中文Q这是因Z前启动了英文版的eclipseQeclipse在启动后Q记录了一些英文版的信息,形成了干扎ͼ解决Ҏ有以下两U: 1、将eclipse安装路径下的configuration目录删除Q再重启eclipse? 2、右击eclipse快捷方式Q在目标栏的最后加入eclipse的启动参?clean。或者在DOS下用“eclipse-clean”来启动?/span>
]]> 在win xp 中安装Eclipse及多国语a? http://www.aygfsteel.com/kim/archive/2006/11/09/80256.html大熊?/dc:creator>大熊?/author>Thu, 09 Nov 2006 13:19:00 GMT http://www.aygfsteel.com/kim/archive/2006/11/09/80256.html http://www.aygfsteel.com/kim/comments/80256.html http://www.aygfsteel.com/kim/archive/2006/11/09/80256.html#Feedback 2 http://www.aygfsteel.com/kim/comments/commentRss/80256.html http://www.aygfsteel.com/kim/services/trackbacks/80256.html 本例安装环境:WIN XP中文?JDK1.4.2_12+ECLIPSE 3.0.1(加多国语a? 1.安装JDK 下蝲地址:http://Java.sun.com/j2se/ 注意:在WIN XP下安装ECLIPSE不需要设|JDK环境变量。(实践l验Q? 2.安装ECLIPSE 下蝲地址:http://download.eclipse.org/downloads/ ? Q?Qeclipse的安装非常简单,它属于绿色Y件的安装ҎQ不需要运行安装程序,只需要将下蝲的eclipse压羃包解压就可以q行eclipse了(路径自己喜欢Q? Q?Q检查eclipse是否安装成功。双ȝ录下Qeclipse.exe文g来启动eclipse。第一ơ启动会弹出对话框(用来讄工作I间Q位|自己喜Ƣ)Q单击OK按钮Q开始运行eclipseE序。运行完毕后Q出C个Welcome to Eclipse 3.0 的欢q界面,表示已经安装成功了? 3.安装多国语言? 下蝲地址Q?a target="_new" rel="nofollow">http://download.eclipse.org/downloads/? 注意Q要与eclipse 3.0.1版本相对应(|名QLanguage PackQ? Q?Q先xEclipse? Q?Q将下蝲的语a包解压羃Qƈl这个目录取个名Q本例:languageQ? (3) 此目录复制到eclipse安装目录下(最后\径ؓQeclipse安装目录/language/eclipse/..Q? Q?Q徏立语a包的link文g。在eclipse安装目录下徏一个目录ƈ取名为linksQ在该目录中新徏一个文本ƈ取名为language.linkQ可L取名Q,然后在language.link文g中加入一行文字:path=language(用相对\?? l过四步后,现在可以重启eclipse了。看看!是不是eclipse界面都汉化成中文了呢Q未成功安装的朋友,快点试下啦! 以上为本期的学习成果Q}供各位朋友参考!若有不对的地方请见谅Q?/span>
]]> 关于JSP的执行流E?/title> http://www.aygfsteel.com/kim/archive/2006/11/09/80202.html大熊?/dc:creator>大熊?/author>Thu, 09 Nov 2006 08:51:00 GMT http://www.aygfsteel.com/kim/archive/2006/11/09/80202.html http://www.aygfsteel.com/kim/comments/80202.html http://www.aygfsteel.com/kim/archive/2006/11/09/80202.html#Feedback 0 http://www.aygfsteel.com/kim/comments/commentRss/80202.html http://www.aygfsteel.com/kim/services/trackbacks/80202.html 当第一个用戯求JSP文g的时候,JSP容器Q如TOMCATQ把JSP文g转换成JAVA文gQSERVLETcLӞQ然后编译成CLASS文gQ常d存;当有客户h的时候,直接再打开一个线E,而不是一个进E,无须重新~译Q直接执行第一ơ已l编译好的CLASS文gQ速度比每ơ都要重新编译JSP文g要快得多。当然如果JSP文g发生变化Q则需要重新编译一ơ? 遇见!
]]>
վ֩ģ壺
|
|
|
ƽ̶ |
|
Ȩ |
|
Թ |
ȷ |
|
͡ |
ͩ |
Ĵʡ |
|
|
° |
|
|
н |
˳ |
|
|
մ |
|
|
|
ԭ |
¤ |
|
|
|
̩ |
ˮ |
˶ |
|
|
|
ƽ |
Թ |
|
¤ |