??xml version="1.0" encoding="utf-8" standalone="yes"?>
]]>
3.扑ֈ一个DWORD值StartQ将其改?
4.重启电脑QSystemq程不会占?0端口
]]>
https://addons.mozilla.org/zh-CN/firefox/addon/1419
]]>
]]>
sudo passwd root
Z启用 root 帐号 (也就?讄一个口? 使用:
sudo passwd root
当你使用完毕后屏?root 帐号 使用:
sudo passwd -l root
q个锁?root 帐号.
如何在终端机模式下切换到 root w䆾?
sudo -s -H
如何安装Vm tools
Mware Tools for Linux Guests
Power on the virtual machine.
After the guest operating system has started, prepare your virtual machine to install
VMware Tools.
Choose File > Install VMware Tools.
The remaining steps take place inside the virtual machine.
Be sure the guest operating system is running in text mode. You cannot install VMware Tools
while X is running.
As root (su -), mount the VMware Tools virtual CD-ROM image, change to a working directory
(for example, /tmp), uncompress the installer, then unmount the CD-ROM image.
Note: You do not use an actual CD-ROM to install VMware Tools, nor do you need to download
the CD-ROM image or burn a physical CD-ROM of this image file. The VMware Workstation
software contains an ISO image that looks like a CD-ROM to your guest operating system.
This image contains all the files needed to install VMware Tools in your guest operating
system.
Note: Some Linux distributions use different device names or organize the /dev directory
differently. If your CD-ROM drive is not /dev/cdrom, modify the following commands to
reflect the conventions used by your distribution.
mount /dev/cdrom /mnt
cd /tmp
tar zxf /mnt/vmware-linux-tools.tar.gz
umount /mnt
Run the VMware Tools installer.
cd vmware-tools-distrib
./vmware-install.pl
Log out of the root account.
exit
Start X and your graphical environment.
In an X terminal, launch the VMware Tools background application.
vmware-toolbox &
Note: You may run VMware Tools as root or as a normal user. To shrink virtual disks, you
must run VMware Tools as root (su -).
Starting VMware Tools Automatically
You may find it helpful to configure your guest operating system so VMware Tools starts
when you start your X server. The steps for doing so vary depending on your Linux
distribution and your desktop environment. Check your operating system documentation for
the appropriate steps to take.
For example, in a Red Hat Linux 7.1 guest using GNOME, follow these steps.
Open the Startup Programs panel in the GNOME Control Center.
Main Menu (click the foot icon in the lower left corner of the screen) > Programs >
Settings > Session > Startup Programs
Click Add.
In the Startup Command field, enter vmware-toolbox.
Click OK, click OK again, then close the GNOME Control Center.
The next time you start X, VMware Tools starts automatically.
Uninstalling VMware Tools
If you need to remove VMware Tools from your Linux guest operating system, log on as root
(su -) and run the following command:
vmware-uninstall-tools.pl
VMware Tools for FreeBSD Guests
Power on the virtual machine.
Prepare your virtual machine to install VMware Tools.
Choose File > Install VMware Tools.
The remaining steps take place inside the virtual machine, not on the host computer.
Be sure the guest operating system is running in text mode. You cannot install VMware Tools
while X is running.
As root (su -), mount the VMware Tools virtual CD-ROM image, change to a working directory
(for example, /tmp), uncompress the installer, then unmount the CD-ROM image.
Note: You do not use an actual CD-ROM to install VMware Tools, nor do you need to download
the CD-ROM image or burn a physical CD-ROM of this image file. The VMware Workstation
software contains an ISO image that looks like a CD-ROM to your guest operating system.
This image contains all the files needed to install VMware Tools in your guest operating
system.
mount /cdrom
cd /tmp
tar zxf /cdrom/vmware-freebsd-tools.tar.gz
umount /cdrom
Run the VMware Tools installer.
cd vmware-tools-distrib
./vmware-install.pl
Log out of the root account.
exit
Start X and your graphical environment
In an X terminal, launch the VMware Tools background application.
vmware-toolbox &
Note: You may run VMware Tools as root or as a normal user. To shrink virtual disks, you
must run VMware Tools as root (su -).
Note: In a FreeBSD 4.5 guest operating system, sometimes VMware Tools does not start after
you install VMware Tools, reboot the guest operating system or start VMware Tools on the
command line in the guest. An error message appears:
Shared object 'libc.so.3' not found.
The required library was not installed. This does not happen with full installations of
FreeBSD 4.5, but does occur for minimal installations. To fix the problem of the missing
library, take the following steps:
Insert and mount the FreeBSD 4.5 installation CD or access the ISO image file.
Change directories and run the installation script.
cd /cdrom/compat3x
./install.sh
果然按着上面的步骤我的Vm上面的ubuntu安装成功了,怎么和windowsq么的类似啊Q终于理?br />windows是名牌西服,而Linux是定制西服的道理了?br /> 我最q想学习一下嵌入式LinuxQ了解操作系l的原理Q所以就弄一个Linux的环境玩?br />
"电脑"的印象和那些和我一样一开始接触的是DOS人是l然不同的。在DOS时代Q如果你对电脑的基础知识不懂的话是玩不动它的Q不像现在好多hCPU是什么都不知道,却能?!--NEWSZW_HZH_BEGIN-->是Flash
高手Q們րMM无数。如果你是这L人,你要学LinuxQ你有一D回头\要走Qؓ什么,看下?
我们先看看MS操作pȝ的发展,他有两套内核MSDOS--->DOS+Win3.2-->Win9X \
--->WinXP WindowsNT3.1---NT4.0-->Win2000 /
他的发展是从DOSq个U字W界面的pȝ发展C个由字符界面的内核加上一个图像界面的应用E序(Win3.2)再到l合把两个合Z体的Win95Q到现在再ƈ上一开始就是图形界面的NT成ؓ
WindowsXPQ他未来的野心就是ƈ上internet成ؓ .net现在我们来看LinuxQLinux只是个内核!q点很重要,你必ȝ解这一炏V?
只有一个内核是不能构成一个操作系l的。现在的linux操作pȝ如redhatQ蓝点,U旗{,都是用这么一个内核,加上其它的用E序Q包括XQ构成的。Q何一个叫做操作系l的东西都是q样子构成的:内核+用户界面+一般应用程序?
现在我就拿MS的系l和linux的系l的互相对应来让大家更多的认识Linux如果你装qDOSQ那你一定知道安装完成之后整个硬盘是q样根目录下有io.sys msdos.sys command.com config.sys autoexec.bat?个文Ӟ以及C:\dosq个目录Q很单。其中io.sys和msdos.sys是pȝ的内核,command.com是用L?shell)Qconfig.sys和autoexec.bat是配|文ӞC:\DOS目录下面的是一般应用程序系l启动时首先装入io.sysQ再Ҏ配置文g的设|装入msdos.sys和command.comQ然后就出现提示W,现在你就能输入命令了。如copy c:\aaa.txt d:\aaa.txt 来拷贝文件。也你能够用C:\dos目录下的一些应用程序来完成工作Q如用edit~辑文gQ用Qbasic写basicE序?
接下M安装了一个叫做Foxpro2.6的程序,q个E序可以让你做一些数据库斚w的工作,然后你在安装了一个叫做windows3.2中文版的E序Q这个程序可厉害了,你现在不用在命o行下打命令了Q可以用鼠标来操作了Q打开文g理器,打开C 再打开另一个窗口DQ用鼠标一拉就能完成copy c:\aaa.txt d:\aaa.txtq个命oQ你只是动了几次食指和现在在windows98下没么两栗?/p>
OK Qgoto linux安装好linux之后根目录下有bootQbinQsbinQetcQusr/binQ等几个目录
boot下有vmlinuzq个文gQ这个就是内核,是目前世界上最厉害的黑客linus带头写的那个东东?
bin下有shQ这个就是shellQ?=command.comQ用L面)因ؓUNIXpȝ是没有内部命令这个说法的Q准地?bin+/sbin == Command.com?etc == config.sys + msdos.sys剩下/usr/bin == c:\dos
当然。因为Linux比Dos庞大得多Q所以,reahat和红旗或者有不同的安排方法,各种目录下的东西q不规则。linux的启动同h装蝲vmlinuxzQ然后装载shQ或者其他的shellQ如bash)Q出来提C符。现在你同样能输入命令了。如cp /aaa.txt /tmp/aaa.txt。同样可以用vi~辑文gQ用gcc~译E序
接下M安装了一个叫做MySQL的程序,q个E序可以让你做一些数据库斚w的工作,然后你再安装了一个叫做kde4.0的程序,q个E序可厉害了Q你现在不用在命令行下打命o了,可以用鼠标来操作了,打开文g理器,打开/ 再打开另一个窗?tmpQ用鼠标一拉就能完成cp /aaa.txt /tmp/aaa.txtq个命oQ你只是动了几次食指和现在在windows98下没什么两?
看到q里希望你明白我Z么说你在走回头\Q因为目前的Linux操作pȝ==MS的Win3.2但MSpȝ已经走过?XQ现在是XP了,整整落后了两代。当Ӟq是从用L面上来说的,但也恰恰是很多h装个Linux之后是在X的kde上搞东搞西,而其它的什么都搞不hQؓ什么搞不v来因Z没搞qDOSQ你Ҏ׃知道pȝq可以有q样的搞法。你一开始接触的是98Q电脑给你的感觉是用鼠标来操作的东西,你认为同h操作pȝQLinux也应该是q样的东ѝ你Ҏ没有想q你一直以Z在玩的是LinuxQ但实际上你玩的只不q是一个运行在Linuxpȝ上的E序而已。因此很多h装完搞了几天_靠,Linux不过如此。这话可以说对也可以说不对Linux嘛,你都q没见到是什么样子,你有什么资D它怎样呢?但kde嘛,q的确实不q如此,你用q?8吧,现在你去用用3.2看看Q你有什?
感觉Q从E_性来_我不?8比了Q拿95Q如果同L工作Q?5一天崩?ơ的话,那X会崩?0ơ,如果?000的话Q?000一天崩?ơ,X会崩?00ơ。和3.2是差不多的。但Z么还是会听说比如某些好莱坞的电媄Ҏ是在Linux上完成的呢?Z出席一ơ重要宴会,你可以去C套名牌西装,也可以去订做一套,订做的当然更加合w更加好看,但hg更贵Q工作量也更大名牌西?=Windowspȝ定做西装==Linuxpȝ+修改pȝ内核+修改X代码+修改kde代码+专门写的Ҏ软g你现在装的那套西装是街边货,也就是reahat服装厂ؓ了适应全世界所有h的n材批量生产的东东。明白了吧?如果你明白,那你也就明白了Linux比Window好的一个方面了Q我也就不用废话Q那么ؓ什么Linux往往会和黑客撤上关系呢?记得我看q一本书q么写,"Linux是由一个叫linus的黑客及互联|上很多的黑客共同编写而成"。所以,一个由黑客写成的系l怎么会和黑客没有关系呢?当然q个“黑客”的定义和现在很多中国h心中?黑客"的定义是l然不同的前者是几乎从未入Rq其他系l,而后者是入Rq就是了?/p>
如果你是一个美术工作者,你也是几乎除了睡觉就在用电脑Q你时时都开着photoShop在那里搞啊搞Q在术q个行业Q你也算得上是这个行业里的高手了。但你根本就不关心你所做的Q电脑里面到底是怎么帮你完成的。电脑不q是你创作的一个工兗就像音乐是很多人喜Ƣ听的,但你Ҏ不关心你所听到的音乐,她从原来歌星嘴里发出来到被你来欣赏,她到底是怎么个回事。但对一HIFI发烧友而言Q她兛_的就只是q些。现在回到我刚刚说到了copy命oQ对于一个黑客而言Q她Ҏ不关心aaa.txtq个文g里面的内容,她关心的是从C:\aaa.txt到d:\aaa.txtq个q程中,电脑它到底干了什么?现在我问一下正在看q个帖子的hQ把一个文件从一个地Ҏ贝到另一个地方这个事情你肯定是做q的对吧Q但当你q样做的时候,你是否有惌电脑内部它是怎样来完成你的这个操作的呢?如果你的回答是:哎呀Q我倒真的从未想q耶~~那么Q你Ҏ没有黑客的天分,你还是到L一L比较有前途?
L问底是黑客的天性,在这点上QLinux可以满Q但windows不能Q你在dos上按下copy C:\aaa.txt d:\aaa.txt。复制的d是完成了Q但电脑作了什么你知道么?你只能根据你的经验的U篏Q大概的判断pȝ怎么完成Q在你没看过copy的源代码之前你根本没法确定你的判断是否正的。但UNIX上cp的源代码基本上是随手p拿到?
TCP/ip斚wQlinxu可以让你一杆子捅到内核中去Q但windows你只能捅到winsockapache和系l的具体交流你可以一清二楚,但IIS和系l的交流你却不可能知道Linux和黑客的关系是在q里Q和入R是一点关p都没有的。很多远E漏z的dE序是要在unixpȝ上编译的q没错,但是那些E序本来的意义就是D个例子让你看好过_你看得懂的话Q改一改在Win上同样可以编译?
UNIX和Windows相比有太多的优点Q也有太多值得你去弄的地方Q只是我说不出来像你深׃个h的时候,你根本没法说Z׃什么,Ҏ什么地方值得你去׃QWindows不是垃圾Q绝对不是,作ؓ一个工h使用Q她比UNIX好上几百倍似乎你现在都该明白Z很多q程漏洞的攻ȝ序是以unix的习惯写的,因ؓ能够发现q个漏洞Q说明他对系l相当的熟悉Q而且是UNIX让他对系l相当的熟悉Q他不自觉地是用了UNIX的那一套,不过Q它的这些代码却很大的可能是用UltraEdit在windowspȝ下敲的?
好像跑题了,我说要给惛_Linux(UNIX)的朋友的一点徏议,但却说了q样的话Q?
但我觉得没有跑题Q我希望你看到这里已l能够知道我要给你的是什么了?
1.Ҏ你目前的水^Q确定Linux对你的意义有多大?
2.定你玩的是Linux而不是X
3.把Xpȝ怺Q剩下的I间装上源代?
4.不要用rpm -i的方式安装程序,用自q译的Ҏ
5.找个合用的telnet软gQ我推荐SecureCRT.
6.如果你只有一台电脑,安装Vmware.用这个方式来接触UNIX
7.再看一下帖子,自己再一ơ体会我帖子中暗藏的
8.在学习Linux的过E中的,把被linux玩的l验C?
9.在玩linux的过E中Q把linux怎么被你玩的事C?/p>
到目前ؓ止,您已l了解了 GWT 的工作方式;现在Q让我们~码CZ Web 应用E序?
CZ应用E序是一个工作列表管理器。其Ҏ十分简单:创徏、编辑、删除工作列表ƈ对其q行优先U排列。我们选择了该CZ是因为它很容易理解,然而其实施늛了大?GWT 的特性?
下面是最l应用程序的屏幕快照Q?
?Google ?Web 站点 http://code.google.com/webtoolkit/ 下蝲 GWT。在写本文时QGWT 推出的是 Windows ?Linux 版本。GWT 是特定于q_的,因ؓ其托模式在 Firefox 的修改版本中工作Q该版本本n依赖于^台。(我们可以?Apple 计算Z成功C?GWT ?Linux 版本Q但是托模式不起作用。)
GWT 下蝲形式是一个归档文Ӟ您必M?Linux 上的 tar -xvf 命o或?Windows 上的解压~工兯行解压羃。这是您安装该工具包需要做的所有工作?/p>
打开命o行,转至 GWT 的安装目录。该目录包含 applicationCreator 脚本Q我们将使用该脚本启动我们的应用E序。由于我们希望应用程序存储在 Oracle Technology Network 目录中,因此我们?out otn”作为参数添加到脚本中。在 Linux 上,键入Q?
./applicationCreator -out otn otn.todo.client.TodoApp
?Windows 上,使用Q?
applicationCreator -out otn otn.todo.client.TodoApp该脚本生成基本的目l构 ?h的应用程序类中的CZ“Hello word”代码以及两个脚本:TodoApp-shellQ用于在托管模式下运行应用程序)?TodoApp-compileQ用于打包应用程序以便在 Web 模式下用)?
启动 JDeveloper q创Z个新?Web 目Q?
单击 Next 按钮。JDeveloper 询问新目的位|。用应用程序的名称作ؓ Project NameQ选择应用E序根目录(如步?2 的定义)作ؓ Directory NameQ?/p>
单击 Next 按钮Qƈ验证您的应用E序?J2EE 1.4 应用E序Q?/p>
q将创徏 JDeveloper 目Q但是将出现某些~译错误Q因?GWT 的库未包含在目c\径中。在目属性中Q选择左侧端树?Libraries 节点Qƈd gwt-user.jar 库:
上面?applicationCreator 脚本创徏了一个基本的“Hello world”应用程序,可在 otn.todo.client E序包中使用。下面是其主要方法:
public void onModuleLoad() {该方法将创徏一个按钮“Click Me”。单击该按钮后,显C“Hello World”?
final Button button = new Button("Click me");
final Label label = new Label();
button.addClickListener(new ClickListener() {
public void onClick(Widget sender) {
if (label.getText().equals(""))
label.setText("Hello World!");
else
label.setText("");
}
});
RootPanel.get("slot1").add(button);
RootPanel.get("slot2").add(label);
}
}
该方法分Z部分Q?
您可以通过从命令行使用 TodoApp-shell 脚本L地运行该目。虽然这是启动应用程序的很好途径Q但是您可能更喜Ƣ直接从 JDeveloper 内启动应用程序。ؓ此,单击 Run 菜单Q选择 Choose Active Run Configuration > Manage Run Configurations。编辑默认的q行配置q用以下命令:
path.to.your.gwt.installation.directory/gwt-devlinux.jar!/com/google/gwt/dev/GWTShell.class?Windows 上,它类g下内容:
path.to.your.gwt.installation.directory/gwt-dev-windows.jar!/com/google/gwt/dev/GWTShell.class
-out path.to.your.gwt.installation.directory/otn/www otn.todo.TodoApp/TodoApp.html
path.to.your.gwt.installation.directory/otn
q是一个很复杂的设|,但是令hƣ慰的是Q您可以重新使用它对应用E序q行调试。?Debug 按钮而不?Run 按钮。然后,您可以象q_一样用调试器 ?讄断点、逐步执行代码{:
现在您已l创Z一个简单的 GWT Web 应用E序Q让我们通过两个最常用?GWT Ҏ对其进行扩展:RPC 机制Q该机制允许应用E序调用服务器端代码Q和 History 对象Q通过该对象,用户可精处理浏览器?Back 按钮Q?
到目前ؓ止,您只创徏了应用程序的客户端代码:使用 GWT ~译器,您已l生成了大量 HTML ?JavaScript 文gQ它们将在最l用L览器中q行。但是,如果该应用程序不能与服务器通信没有什么用处了?
使用 GWTQ客L/服务器通信是?servlet q行~码q其与应用E序通信。下面是您要做的工作?
创徏一个定义您的服务的接口?/span>该接口必L?Google ?com.google.gwt.user.client.rpc.RemoteService 接口Qƈ可以攑ֈ客户端程序包Q本例ؓ otn.todo.clientQ中?
然后Q对接口q行~码以便允许您在服务器上d和写入工作列表:
package otn.todo.client;?Servlet q行~码。在服务器端Q您必须~码出具有以下特征的c:
import java.util.List;
import com.google.gwt.user.client.rpc.RemoteService;
public interface TodoListBackupService extends RemoteService {
/**
* Save the to-do list on the server.
*/
void saveTodoList(List todoList);
/**
* Get the to-do list on the server.
*/
List getTodoList();
}
package otn.todo.server;?servlet 在用L HttpSession 中只存储工作列表Q这当然是保存数据的基本Ҏ。在一般的应用E序中,您可以?JNDI 讉K EJBQ或者用Q何经典模式从 servlet 讉K业务服务?
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import otn.todo.client.Todo;
import otn.todo.client.TodoListBackupService;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class TodoListBackupServiceImpl extends RemoteServiceServlet implements
TodoListBackupService {
private static final String TODOLIST_KEY = "TODOLIST_KEY";
public void saveTodoList(List todoList) {
HttpServletRequest request = this.getThreadLocalRequest();
HttpSession session = request.getSession();
session.setAttribute(TODOLIST_KEY, todoList);
}
public List getTodoList() {
HttpServletRequest request = this.getThreadLocalRequest();
HttpSession session = request.getSession();
if (session.getAttribute(TODOLIST_KEY) == null) {
List todoList = new ArrayList();
Todo todo = new Todo("Hello from the server");
todoList.add(todo);
return todoList;
} else {
return (List) session.getAttribute(TODOLIST_KEY);
}
}
}
最后,您必d servlet 容器内配|该 servlet。如果您使用的是 GWT shellQ您可以?*.gwt.xml 配置文g中进行配|,本例中该配置文g?TodoApp.gwt.xmlQ?
<module>如果您希望在其他应用服务器(?OC4JQ中对其q行配置Q只需^常的 XML 配置d?WEB-INF/web.xml 文g中即可:
<!-- Inherit the core Web Toolkit stuff. -->
<inherits name='com.google.gwt.user.User'/>
<!-- Specify the app entry point class. -->
<entry-point class='otn.todo.client.TodoApp'/>
<servlet path="/todoListBackupService" class="otn.todo.server.TodoListBackupServiceImpl"/>
</module>
<servlet>d一些粘合剂。我们需要的_合剂是 Async c,它必遵循几个规则:
<servlet-name>TodoListBackupService</servlet-name>
<servlet-class>otn.todo.server.TodoListBackupServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>TodoListBackupService</servlet-name>
<url-pattern>/todoListBackupService</url-pattern>
</servlet-mapping>
package otn.todo.client;
import java.util.List;
import com.google.gwt.user.client.rpc.AsyncCallback;
public interface TodoListBackupServiceAsync {
/**
* Save the to-do list on the server.
*/
void saveTodoList(List todoList, AsyncCallback callback);
/**
* Get the to-do list on the server.
*/
void getTodoList(AsyncCallback callback);
}
TodoListBackupServiceAsync todoListBackupService = (TodoListBackupServiceAsync) GWT.create(TodoListBackupService.class);q将在运行时创徏一个实施两个接口的c:
ServiceDefTarget endpoint = (ServiceDefTarget) todoListBackupService; endpoint.setServiceEntryPoint("/todoListBackupService");现在您已l将该对象配|ؓ可访问服务器端服务,让我们来讉K服务。如您在步骤 3 中所见,Async 接口允许您通过d AsyncCallback 回调参数讉K在服务中定义的所有方法。该参数用于定义应用E序的行为,具体取决于服务器端调用的成功或失败:
AsyncCallback callback = new AsyncCallback() {让我们把它们全都攑֜一赗下面是讉K TodoListBackupService 业务服务的两个客LҎ的完整代码:一个用于在服务器端保存工作列表Q另一个用于读取该列表Q?
public void onSuccess(Object result) {
printTodoList();
}
public void onFailure(Throwable caught) {
Window.alert("Warning : the to-do list could not be saved on the server. Maybe the server is down.");
}
};
/**CZ应用E序在启动时q行服务器端调用。该调用返回用L HttpSession 中保存的最新工作列表,或者包含“Hello from the server”工作的新工作列表:
* Update the to-do list with data from the server.
*/
private void updateTodoListFromServer() {
TodoListBackupServiceAsync todoListBackupService =
(TodoListBackupServiceAsync)GWT.create(TodoListBackupService.class);
ServiceDefTarget endpoint = (ServiceDefTarget)todoListBackupService;
endpoint.setServiceEntryPoint("/todoListBackupService");
AsyncCallback callback = new AsyncCallback() {
public void onSuccess(Object result) {
todoList = (List)result;
saveTodoListInHistory();
}
public void onFailure(Throwable caught) {
Todo todo =
new Todo("ERROR!! Server could not be reached.");
todoList.add(todo);
saveTodoListInHistory();
}
};
todoListBackupService.getTodoList(callback);
}
/**
* Save the to-do list on the server.
*/
private void saveTodoListOnServer() {
saveTodoListInHistory();
TodoListBackupServiceAsync todoListBackupService =
(TodoListBackupServiceAsync)GWT.create(TodoListBackupService.class);
ServiceDefTarget endpoint = (ServiceDefTarget)todoListBackupService;
endpoint.setServiceEntryPoint("/todoListBackupService");
AsyncCallback callback = new AsyncCallback() {
public void onSuccess(Object result) {
printTodoList();
}
public void onFailure(Throwable caught) {
Window.alert("Warning : the to-do list could not be saved on the server. Maybe the server is down.");
}
};
todoListBackupService.saveTodoList(todoList, callback);
}
在高?Web 应用E序中,览器的 Back 按钮l常断开。经典的 Ajax 应用E序不支持返回前一 Web 늚标准 Web 行ؓ?
另一斚wQGWT 允许?Back 按钮q行~程处理。这是一个功能强大却又很隑֤理的Ҏ,我们在CZ应用E序中对其进行探I。提议是?Back 按钮用作 Undo 按钮Q单击该按钮显C最C件之前的工作列表。同样地QForward 按钮用?Redo 按钮?/p>
实施 HistoryListener 接口。要以编E方式管?Back 按钮QGWT 应用E序必须实施 com.google.gwt.user.client.HistoryListener 接口。这强制编?onHistoryChanged(String _historyToken) ҎQ?
public class TodoApp implements EntryPoint, HistoryListener {该方法意味着当浏览器的历史记录更Ҏ接收事g。您必须其作ؓ监听器添加到 GWT ?History 对象中。该操作通常?onModuleLoad() Ҏ中完成,以便 History 对象在启动时正确初始化:
/**
* This method is called whenever the application's history changes.
*/
public void onHistoryChanged(String _historyToken) {
if (Integer.parseInt(_historyToken) + 1 != historyToken) {
if (historyMap.get(_historyToken) != null) {
historyToken = Integer.parseInt(_historyToken);
todoList = (List) historyMap.get(_historyToken);
}
}
printTodoList();
}
/**现在Q每ơ浏览器的历史记录更Ҏ都会调用 onHistoryChanged(String _historyToken) Ҏ?
* This is the entry point method.
*/
public void onModuleLoad() {
History.addHistoryListener(this);
}
该方法可以根据作为参C递的令牌重新创徏应用E序的状态。本例中Q您用该令牌作ؓ密钥来查扑֭储在历史地图中的工作列表?
向历史记录中d条目。要?onHistoryChanged(String _historyToken) Ҏ起作用,您必预先在历史记录中存储一些条目?
利用 History 对象很容易实玎ͼ可以使用光?newItem(String historyToken) ҎQ?
private void saveTodoListInHistory() {在本例中Q您应用程序状态存储在了地图中Q因此用历史记录o牌可以找到它。注意,您用了一个数字作为历史记录o牌,也可以改用Q何字W串?
List todoListClone = new ArrayList();
Iterator it = todoList.iterator();
while (it.hasNext()) {
Todo todo = (Todo) it.next();
todoListClone.add(todo.clone());
}
historyMap.put(String.valueOf(historyToken), todoListClone);
History.newItem(String.valueOf(historyToken));
historyToken++;
}
要部|通过 GWT 构徏?Web 应用E序Q您需要编译客L代码Q在 Web 应用E序?.war 文g中打包结果,然后?.war 文g部v到相应的应用服务?OC4J 上?
~译客户端代码的Ҏ有多U。?applicationCreator 脚本后,GWT 创Z个名?TodoApp-compile ?shell 脚本。您可以从命令行启动该脚本。与 TodoApp-shell 一Pq是~译应用E序的很好方法;但是Q您可能更喜Ƣ直接从 JDeveloper 内部启动该脚本?
另一U编译代码的Ҏ使以托管模式执行应用E序Q以便直接从 JDeveloper ~译代码。您的应用程序的H口的工h包含~译/览按钮Q与下图cMQ?/p>
最后一U编译代码的Ҏ是?Ant。GWT 不提供特定的 Ant dQ但是您可以通过标准?Java Ant d启动M Java c(例如 GWTCompilerQ。首先,定义包含 GWT jar 的\径:
现在Q定义专用于~译客户端代码的dQ?
<path id="project.class.path">
<pathelement path="${java.class.path}/"/>
<pathelement location="src"/>
<pathelement path="/your/path/to/gwt-user.jar"/>
<pathelement path="/your/path/to/gwt-dev-linux.jar"/>
<!-- ... -->
</path>
<target name="GWTcompile">在属性文件中讄 gwt.output.dir ?entry.point.class 变量Q如下所C:
<java classpat
classname="com.google.gwt.dev.GWTCompiler"
fork="true">
<arg value="-out"/>
<arg value="${gwt.output.dir}"/>
<arg value="${entry.point.class}"/>
</java>
</target>
gwt.output.dir=www最后,?Ant 脚本中声明属性文Ӟ此处?build.propertiesQ,如下所C:
entry.point.class=otn.todo.TodoApp
<property file="build.properties"/>您可以通过在Q务的 Context 菜单中选择 Run Target GWTCompile 直接启动该新的目标:
Apache Ant Log H口显CZ下结果:
GWTcompile:
[java] Output will be written into www\otn.todo.TodoApp
[java] Compilation succeeded
BUILD SUCCESSFUL
~译完应用程序之后,?OC4J 下部|它只需创徏一个适当的部|配|文件。如果您按照前面描述的步骤进行操作,您应该已l具有一个默认的部v配置文g。如果没有,只需选择 File > New...> Deployment Profiles > WAR FileQ创Z个新的配|文件?
使用您的配置Q一切都应该正常工作。但是,如果您遇CQ何问题,h看以下常见的错误Q?
省节炚w分包括以下四个子pȝQ?br />
l
培训考务理子系l,主要负责从市节点获得考生信息、考试安排信息、约考信息,q批复约考,生成考试试卷。另外还有用L理和成Wl计的功能?/span>
l
题库l护子系l,主要负责l护考题题库?/span>
l
资格证管理子pȝQ主要负责管理资D新证L的分发以及资Dq入、迁出等异动情况?/span>
l
后台服务子系l,主要负责各个节点间的信息同步?br />
市节炚w分包括以下四个子pȝQ?br />
l
培训与考务子系l,主要负责制定培训计划、管理参训h员信息、安排参训h员考试以及向省节点提供培训计划、参训信息等信息Q向省节点上传约考信息。另外也h用户理和成l统计的功能?/span>
l
资格证管理子pȝQ主要负责从省节点下载新证号码以侉K发新证,理资格证的异动信息q向省节Ҏ供异动信息?/span>
l
学员报名子系l,主要负责记录和管理参训h员的具体信息?/span>
l
实操成W录入子系l(
B/S
l构Q,主要负责录入考生的实际操作等非理试的成l?/span>
考点节点部分包括以下四个子系l:
l
考点控制子系l,主要负责下蝲考试安排信息、考生信息和试卷信息,保证各考点的考试正常q行?/span>
l
考场监考子pȝQ主要负责管理考场内的考生信息以及标记考生的作弊行为?/span>
l
考生{题子系l,负责考生上机{题?/span>
l
实操成W录入子系l(
B/S
l构Q,功能与市节点的实操成l录入子pȝ相同Q只是操作了不同的数据库?/span>
1、rails的安装很单,安装之后直接可以使用了(OS QWINXP QSP2Q?/p>
2、根据数据表生成MVC各层的代码,有点和java里面的Modestry框架雷同
3、中文ؕ码问题的解决Q?br /> 在application.rb文g中修改加入filter 真的像和java在web.xml加入filter一?br /> class ApplicationController < ActionController::Base
before_filter :set_charset
def set_charset
@headers["Content-Type"] = "text/html;charset=gb2312"
end
end
4?welcome_controller.rb q里面的Ҏ
layout 'framework',:except=>[:login]
def login
case @request.method
end
如何讉Kq个控制器里面的Action可以采用q个地址
http://IP:3000/welcome/login
和Struts里面的真的是异曲同工
5?当前中国对Rails 的态度是观望,外国听说已经风行了,E序员在10月刊也在推崇呢,
先下手ؓZQ徏议中国的ISP也多支持一下我们FANS的需求,把你的Server也镀镀金?br />
坏男孩原?br />
引用h明出处:http://m.tkk7.com/badboyryan
更多新知识学习:http://m.tkk7.com/badboyryan/category/13029.html
SQLJ cM于其他的嵌入式结构化查询语言的实?/span> , ?/span> Oracle Pro * C ( 嵌入 C 语言环境?/span> SQL) ?/span> SQLJ 语言设计的目的就是帮助基?/span> Java 的程序员构徏数据库应用程序?/span> SQLJ 是一?/span> ISO ?/span> ANSI 标准Q也是说由领头的数据库与Y件供应厂商开发和支持的,包括 ORACLE 数据库管理系l公?/span> , 国际商业机器公司 , 国赛贝斯公?/span> , Informix 公司Q美国康柏公司等。所有这些公司合作开发兼容的 SQLJ 译器来实现使用不同的数据库?/span>
SQLJ
的优?/span>
一个编译过?/span>
SQLJ
应用E序是一个标准的
Java
E序Q可以在M具备三个lg的环境中q行Q这三个lg是:
JVM, SQLJ
q行时程序库?/span>
JDBC
驱动E序?/span>
它提供了下列好处
?/span>
紧凑的代?/b>
SQLJ
代码?/span>
JDBC
代码更加紧凑q且无差错。在~译时对语法和语义进行检查?/span>
SQLJ
~译器提供了cd查和模式对象查来扑և?/span>
SQL
语句中的语法错误或遗漏或拼错q样的错误,q是在编译过E中q行而不是在q行q程中进行。因此,使用
SQLJ
~写的程序比使用
JDBC
~写的程序更加健壮?/span>
多厂商互用?/b>
SQLJ
语法是由主要的Y件供应厂商开发和支持的。因?/span>
SQLJ
E序使用q行?/span>
JDBC
调用讉K数据库,所?/span>
SQLJ
可以讉KM
JDBC
驱动E序可以实现的数据库服务器?/span>
灉|的部|?/b>
因ؓ
SQLJ
q行时程序库是基?/span>
Java
的程序,所?/span>
SQLJ
应用E序可以在Q?/span>
JDBC
配置环境中配|,例如瘦客LQ中间层或是数据库服务器上等?/span>
供应厂商具体定制
SQLJ
通过后箋?/span>
Java
字节码的定制支持供应厂商具体产品的特色和扩展。它可以被用来改?/span>
SQL
查询语言的执行性能Q用具体供应厂商提供的性能或功能上的扩展,而不用考虑
SQLJ
E序如何变化Q以及调试和q行记录{情c?/span>
XXX
架构设计说明?/span>
( 架构设计重点在于系l分层ƈ产生层次内的模块、阐明模块之间的关系 )
一.
概述
描述本文的参考依据、资料以及大概内宏V?/span>
?
目的
描述本文~写的目的?/span>
?
架构设计
阐明q行架构设计的M原则Q如寚w题域的分析方法?/span>
3.1.
架构分析
对场景以及问题域q行分析Q构成系l的架构U设计,阐明对于pȝ的分层思想?/span>
3.2.
设计思想
阐明q行架构设计的思想Q可参考一些架构设计的模式Q需l合当前pȝ的实际情况而定?/span>
3.3.
架构体系
Ҏ架构分析和设计思想产生pȝ的架构图QƈҎ构图q行描述Q说明分层的原因、层ơ的职责QƈҎ架构囄制系l的物理部v图,描述pȝ的部|体pR?/span>
3.4.
模块划分
Ҏ架构图进行模块的划分q明模块划分的理由Q绘制模块物理图以及模块依赖图?/span>
3.4.1.
模块描述
Ҏ模块物理图描q各模块的职责,q声明其对其他模块的接口要求。?/span>
3.4.2.
模块接口设计
Ҏ块接口进行设计,q提供一定的伪代码?/span>
XXX
概要设计说明?/span>
(
概要设计重点在于模块分解ؓ对象q明对象之间的关系
)
一.
概述
描述本文的参考依据、资料以及大概内宏V?/span>
?
目的
描述本文的编写目的?/span>
?
模块概要设计
引用架构设计说明书中的模块图Qƈ阐述对于模块q行设计的大致思\?/span>
3.1.
设计思想
阐明概要设计的思想Q概要设计的思想通常是涉及设计模式的?/span>
3.2.
模块
A
3.2.1.
概要设计
Ҏ该模块的职责Ҏ块进行概要设?/span>
(
分解模块为对象、描q对象的职责以及声明对象之间的接?/span>
)
Q绘制模块的对象图、对象间的依赖图以及模块主要功能的序列图Q分别加以描qƈ相应的描q模块异常的处理Ҏ?/span>
3.2.2.
模块接口实现
阐明对于架构设计中定义的模块接口的实现的设计?/span>
XXX
详细设计说明?/span>
( 详细设计重点在于Ҏ块进行实玎ͼ模块的对象分解为属性和ҎQƈ阐述如何实现 )
一.
概述
阐述本文的参考依据、资料以及大概内宏V?/span>
?
目的
阐述本文的编写目的?/span>
?
模块详细设计
3.1.
设计思想
阐述Ҏ块进行详l设计的思想?/span>
3.2.
模块
A
3.2.1.
详细设计
Ҏ模块概要设计详细描述对于模块内对象的实现Q包括对象的职责、属性、方法、对象内功能的流E图、对象关联的cR对象的异常?/span>
(
需要绘制的主要为类?/span>
)
引子博客排行老二?u>/BlueDavy的blogQ?br /> http://m.tkk7.com/BlueDavy/archive/2005/06/13/6037.aspx
<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的用方法可以参阅另一文章?a class="singleposttitle" id="viewpost1_TitleUrl" href="/zhanglijun33/archive/2006/07/20/freemarker.html">Freemarker 模板工具的作用及使用?br />
引自Q?a href="/zhanglijun33/archive/2006/07/28/60568.aspx">http://m.tkk7.com/zhanglijun33/archive/2006/07/28/60568.aspx
·如果你没有耐心看下去,那么L我列出的ȝQ?/p>
·|络服务会膨胀Q但是前提条件是必须保持整洁的情况下?
·EJB 3 ?Netbeans 是非常值得我们在上面花Ҏ间的, 它们都比以前的版本要完善得多Q虽然之前它们的名声q不是那么好?/p>
·Middleware (例如 workflow and Rules Engines) x的是团队开发,但是惌入这样一个团体的障碍是很高的?
·Struts会l称霸JAVA WEB frameworks, 管它已l不是最优秀的技术了?/p>
·非常多的公司l?Java 1.4, 同时x着Java 1.6?/p>
·Service Orientated Architecuture (SOA)是一个非怸错的xQ但是目前ؓ止ƈ没有太多的project在用它?/p>
·IDE’s (Netbeans / Eclipse / JDeveloper) 会给我们带来很多好处, 前提条g是它们必被low level工具支持 (例如 Ant ?Maven).
(转蝲文章请保留出处:Java?www.javajia.com))在全国闹得可谓沸沸扬?/p>
不少|民听说q能在网上挣?/p>
可谓心中大乐
于是?/p>
ƣ然上网搜烦
谁料大多数网民却把“微客”当成了
“威客?/p>
不信Q?/p>
你去看今天的癑ֺ风云榜啊
上升最快Top50
W三名赫然是“微客?/p>
而威客居然前50名都没有q?/p>
呜呼
可爱的网民还在脓吧里发问
1 微客Q?
微客是干什么的Q?br />
2 回复Q微客?
我也在考察之中Q!
3 回复Q微客?
好象?.有h出钱征集点什么东?比如标志或者口号什么的.然后专门为此做设计的叫微客吧~~
有点在家办公的意?
1 是不明白这名字的由来?
微客 是啥意思?Q难道又是外来的东西Q?
1 Z么我在网l上搜烦微客艘出来的全是汽R啊``
微客汽R 微型汽R`````我怎么搜烦出来的全是这些东西啊
哈哈哈哈?/p>
再看看相x索,没看完已l跌坏了两副眼镜
关键字被搜烦ơ数Q?微客|站2中国微客3微客论坛4|上微客5微客赚钱6微客设计7微客|址8博客微客9职业微客10微客d11微客主页12中国微客|站13微客信息14微客介绍15微客市场16微客 it17电脑微客18博客与微?9微客首页20微客 |络21微客行业22微客 |络名词23五菱微客报h24微客 挣钱25微客竞标26微客q_27微客|站 悬赏28微客悬赏29微客q告
l论出来了-“威客”是正确?/p>