|
|
用户名:lhjgood 笔名:lhjgood 地区: 四川-成都 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
欢迎访问lhjgood的博客,谢谢! 如果有问题请与我联系:QQ 27170102 MSN lhjgood@hotmail.com Email lhjgood@163.com
编写自己的操作系统
(作者置顶)
该文章转自其他朋友,对他们表示感谢!
自由软件社区是一个充满自由和梦想的地方,在10余年的时间里它创造了一个又一个奇迹。然而,这些奇迹的创造者不只是Stallman,也不只是Linus Torvalds,而是活跃在世界各地的不计其数的开发人员。
作者:伊梅
自由软件社区是一个充满自由和梦想的地方,在10余年的时间里它创造了一个又一个奇迹。然而,这些奇迹的创造者不只是Stallman,也不只是Linus Torvalds,而是活跃在世界各地的不计其数的开发人员。
在使用各种功能强大的自由软件时,我总会对其开发
经典网站
(作者置顶)
国内站点:
1、http://www.linuxeden.com/ linux 伊甸园
2、http://www.linuxaid.net.cn/ linux 技术支持中心
3、http://www.chinaitlab.com/ 中国IT 实验室
4、http://www.fanqiang.com 永远的 unix
5、http://www.tomlinux.com/ tomlinux 全中文嵌入式操作系统
6、http://www.anywlan.com/ 嵌入式开发论坛
国外站点:
1、http://www.kernel.org linux 内核
2、RTLinux 相关网站
http://bernia.upv.es/rtportal/apps/base/ 文档和代码
3、LFS 相关网站http://www.linuxfromscratch.org/
http://lfs.linuxsir.org/cgi-bin/wiki/moin.cgi/
4、Gentoo 相关网站
几个招聘信息
为了方便大家求职查询,我们汇总了
9月3日到现在所有的名企招聘信息,供大家参考!
强生(中国)有限公司2008校园招聘(9.17网申启动)
http://www.hiall.com.cn/bbs/viewthread.php?tid=123215
L.E.K. Consulting 2008校园招聘开始(更新)
http://www.hiall.com.cn/bbs/viewthread.php?tid=123178
LG化学中国2008年校园招聘计划
http://bbs.hiall.com.cn/viewthread.php?tid=123059&extra=page%3D2
利乐2008管理培训生计划开始啦
http://bbs.hiall.com.cn/viewthread.php?tid=123061&extra=page%3D2
中信银行2008年毕业生网申开始了!!
http://bbs.hiall.com.cn/viewthread.php?tid=123130&extra=page%3D1
艾默生网络能源2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122976&extra=page%3D1
中国银联2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122991&extra=page%3D1
斯伦贝谢(Schlumberger)2008校园招聘启动
http://bbs.hiall.com.cn/viewthread.php?tid=122742&extra=page%3D1
高盛(Goldman Sachs)08校园招聘及暑期实习生计划
http://bbs.hiall.com.cn/viewthread.php?tid=122609&extra=page%3D1
微软中国 销售市场服集团 2008年校园招聘!(NEW!!!)
http://bbs.hiall.com.cn/viewthread.php?tid=122627&extra=page%3D1
Delphi 德尔福2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122749&extra=page%3D1
Barclays Capital(巴克莱投资银行)08校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122750&extra=page%3D1
佰益(中国)投资有限公司校园招聘信息
http://bbs.hiall.com.cn/viewthread.php?tid=122751&extra=page%3D1
McKinsey & Company 麦肯锡咨询公司2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122754&extra=page%3D1
2008摩立特集团校园招聘启事
http://bbs.hiall.com.cn/viewthread.php?tid=122760&extra=page%3D1
Citi(花旗)2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122761&extra=page%3D1
美的集团2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122782&extra=page%3D1
奥托立夫中国校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=122792&extra=page%3D1
【北京】2008百度校园招聘
http://www.hiall.com.cn/bbs/viewthread.php?tid=121844&extra=page%3D1
2008摩立特集团上海分公司校园招聘启事
http://www.hiall.com.cn/bbs/viewthread.php?tid=121845&extra=page%3D1
【北京】2007-2008 Bain & Company Intern program
http://www.hiall.com.cn/bbs/viewthread.php?tid=121801&extra=page%3D1
【西安招聘组】2007年宝洁公司校园招聘活动正式启动
http://www.hiall.com.cn/bbs/viewthread.php?tid=121786&extra=page%3D1
HiAll提示:网上申请日期于9月10开放,截止到10月7日晚上12点
【北京】O2Micro 2008 校园招聘
http://www.hiall.com.cn/bbs/viewthread.php?tid=121802&extra=page%3D1
[招聘] 微软亚洲研究院FY08校园招聘
http://www.hiall.com.cn/bbs/viewthread.php?tid=121788&extra=page%3D1
麦肯希公司将到西安交通大学招聘 [宣讲会通知]
http://www.hiall.com.cn/bbs/viewthread.php?tid=121799&extra=page%3D1
HiAll提示:西安交大麦肯锡公司宣讲会时间:9月14日下午 3:00-5:30
[天津]爱立信招聘2007年应届毕业生
http://www.hiall.com.cn/bbs/viewthread.php?tid=121822&extra=page%3D1
腾讯2008校园招聘现已火热启动!
http://www.hiall.com.cn/bbs/viewthread.php?tid=122204&extra=page%3D1
奇梦达2008 校园招聘
http://www.hiall.com.cn/bbs/viewthread.php?tid=122201&extra=page%3D1
摩根士丹利IT Morgan Stanley Information Technology - Tsinghua Universit
http://www.hiall.com.cn/bbs/viewthread.php?tid=122089&extra=page%3D3
太古集团校园招聘
http://www.hiall.com.cn/bbs/viewthread.php?tid=122135&extra=page%3D1&frombbs=
1
2008摩立特集团校园招聘启事
http://bbs.hiall.com.cn/viewthread.php?tid=122760&highlight=%C4%A6%C1%A2%CC%D
8
【Adobe】2008校园招聘正式启动
http://www.hiall.com.cn/bbs/viewthread.php?tid=122230&extra=page%3D1
美的集团2008校园招聘
http://www.hiall.com.cn/bbs/viewthread.php?tid=122236&extra=page%3D1
晨星半导体(上海)2008校园招聘
http://www.hiall.com.cn/bbs/viewthread.php?tid=122206&extra=page%3D1
2007微软校园招聘正式启动!!
http://bbs.hiall.com.cn/viewthread.php?tid=122346&extra=page%3D1
松下集团2008校园招聘启动
http://bbs.hiall.com.cn/viewthread.php?tid=122304&extra=page%3D1
2008壳牌(中国)有限公司招聘
http://hiall.com.cn/bbs/viewthread.php?tid=122356&extra=page%3D1
贝塔斯曼(Bertelsmann)2008校园招聘
http://edu.hiall.com.cn/viewthread.php?tid=123082&extra=page%3D1
劲牌公司2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=123083&extra=page%3D1
埃克森美孚2008校园招聘开始啦!
http://bbs.hiall.com.cn/viewthread.php?tid=123090&extra=page%3D1
IBM(中国)2008年校园招聘正式启动
http://bbs.hiall.com.cn/viewthread.php?tid=123114&extra=page%3D1
BP石油2008校园招聘正式启动!
http://bbs.hiall.com.cn/viewthread.php?tid=123118&extra=page%3D1
瑞士龙沙集团2008校园招聘
http://bbs.hiall.com.cn/viewthread.php?tid=123125&extra=page%3D1
腾讯2008校园招聘现已火热启动!
http://www.hiall.com.cn/bbs/viewthread.php?tid=122204&extra=page%3D1
飞利浦2008校园招聘已启动,众多机会期待你的加入!
http://bbs.hiall.com.cn/viewthread.php?tid=122934&extra=page%3D1
汇丰银行2008年BDP招聘计划
http://hiall.com.cn/bbs/viewthread.php?tid=122860&extra=page%3D1
斯伦贝谢校园聘
http://hiall.com.cn/bbs/viewthread.php?tid=122863&extra=page%3D1
广东北电2008年校园招聘正式启动啦!
http://hiall.com.cn/bbs/viewthread.php?tid=122864&page=1&extra=page%3D1
荷兰银行2008校园招聘及暑期实习生计划启动
http://bbs.hiall.com.cn/viewthread.php?tid=122920&extra=page%3D1
LG化学中国2008年校园招聘计划
http://bbs.hiall.com.cn/viewthread.php?tid=123059&extra=page%3D2
利乐2008管理培训生计划开始啦
http://bbs.hiall.com.cn/viewthread.php?tid=123061&extra=page%3D2
中信银行2008年毕业生网申开始了!!
http://bbs.hiall.com.cn/viewthread.php?tid=123130&extra=page%3D1
一位软件工程师的6年总结
TP 自动化技术、计算机技术类核心期刊表
TP 自动化技术、计算机技术类核心期刊表
|
序号 |
刊名 |
出版地 |
主办单位 |
印刷版 |
光盘版 |
|
1 |
计算机学报 |
北京 |
中国计算机学会等 |
* |
* |
|
2 |
自动化学报 |
北京 |
中国科学院等 |
* |
* |
|
3 |
软件学报 |
北京 |
中国科学院软件研究所 |
* |
* |
|
4 |
计算机研究与发展 |
北京 |
中国科学院计算技术研究所等 |
* |
* |
|
5 |
小型微型计算机系统 |
沈阳 |
中国科学院沈阳计算机技术研究所 |
* |
* |
|
6 |
机器人 |
沈阳 |
中国科学院沈阳自动化研究所 |
* |
* |
|
7 |
计算机科学 |
重庆 |
国家科技部西南信息中心 |
* |
|
|
8 |
控制与决策 |
沈阳 |
东北大学 |
* |
* |
|
9 |
控制理论与应用 |
广州 |
中国科学院系统科学研究所等 |
* |
* |
|
10 |
计算机工程与应用 |
北京 |
华北计算技术研究所 |
* |
* |
|
11 |
微型计算机 |
重庆 |
科学技术部西南信息中心 |
|
|
|
12 |
模式识别与人工智能 |
北京 |
中国自动化学会等 |
|
|
|
13 |
计算机应用研究 |
成都 |
四川省计算机应用研究中心 |
* |
* |
|
14 |
计算机应用 |
北京 |
中国科学院计算机应用研究所等 |
* |
* |
|
15 |
电子学报 |
北京 |
中国电子学会 |
* |
* |
|
16 |
信息与控制 |
沈阳 |
中国科学院沈阳自动化研究所 |
* |
* |
|
17 |
传感器技术 |
哈尔滨 |
信息产业部电子第49研究所 |
|
* |
|
18 |
计算机辅助设计与图形学学报 |
北京 |
中国计算机学会等 |
|
* |
|
19 |
计算机系统应用 |
北京 |
中国科学院软件中心 |
* |
* |
|
20 |
中文信息学报 |
北京 |
中国中文信息学会 |
* |
* |
|
21 |
计算机工程 |
上海 |
上海市计算机协会 |
* |
* |
|
22 |
计算机应用与软件 |
上海 |
上海计算技术研究所等 |
* |
|
|
23 |
微电子学与计算机 |
西安 |
中国航天工业总公等 |
* |
* |
|
24 |
计算机集成制造系统 |
北京 |
国家863计划CIMS主题办公室等 |
* | |
|
25 |
中国图象图形学报 |
北京 |
中国图象图形学会 |
|
* |
|
26 |
数值计算与计算机应用 |
北京 |
中国科学院计算数学与工程计算研究所 | ||
Not Chongsheng, but Niepan
凤凰经历烈火的煎熬和痛苦的考验,获得重生,并在重生中达到升华,称为“凤凰涅磐”,以此典故寓意不畏痛苦、义无反顾、不断追求、提升自我的执着精神
棒喝时代:有些人为何只愿做富家子弟的教授
棒喝时代:有些人为何只愿做富家子弟的教授
面对中国政法大学按人口比例招生:
中国政法大学校长徐显明曾表示,该校今年将对招生制度实行重大改革,本科分省招生计划首次按省人口比例确定。徐显明明言,“中国政法大学不是北京的政法大学,是全中国的政法大学。”此言一出,褒贬不一。
对此,教育部的表态比较谨慎,认为高校在招生方面拥有自主权,只要在自主权的范围之内,高校有权选择自己的招生办法,法大的做法可视为“一种尝试”。
卢干奇表示,中国政法大学按照各省人口比例分配招生名额的办法没有从根本上解决平等权的问题。如果单独按照人口比例,对于基础教育搞得好的省份,会减少优质生源上大学的比例。
北京大学法学院教授孙东东认为,按人口比例确定招生规模会造成当年(低水平的)“工农兵大学生”的复归。他说,这是完全不懂高等教育的一种“炒作”。
——请那些在歧视中为命运挣扎的“工农兵”阶级的学子们记住他
我喜欢某些教育家“得天下英才而教之,一乐也”的宣言。因此我尊敬在学校里那些忙碌播种知识和良知的老师。可是某天,当教育界的不公平制度将有稍许改变的时候,我们敬爱的孙东东教授说出了这句肺腑之言。机会平等是倒退,是他们给工农兵阶层的恩惠。他们不愿意给,我们这写贱民们除了哭泣还能做些什么?
工农兵阶层的孩子与孙教授的得意弟子们相比已经输在了中学教育的起跑线上。人口众多而贫困的农村,孩子们的教育条件城里人是想象不到的。我记得初中吃着咸菜读书的日子;我记得我们的化学老师是聘的在我们乡说评书的人,因为别人不懂化学,孙教授之流懂,人家又不屑在我们那种下贱的地方教;我记得老师总会说考出去才是我们改变命运的唯一路径;我记得高中毕业时我们没摸过电脑,其实那时候电脑早已经成了城市孩子们的玩具……
我们工农兵阶层的孩子是贱民,但我们心中也在向往着那几所名校,我们努力了,如果机会均等,落榜无怨!毕竟祖国给我们了这个翻身的机会!但是没有,无耻的高考制度把我们的梦拈碎了,似孙教授这种富人的教师爷把我们改变命运的路给掐断了……
记住可敬的孙东东、子西西之类的教授吧。
可怜的工农兵子弟,可怜的西部孩子,特别是河南,山东,四川孩子。记住这个名字,你知道自己的前途有多坎坷,你知道改变命运的道路上有多少障碍,多少凄苦,有多少孙东东……
把这篇文章放在我博客历史栏中是因为我认为历史应该记住一写英雄或垃圾。这里面有几个人物的。比如善于"炒作"且"不懂高等教育"的中国政法大学校长徐显明教授,欲左右逢源公然骑墙的卢干奇教授,特别是纨绔子弟的道貌岸然的教师爷孙东东"绞手"。
受教育平等权问题绝对是国之大事,或许中国真正的人才培养模式就这样建立起来,功盖千秋。或许贱民子弟还要被在孙东东之"绞手"勒紧脖子送上绞架。
刚看sina新闻,悲愤交加。不顾文体,不顾字句。一口气把怨气宣泄。不值得孙绞手一看,但值得贱民子弟共勉!
本文选自《染衣(自强)的BLOG》的博客,点击查看博客原文。
struts简单例子的分析
struts简单例子的分析
作者: ∣来源:JavaResearch∣原文地址∣2005-3-10
struts简单例子的分析
转:www.code365.com
<!-- 以下仅为个人经验,供大家参考。不足或谬误之处请大家指教 -->
<!-- 徐建明 -->
首先你要对你的环境进行配置
配置TomCat环境
1、到我的机器(IP为192.1.168.7,用户为Guest,口令没有)上的"共享"目录中,拷贝j2sdk-1_4_2_02-windows-i586-p.exe、jakarta-tomcat-5.0.14.zip、jakarta-struts-1.1.zip三个压包文件。
2、先双击j2sdk-1_4_2_02-windows-i586-p.exe安装jdk,最好安装到一个根目录下。在此假设安装在D:\j2sdk1.42_02下。
3、安装TOMCAT。TOMCAT不用安装,只用直接解压jakarta-tomcat-5.0.14.zip到硬盘上。假设解压到D:\TOMCAT下。
4、配置环境变量。右键点击"我的电脑"图标,选择"高级"子项,点击"环境变量"按扭。在"系统变量"中新建如下几个环境变量:
名称 键值 说明
JAVA_HOME D:\j2sdk1.4.2_02 就是你的JDK的安装目录
CLASSPATH .;%JAVA_HOME%\LIB
5、解压jakarta-struts-1.1.zip到任一目录,将其中\jakarta-struts-1.1\webapp目录下的struts-example.war文件拷贝到TOMCAT下的\tomcat\webapps中
6、进入\tomcat\bin目录,点击startup.bat以启动TomCat。(TomCat启动后点击shutdown.bat可关闭)
7、让TomCat在后台运行,打开ie,在地址栏中输入http://localhost:8080/可进入TomCat的主页,输入http://localhost:8080/struts-example可进入struts的一个例子。
祝大家安装顺利 :)
然后,我们来看一下STRUTS例子中的最重要的两个文件,这两个都是配置文件,
struts-config.xml(具体配置的情况我作了注释)
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";>
<!--
This is the Struts configuration file for the example application,
using the proposed new syntax.
-->
<struts-config>
<!-- ========== Form Bean Definitions =================================== -->
<!-- FormBean是struts的一个概念,本质是JavaBean,用来自动存储页面表单中各个域的值,并在适当的时候回填表单域,不需要象传统那样request.getParameter("fieldName");,常被action-mappings中的action 使用 -->
<form-beans>
<!-- 稍后我们会新增一个GetparameterForm类,用来存储用户信息 -->
<form-bean name="GetParameterForm" type="beans.GetParameterForm"/>
</form-beans>
<!-- ========== Global Forward Definitions ============================== -->
<!--这里存放整个系统都可以使用的全局转向中转(Forward)地址 -->
<!-- 一般情况下,一个Action处理完毕后,会转发到一个JSP页面进行显示。这也是JSP中的MVC的实现的要点。-->
<global-forwards>
<!--failed.do和success.do将被当成servlet请求,到action-mappings中寻找对应的action处理。-->
<forward name="success" path="/success.do"/>
<forward name="fail" path="/fail.do"/>
</global-forwards>
<!-- ========== Action Mapping Definitions ============================== -->
<!--web.xml中后缀为.do的请求被转到这里处理。这里相当于struts的Model部分,Model部分是struts中比较灵活的地方。-->
<action-mappings>
<!--处理showinput.do的请求,使用的FormBean是GetparameterForm,既beans.GetParameterForm类,当处理过程发生错误时将返回index.jsp-->
<action path="/showinput" type="beans.ShowAction" name="GetParameterForm" scope="request" input="/index.jsp" />
<action path="/success" forward="/success.jsp"/>
<action path="/fail" forward="/error.jsp" />
</action-mappings>
</struts-config>
web.xml(具体配置的情况我作了注释)
<!-- Action Servlet Mapping -->
<!--该系统的servlet可以映射成.do为后缀的文件,后缀名可以改成任何名称.-->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!-- The Welcome File List -->
<!--该系统的默认首页是index.jsp,可以有多个,系统按次序找,类似IIS-->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- Application Tag Library Descriptor -->
<!-- 定义标签库 -->
<!--
<taglib>
<taglib-uri>/WEB-INF/app.tld</taglib-uri>
<taglib-location>/WEB-INF/app.tld</taglib-location>
</taglib>
-->
</web-app>
这两个文件是我们用JDK+TOMCAT+STRUTS的基本配置,注意:在更改了这个配置后需要对TOMCAT进行重新启动!
在\你的目录\中存放你的.JSP文件,他们的编写你可以使用HTML或FRONGPAGE等工具编写,对于大家这个是比较简单的,在此我就不再觜书,代码如下:
INDEX.JSP
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*,java.sql.*,java.text.*,java.io.*"%>
<form name="form1" method="post" action="showinput.do">
输入success将返回到"success"页面,否则返回到"fail"页面<br><br>
input:<input type="text" name="valu"> <input type="submit" value="submit">
</form>
<br>
<a href="success.do">success</a><br>
<a href="fail.do">fail</a>
SUCCESS.JSP
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*,java.sql.*,java.text.*,java.io.*"%>
success!
ERROR.JSP
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.*,java.sql.*,java.text.*,java.io.*"%>
error page!
再在\你的文件夹\WEB-INF\classes\beans中我们编写需要处理消息请求的类。具体代码如下:
GetParameterForm.java
package beans;
import org.apache.struts.action.ActionForm;
public class GetParameterForm extends ActionForm
{
private String valu="null";
public GetParameterForm() {
}
public void setValu(String s) {
valu = s;
}
public String getValu() {
return valu;
}
}
ShowAction.java
package beans;
import java.lang.reflect.InvocationTargetException;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
import org.apache.struts.util.*;
public final class ShowAction extends Action
{
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
Locale locale = getLocale(request);
MessageResources messages = getResources(request);
HttpSession session = request.getSession();
GetParameterForm userform = (GetParameterForm) form;
if(userform.getValu().equals("success")) {
return(mapping.findForward("success"));
}
else {
System.out.println(userform.getValu());
return(mapping.findForward("fail"));
}
}
}
最后你可以运行了。
在TOMCAT中地址中填写http://localhost:8080/你的文件夹/
--------------------------------------------------------------------------------
MY HOTLE CALIFORNIA: 加 洲 旅 馆
runner
初级用户
发帖: 29
积分: 49
来自:
状态: offline
注册: 2004-10-14
发表于: 2004-11-7 11:42:00 2楼
Re:struts简单例子的分析
二、Struts安装
1、安装Struts需要的软件
Java Development Kit-- 我们需要download和install 1.2(或之后)版本的JDK。
下载地址:
Servlet Container -- 通常的选择是下载Tomcat(至少是3.1版,推荐使用4.0以上的版本)。
下载地址:
http://jakarta.apache.rg/tomcat
Ant Build System -- 如果我们通过Struts源码发布包安装,我们必须下载1.1或之后版本的ant build system。在我们通过Struts来开发我们自己的Web应用程序是,推荐使用ant来build我们的应用。
下载地址:
Servlet API Classes -- 为了编译Structs自己,或应用程序使用Struts,我们需要一个包含Servlet和JSP API对象的servlet.jar包。大多数Servlet container(例如Tomcat)已经自带了这个文件。否则,我们必需下载:http://jakarta.apache.org/builds/jakarta-servletapi
XML Parser -- Structs需要一个与Java API for XML Parsing(JAXP)规格兼容的XML处理器,我们可以使用Xerces。
下载地址:
http://xml.apache.org/xerces-j
Xalan XSLT Processor -- 如果我们通过Structs源码发布版来构造我们的Structs系统,我们必须下载和安装1_2_D01或之后版本的Xalan XSLT处理器(Xerces中已自带Xalan)。这个处理器用于将基于XML的Structs文档转换为Html文档。
2、通过源码构造Structs
1)下载Structs的源码发布包。
2)设置ANT_HOME环境变量,指向我们的Ant目录。
3)设置JAVA_HOME环境变量,指向我们的JDK目录。
4)设置SERVLETAPI_HOME环境变量,指向我们的Servlet API目录(如果我们的CLASSPATH已经包含了servlet.jar,就不需要指定该目录)
5)将Structs的源码发布包进行解包。
6)进入Structs目录,运行以下命令:
./build.sh dist
该命令将创建Struts的二进制发布包,目录在../dist/structs(相对于我们的编译目录)。
3、通过Struts的二进制发布包安装Structs
1)下载Struts的二进制发布版。
2)将Struts的二进制发布版进行解包。(如果我们是通过Struts源码构造Struts,build的结果就已经是已解包的Struts)。解包后的Struts包含以下内容:
lib/struts.jar -- 这个文件包含了Struts的所有Java对象。我们需要把它拷贝到我们的Web应用的WEB-INF/lib目录。
lib/structs.tld --这是一个"tag library descriptor"文件,它描述了Struts库的自由tag。需要将它拷贝到我们的Web应用的WEB-INF目录。
webapps/struts-documentation.war -- 这是一个"web application archive"文件,包含了所有的Struts文档。我们可以将它安装到支持Servlet API 2.2或之后版本的servlet container(推荐使用tomcat)中。
webapps/struts-example.war -- 这是一个web应用实例,它广泛地演示了Struts的许多功能。我们可以将它安装到兼容Servlet2.2或之后版本以及JSP1.1或之后版本规范的servlet容器中(推荐使用tomcat)。
webapps/struts-test.war -- 这个web应用包含了Struts支持的许多tag的测试网页,可以作为使用Struts tag的例子。
4、Struts的基本组件包
安装好的struts大约有15包,近200个类所组成,而且数量还在不断的扩展。在此我们不能一一介绍,只能列举几个主要的简要的介绍一下。下表说明了目前struts api中基本的几个组件包,包括
action,actions,config,util,taglib,validator。如下表1所示:
org.apache.struts.action
基本上,控制整个struts framework的运行的核心类、组件都在这个包中,比如我们上面提到的控制器ActionServlet。已经Action,ActionForm,ActionMapping等等。struts1.1比1.0多了 DynaActionForm 类。增加了动态扩展生成FormBean功能
org.apache.struts.actions
这个包是主要作用是提供客户的http请求和业务逻辑处理之间的特定适配器转换功能,而1.0版本中的部分动态增删FromBean的类,也在struts1.1中被Action包的DynaActionForm组件所取代
org.apache.struts.config
提供对配置文件struts-config.xml元素的映射。这也是sturts1.1中新增的功能
org.apache.struts.util
Strtuts为了更好支持web application的应用,体统了一个些常用服务的支持,比如Connection Pool和Message Source。详细信息请参考http://jakarta.apache.org/struts/api/org/apache/struts/util/package-summary.html
org.apache.struts.taglib
这不是一个包,而是是一个客户标签类的集合。下面包括Bean Tags,HTML Tags,Logic Tags,Nested Tags,Template Tags这几个用于构建用户界面的标签类。
org.apache.struts.validator
Struts1.1 framework中增加了validator framework,用于动态的配置from表单的验证。详细信息请参阅 http://home.earthlink.net/~dwinterfeldt/
三、Struts 配置与组件介绍
有关struts组件配置struts-config.xml文件说明在前面的文章中已经介绍过,这里就不再说了,下面主要介绍框架中组件与配置。
下表列出了Struts的核心类,即对应的经典的MVC组件职责。
表格2 核心Struts 类和MVC 的对应
类 描述
ActionForward 用户指向或者视图选择
ActionForm 状态改变的数据
ActionMapping 状态改变事件
ActionServlet 控制器,接受用户请求和状态改变,以及发出视图选择
Action 控制器的一部分,于模型交互,执行状态改变或状态查询,以及告诉ActionServlet 下一个选择的视图
除了这些核心类, Struts 使用一些配置文件和视图助手(view helpers)来沟通控制器和模型。下表列出了Struts 配置文件和描述了他们在架构中的角色。
表格3 Strtuts 配置文件
文件 目的
ApplicationResources.properties 存储本地化信息和标签,以使应用可以国际化
struts-config.xml 存储控制器对象的缺省配置,包括模型支持的用户指向,状态改变,状态查询
为将Struts配置数据暴露给视图,框架以JSP标签的形式提供了大量的助手类,如表4 Strtus 视图助手。
标记库描述符 目的
struts-html.tld 扩展HTML Form的JSP标记
struts-bean.tld 扩展处理JavaBean的JSP标记
struts-logic.tld 扩展测试属性值的JSP标记
控制器组件的配置
框架中的控制器组件是有org.apache.struts.action.ActionServlet类实现的,这个类是javax.servlet.http.HttpServlet类的扩展。
ActionServlet配置:
我们需要在web.xml中声明ActionServlet,并且将它配置成启动时进行加载。以下为可以配置的初始化参数:
参数 默认值 描述
application Null 应用程序的资源集合的类
bufferSize 4096 文件上传的缓冲区大小
config /WEB-INF/struts-config.xml 配置文件的位置和名称
content Text/html 默认的内容类型
debug 0 程序调试的级别
detail 0 程序调试细节的级别
factory Null 消息资源工厂,糜诠?驶?薪馐拖?⒆试?/TD>
formBean org.apache.struts.action.ActionFormBean 封装ActionForm bean信息的类的名称
forward Org.apache.struts.action.ActionForward 封装ActionForward对象信息的类的名称
locale True 为true,将在用户会话中存储一个本地对象
mapping Org.apache.struts.action.ActionForward 封装ActionMapping信息的类的名称
maxFileSize 250M 上传文件的最大尺寸
multipartClass Org.apache.struts.action.ActionForward 处理多部分请求的类的名称
noCache False HTTP标头是否要设置为禁止缓寸
Null True 设置为true,对于无效的信息关键字将返回null
tempDir 作为一个servlet参数提供给程序的工作目录 处理下载文件是使用的临时工作目录
validate True 是否使用新格式的配置文件
vallidating True 是否对配置文件进行有效性分析
大多数情况下,标准的servlet就能够满足用户需要。
第一次收到特定请求的URI时,ActionServlet将适当的Action类进行实例化,然后ActionServlet在Action类实例中以servlet为变量名存储一个引用。当被实例化后,Action类会被暂存以备再用。
错误处理
struts提供了两个类来处理错误:ActionErrors和ActionError,它们都扩展org.apache.struts.action。ActionErrors保存着ActionError对象的集合,其中每一个代表了独立的错误信息。每个ActionError都包含了关键字,能够映射到资源文件中存储的错误信息,而这个资源文件是在ActionServlet初始化参数中指定的。
四、Struts的运行
可通过以下的步骤在我们自己的应用程序中使用Struts:
1、将Struts目录的lib/struts.jar拷贝到web应用的WEB-INF/lib目录。
2、将Struts目录的lib/struts*.tld拷贝到web应用的WEB-INF目录。
3、修改Web应用目录的WEB-INF/web.xml文件,增加一个<servlet>元素来定义controller servlet,增加一个<servlet-mapping>元素来建立URI请求与servlet的对应关系。可以参照Struts例子中的WEB-INF/web.xml文件来了解详细的语法要求。
4、修改Web应用目录的WEB-INF/web.xml文件,使之包含以下的tag库定义:
<taglib>
<taglib-uri>/WEB-INF/struts.tld</taglib-uri>
<taglib-location>/WEB-INF/struts.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
5、创建一个WEB-INF/action.xml文件来定义我们的web应用的action映射关系。可以参照Struts例子中的action.xml文件来了解详细的语法要求。
6、在使用Struts tag库的JSP网页中加入以下tag库定义:
<@ taglib uri="/WEB-INF/struts.tld" prefix="struts" %>
<@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
7、最后,在编译我们的web应用的java程序时,不要忘了在CLASSPATH中包含struts.jar文件。
牵手
来自网上的一段话:
。。。如果你问我,在男女交往中最幸福的动作是什么,我回答你是牵手。也许你有自己不同的见解,不过我已经说了这是我的答案。正式的牵手是男女由不确定向确定迈出的至关重要的一步,这一步的完成可以说是由真正的量变完成了质变。牵手就像在男女之间建立了一条纽带,将两个人的心正式地连接在一起,从此有了一份牵挂、一份责任、一份甜蜜……让我牵着你的手,和你走过以后的日子是一份沉重的充满甜蜜的承诺。。。
了解硬件体系 开发嵌入式Linux
感情真空
今天在网上看到这么一段话,和我的想法不谋而合!
。。。虽然我知道了现在的冉静并没有男朋友,并且处于感情的真空状态,如果乘虚而入的话,应该有不小的机会,但是我反而更加不愿意正式追求冉静。在我的观念中,凡是处于感情真空期的女人都是很脆弱的,虽然乘虚而入会使追求她们变得很容易,但是这种感情往往持续不长,这个时期发生的恋情只是一种过渡产品。当她们逐渐地从上一段感情中恢复的时候,她们往往会选择离去。我不愿意做一个用来填补空虚的产品,所以我从来不乘虚而入。。。
eclipse+hibernate
重新在Eclipse下再来过一遍,步骤有些不同。(eclipse+myEclipse)
1、创建一个普通的Java项目
2、加入用myeclipse导入Hibernate的包
3、加入MySql的JDBC包(应该先在myeclipse中配置数据库的服务)
4、创建一下数据POJO(忘了是不是这么叫,先这么写着吧)
5、在项目根结点用右键,查看项目属性,在Myeclipse-hibernate中添加(标准)Standard Hibernate包
6、在项目根结点用右键,运行myeclipse中的run-XDocLet,生成POJO的hbm文件
7、在项目根结点用右键,运行myeclipse中的add Hibernate Capabilities …(这个功能好象只能使用一次)
在向导中a、加入数据库的接入方式 b、加入POJO的hbm文件 c、可指定一个目录自动生成一个SessionFactory类
8、创建一个测试类,运行;例如:
public class Test {
public static void main(String[] args) throws HibernateException {
Session aSession = HibernateSessionFactory.currentSession();
Transaction tx=aSession.beginTransaction();
Cat cat=new Cat();
cat.setName("Tomcat");
cat.setSex("T");
cat.setWeight(12.1);
aSession.save(cat);
tx.commit();
HibernateSessionFactory.closeSession();
}
}
附:
可以看到,前前后后总共就只创建了两个类,其他全部自动生成。
要特别说明的是,POJO中一定要加入XDoclet的标签,不然Hibernate会怠工,hbm文件是生成不出来的。示例如下:
/*
* Created on 2005-4-26
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.hibernate.test;
/**
* @author julysea
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
/**
* @hibernate.class
* table="cat"
*/
public class Cat {
String cat_id;
String name;
String sex;
double weight;
public Cat() {
}
/**
* @hibernate.id
* column = "cat_id"
* unsaved-value = "true"
* generator-class = "uuid.hex"
* @return Returns the cat_id.
*/
public String getId() {
return cat_id;
}
/**
* @param cat_id The cat_id to set.
*/
public void setId(String cat_id) {
this.cat_id = cat_id;
}
/**
* @hibernate.property
* @return Returns the name.
*/
public String getName() {
return name;
}
/**
* @param name The name to set.
*/
public void setName(String name) {
this.name = name;
}
/**
* @hibernate.property
* @return Returns the sex.
*/
public String gtSex() {
return sex;
}
/**
* @param sex The sex to set.
*/
public void setSex(String sex) {
this.sex = sex;
}
/**
* @hibernate.property
* @return Returns the weight.
*/
public double getWeight() {
return weight;
}
/**
* @param weight The weight to set.
*/
public void setWeight(double weight) {
this.weight = weight;
}
}
关于跳舞
SQL Server SQL语句导入导出
1 | |
| 简介:微软SQL Server数据库SQL语句导入导出大全,包括与其他数据库和文件的数据的导入导出。 /******* 导出到excel EXEC master..xp_cmdshell ’bcp SettleDB.dbo.shanghu out c:\temp1.xls -c -q -S"GNETDATA/GNETDATA" -U"sa" -P""’ /*********** 导入Excel SELECT * FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’, ’Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions SELECT cast(cast(科目编号 as numeric(10,2)) as nvarchar(255))+’ ’ 转换后的别名 FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’, ’Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0’)...xactions /** 导入文本文件 EXEC master..xp_cmdshell ’bcp "dbname..tablename" in c:\DT.txt -c -Sservername -Usa -Ppassword’ /** 导出文本文件 EXEC master..xp_cmdshell ’bcp "dbname..tablename" out c:\DT.txt -c -Sservername -Usa -Ppassword’ 或 EXEC master..xp_cmdshell ’bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword’ 导出到TXT文本,用逗号分开 exec master..xp_cmdshell ’bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password’ BULK INSERT 库名..表名 FROM ’c:\test.txt’ WITH ( FIELDTERMINATOR = ’;’, ROWTERMINATOR = ’\n’ ) --/* dBase IV文件 select * from OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’ ,’dBase IV;HDR=NO;IMEX=2;DATABASE=C:\’,’select * from [客户资料4.dbf]’) --*/ --/* dBase III文件 select * from OPENROWSET(’MICROSOFT.JET.OLEDB.4.0’ ,’dBase III;HDR=NO;IMEX=2;DATABSE=C:\’,’select * from [客户资料3.dbf]’) --*/ --/* FoxPro 数据库 select * from openrowset(’MSDASQL’, ’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\’, ’select * from [aa.DBF]’) --*/ /**************导入DBF文件****************/ select * from openrowset(’MSDASQL’, ’Driver=Microsoft Visual FoxPro Driver; SourceDB=e:\VFP98\data; SourceType=DBF’, ’select * from customer where country != "USA" order by country’) go /***************** 导出到DBF ***************/ 如果要导出数据到已经生成结构(即现存的)FOXPRO表中,可以直接用下面的SQL语句 insert into openrowset(’MSDASQL’, ’Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\’, ’select * from [aa.DBF]’) select * from 表 说明: SourceDB=c:\ 指定foxpro表所在的文件夹 aa.DBF 指定foxpro表的文件名. /*************导出到Access********************/ insert into openrowset(’Microsoft.Jet.OLEDB.4.0’, ’x:\A.mdb’;’admin’;’’,A表) select * from 数据库名..B表 /*************导入Access********************/ insert into B表 selet * from openrowset(’Microsoft.Jet.OLEDB.4.0’, ’x:\A.mdb’;’admin’;’’,A表) |
JSP数据库连接大全
oracle的存储过程指南
Create procedure procedue_name
[@parameter data_type][output]
[with]{recompile|encryption}
as
sql_statement
解释 output:表示此参数是可传回的.
with {recompile|encryption}
recompile:表示每次执行此存储过程时都重新编译一次
encryption:所创建的存储过程的内容会被加密
表book的内容如下
编号 书名 价格
001 C语言入门 $30
002 PowerBuilder报表开发 $52
实例1:查询表Book的内容
create proc query_book
as
select * from book
go
exec query_book
实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额
Create proc insert_book
@param1 char(10),@param2 varchar(20),@param3 money,@param4 money output
with encryption ---------加密
as
insert book(编号,书名,价格) Values(@param1,@param2,@param3)
select @param4=sum(价格) from book
go
执行例子:
declare @total_price money
exec insert_book '003','Delphi 开发指南',$100,@total_price
print '总金额为'+convert(varchar,@total_price)
go
实例3:设有两个表为Product,Order,其表内容如下:
Product
产品编号 产品名称 客户订数
001 钢笔 30
002 毛笔 50
003 铅笔 100
Order
产品编号 客户名 客户订金
001 南山区 $30
002 罗湖区 $50
&nbs; 003 宝安区 $4
请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,
总金额=订金*订数,临时表放在存储过程中
代码如下:
Create proc temp_sale
as
select a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数* b.客户订金 as总金额
into #temptable from Product a inner join Order b on a.产品编号=b.产品编号
if @@error=0
print 'Good'
else
print 'Fail'
go
简单的Oracle存储过程的创建方法
SQL> create or replace procedure get_news(
2 aid in varchar2,atitle in varchar2)
3 as
4 begin
5 select * from cf_news
6 end;
7 /
警告: 创建的过程带有编译错误。
SQL> create or replace procedure get_news(
2 aid in varchar2 ,atitle in varchar2)
3 as
4 beging
5 /
警告: 创建的过程带有编译错误。
SQL> create or replace procedure get_news(
2 aid in varchar2)
3 as
4 begin
5 select * from cf_news;
6 end;
7 /
警告: 创建的过程带有编译错误。
SQL> create or replace procedure get_news
2 as
3 begin
4 select * from cf_news;
5 end;
6 /
警告: 创建的过程带有编译错误。
SQL> show errors;
PROCEDURE GET_NEWS 出现错误:
LINE/COL ERROR
-------- -----------------------------------------------------------------
4/1 PLS-00428: 在此 SELECT 语句中缺少 INTO 子句
SQL> create or replace procedure get_news
2 as
3 aa number;
4 begin
5 select count(*) into aa from cf_news;
6 end;
7 /
过程已创建。
SQL> create or replace procedure get_news
2 as
3 aa number;
4 begin
5 select count(*) into aa from cf_news;
6 dbms_outpub.put_line('aa='||aa);
7 end;
8 /
警告: 创建的过程带有编译错误。
SQL> show errors;
PROCEDURE GET_NEWS 出现错误:
LINE/COL ERROR
-------- -----------------------------------------------------------------
6/1 PLS-00201: 必须说明标识符 'DBMS_OUTPUB.PUT_LINE'
6/1 PL/SQL: Statement ignored
SQL> create or replace procedure get_news
2 as
3 aa number;
4 begin
5 select count(*) into aa from cf_news;
6 dbms_output.put_line('aa='||aa);
7 end;
8 /
过程已创建。
SQL> set serverout on;
SQL> execute get_news;
aa=3
PL/SQL 过程已成功完成。
通用时间座标UTC
UTC (通用时间座标)是国际时间标准。 UTC与其时是等效的在用格林维志时间GMT(0°经度),以前表达本初子午线。 它也是等值到Z时间(Zulu时间)。 当它是0 UTC时,它是午夜在格林威治(英国),在子午经度线零。
UTC被计算在Bureau International des Poids et Mesures (BIPM)从大约二百个时钟数据,分布在几乎五十个国家实验室。
Time Service Department, U.S. Naval Observatory, (USA),在真正的时间给UTC。
Rtems简介
RTEMS,a rivail of VxWorks
作者 Ray
RTEMS版权所有,转载请注明:来源http://www.rtems.net,作者ray@rtems.net
RTEMS可谓嵌入式系统鼻祖,经过专家的评测,其性能毫不逊色于VxWorks, 远远把RtLinux甩在后面。
正文
RTEMS是前美国军方研制的嵌入式系统, 最早用于美国国防系统,早期的名称为实时导弹系统(Real Time Executive for Missile Systems),后来改名为实时军用系统(Real Time Executive for Military Systems), 目前的全称是实时(Real Time Executive for Multiprocessor Systems)用,他的特点是非常的稳定,而且速度快。现在是一个开源项目的RTOS, 在全球还是有不少的用户,其中包括Motorola,朗讯等,他有下面的特点:
注:TRON全称是 (The Real-time Operating system Nucleus),ITRON(Industrial TRON)是一个由多家著名IT企业牵头的协议制定组织,同时IRTON也代表实时嵌入式系统的一个标准。ITRON提出了实时操作系统的一系列规范(包括系统调用接口规范,任务调度接口规范,TCP/IP网路链接API规范,本地与远程调试接口规范等等),遵循这个规范的操作系统上层软件可以相互移植,有点类似于UNIX世界里面的POSIX。日本所有的大型IT公司都开发了自己的基于ITRON的嵌入式系统
此外他还提供了很多有些的附加属性:
目前RTEMS是GPL的开源项目(准确的说,是GPL的一个变种),广泛应用于军事,工业,科研等领域。很多专业的软件(比较注明的如EPICS)开始移植到RTEMS平台上。
RTEMS从设计初始就是为较少内存与较少CPU主频的嵌入式系统提供可靠的实时内核。该系统分为若干模块,用户可以根据实际应用需要进行剪裁。 在国际控制年会Straumann的一篇报道做过如下的测试,测试的硬件平台是PowerPC 604(300MHz),Rtlinux,RTEMS和VxWorks的BSP都是由Motorola提供,测试内容包括初始化、中断处理、普通程序(包括网路程序、SPI、串口等)。测试中产生了2,000,000次中断,中断的平均频率为4kHz。可以看出,这个测试程序对内核的实时性以及任务调度都是一个严格的考验。测试的结果如下表所示:(单位10-6s)
中断时延 | Context转换 | |||
系统负载中等 | ||||
最大 | 平均 | 最大 | 平均 | |
| RtLinux | 13.5 | 1.7 | 33.1 | 8.7 |
| RTEMS | 15.1 | 1.3 | 16.4 | 2.2 |
| RTEMS1 | 14.9 | 1.3 | 16.9 | 2.3 |
| VxWorks | 13.1 | 2.0 | 19.0 | 3.1 |
重负载 | ||||
| RtLinux | 196.8 | 2.1 | 193.9 | 11.2 |
| RTEMS | 20.5 | 2.9 | 51.3 | 3.7 |
| RTEMS1 | 19.2 | 2.4 | 213 | 10.4 |
| VxWorks | 25.2 | 2.9 | 38.8 | 9.5 |
注:RTEMS1(使用Pthread库)
从表上的结果可以看出,RtLinux无论是实时性,还是线程任务迁移,都还远远不能满足要求。尤其是在重负载情况下,处理中断的时延波动非常厉害。想象一下,RtLinux他的中断处理平均时间是2.1us但是实际应用的时候可能要在200us才能处理。这在时间有严格要求的系统中是不能允许的。
同时也可以看到,RTEMS在测试重表现的性能指标非常理想,基本上达到或者超过老牌商业系统VxWorks。值得一提的是RTEMS在使用了Pthread库后,RTEMS的性能有所下降。但是最差的情况也不会比RtLinux差。但让人欣喜的是,目前Pthread库的性能已经有了不少改善,详情可以参考RTEMS的邮件列表。
既然我把Rtems叫做嵌入式系统里面的老大哥,它支持的CPU类型自然是非常多的,可以说只要是GCC支持的,RTEMS就可以支持。其中值得一提的是一下的CPU
这些系列是比较成熟的工业级CPU,RTEMS在这些产品上面已经有多年的应用,所以对这些CPU支持的特别好。同时随着ARM和DSP的流行,RTEMS也在几年前支持了多种DSP和多个系列的ARM(ARM只是一个核心,实际的ARM芯片有上千种,一个操作系统不可能支持全部的ARM芯片)。