??xml version="1.0" encoding="utf-8" standalone="yes"?>
1 、到 www.sun.com 下蝲最新版本的 j2sdk for linux
2 、安?/span> jdk1.4.2 for linux, 以下是在 Redhat Linux 9 下ؓ例:
?/span> root w䆾d
(1) 打开一个终?/span>
(2) 输入命o ls -l 查看安装文g的权?/span>
(3) 输入命o chmod a+x j2sdk-1_4_2_01-linux-i586-rpm.bin, l所有的用户d执行的权限?/span>
(4) 安装 jdk
./j2sdk-1_4_2_01-linux-i586-rpm.bin
此步完成后,会生?/span> j2sdk-1_4_2_01-linux-i586.rpm 的文?/span>
查看权限
ls -l
l?/span> j2sdk-1_4_2_01-linux-i586.rpm 赋执行权?/span>
chmod +x j2sdk-1_4_2_01-linux-i586.rpm
安装 j2sdk-1_4_2_01-linux-i586.rpm
rpm -ivh j2sdk-1_4_2_01-linux-i586-rpm
出现授权协议Q按 Enter 键接?/span>
(5) 使用默认的安装位|,?/span> /usr/java/ 下,?/span> /usr/java/j2sdk1.4.2_01
3 、设|环境变?/span>
使用 Vi ~辑器进行环境变量的~辑Q?/span>
在终端中输入命o
vi /etc/profile.d/java.sh
q样可以在所有的用户中?/span>
在新?/span> java.sh 中输入以下内容:
#set java environment
export J***A_HOME=/usr/java/j2sdk1.4.2_01
export CLASSPATH=.:$J***A_HOME/lib:$J***A_HOME/jre/lib
export PATH=$J***A_HOME/bin:$J***A_HOME/jre/bin:$PATH
保存退?/span>
PATH ?/span> CLASSPATH 都指定\径列表,列表中的各项 ( 卛_个\?/span> ) 之间使用分隔W分隔。在 Windows 下,分隔W是分号 (;) Q而在 Linux 下,分隔W是冒号 (:) ?/span>
4 、给 java.sh 分配权限
输入以下命oQ?/span>
chmod 755 /etc/profile.d/java.sh
5 、重启计机
在终端中输入如下命oQ测?/span> jdk 是否安装成功
java -version
照着q个配置好了Q^_^Q原来用修改/etc/profileҎQ结果把pȝ搞死了)
折腾了一下午Q可以了Q^_^Q算是有Ҏ获吧Q嘿嘿,jdkl于装成功了
sql2000安装时说有以前挂L文g存在Q让重启 | |
1Q添?删除E序中彻底删除sql server? 2Q将没有删除的sql server目录也删除掉? 3Q打开注册表编辑器Q在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到PendingFileRenameOperations目Qƈ删除它。这样就可以清除安装暂挂目 |
你想要用户能够通过点击一个不在HTML表单标签中的囑փ来提交表单?/p>
适应一个对JavaScript URL 的链接来提交表单Q?br />
Web 应用l常使用可点ȝ囑փ来提交表单而不是仅仅通过表单按钮。Struts 的html:image标签可以用来产生一个显C图像的HTML input type="image" 标签。但是,对于复杂?HTML 布局Qƈ不L能够图像嵌入在表单<form> . . . </form>标签之中。有些时候,一?HTML 面可能在页面的某一D可能有多个表单Q而提交页面的囑փ则在面的另一个区域。比如,工具条风格的囑փ按钮?/p>
上面的方法可以用于从表单之外的图像提交表单。所昄的图像嵌套在html:link标签中。该链接通过执行一行JavaScript来提交表单。在上面的代码中QJavaScript 提交名为MyForm 的表单。表单名U必d配struts-config.xml文g中所配置的action元素的name属性。下面是q种Ҏ产生的HTML 代码Q?/p>
虽然你可以直接用上qHTML标记而不是Struts html标签Q如果那L话你失去那些标{所提供的特征。通过使用Struts tagQ你׃是必要指定context 名称Qƈ且你可以使图像名U和替换文本来自于资源束 (如果你需要的??/p>
另一个办法是使用html:img 标签的onclick属性:
q种方式的缺ҎQ有些浏览器q不提供囑փ是可以点ȝ一些可视提C线索。因为图像嵌入到一个链接中Q大多数览器都会在改变鼠标指针以提C囑փ是可以点ȝ?/p>
关于iTextcd的用,http://www.lowagie.com/iText/tutorial/index.html有比较详l的教程。该教程从入门开始,比较pȝCl了在PDF文g中放入文字、图片、表格等的方法和技巧。读完这片教E,大致可以做一些从单到复杂的PDF文g了。不q,试图通过教程解决在生成PDF文gq程中遇到的所有困难无疑是一U奢望。所以,阅读iText的api文昑־非常重要。读者在下蝲cd的同Ӟ也可以下载类库的文?/p>
如何利用iText在javaE序中生成PDF报表
以下是上q教E中一个最单的例子Q这个例子刻M通过iText生成PDF文g的一般程序框架。读者只需要在document.open();和document.close();两条语句中间加入自己希望攑֜PDF文g中的内容卛_。该例子只在PDF文g中加了“Hello World“一行文字?/p>
Document document = new Document();
try
{
PdfWriter.getInstance(document, new FileOutputStream ("Chap0101.pdf"));
document.open();
document.add(new Paragraph("Hello World"));
}
catch(DocumentException de)
{
System.err.println(de.getMessage());
}
catch(IOException ioe)
{
System.err.println(ioe.getMessage());
}
document.close();
׃上的例子可见Q程序的框架十分清楚明了。然而在PDF中指定文字、图甅R表格的位置是一仉帔R烦的事情。除了不断地在程序中修改位置、然后运行程序、生成PDF文g、观察元素在PDF中的位置是否合理q样的过E以外,gq没有其它更好的Ҏ?/p>
如何通过JSP生成PDF报表
q一部分是在iText的教E中所没有的,|上的相兌料也比较。我曑֜CSDN上看q有人开帖询问实现细节,有h回复了实现的原理Q先在服务器上生成PDF文gQ然后用户通过点击指向PDF文g的超链接选择下蝲或打开。这是一个思\Q或者说是思\之一。本文实Cq个思\Q又l出另外一个思\q过两种途径实现之?/p>
1Q直接在服务器上生成PDF文g?/p>
Q?@ page import ="com.lowagie.text.*,com.lowagie.text.pdf.*, java.io.*"%Q?/p>
Q?
String filename = "PDF"+(new Random()).nextInt()+".pdf" ;
Document document = new Document(PageSize.A4);
ServletOutputStream out1 = response.getOutputStream();
try
{
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(filename) );
document.open();
document.add(new Paragraph("Hello World"));
document.close();
}
catch(Exception e){}%Q?
上面的程序在服务器上生成了一个静态的PDF文g。显Ӟ每次q行所得的PDF文g的名U应该是独一无二不能有重的。本E序通过随机函数来命名生成的PDF文g。本E序的缺点就是,每次q行都会在服务器上生一个PDF文gQ如果不及时删除Q数量会来大Q这昄是站点维护者所不愿意看到的?/p>
2Q将PDF文g通过的形式输送到客户端的~存。这样做的好处是不会在服务器上留下Q何“遗q”?/p>
iQ直接通过JSP面生成
Q?@
page import="java.io.*,java.awt.Color,com.lowagie.text.*,com.lowagie.text.pdf.*"%Q?/p>
Q?
response.setContentType( "application/pdf" );
Document document = new Document();
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PdfWriter writer=PdfWriter.getInstance( document, buffer );
document.open();
document.add(new Paragraph("Hello World"));
document.close();
DataOutput output = new DataOutputStream( response.getOutputStream() );
byte[] bytes = buffer.toByteArray();
response.setContentLength(bytes.length);
for( int i = 0; i Q?bytes.length; i++ )
{
output.writeByte( bytes[i] );
}
%Q?
iiQ通过Servlet生成
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.lowagie.text.*;
import com.lowagie.text.pdf.*;
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException,ServletException
{
Document document = new Document(PageSize.A4, 36,36,36,36);
ByteArrayOutputStream ba = new ByteArrayOutputStream();
try
{
PdfWriter writer = PdfWriter.getInstance(document, ba);
document.open();
document.add(new Paragraph("Hello World"));
}
catch(DocumentException de)
{
de.printStackTrace();
System.err.println("A Document error:" +de.getMessage());
}
document.close();
response.setContentType("application/pdf");
response.setContentLength(ba.size());
ServletOutputStream out = response.getOutputStream();
ba.writeTo(out);
out.flush();
}
LRESULT CALLBACK HookProc ( int nCode, WPARAM wParam, LPARAM lParam );
HHOOK SetWindowsHookEx( int idHook, // 钩子的类型,卛_处理的消息类? HOOKPROC lpfn, // 钩子子程的地址指针。如果dwThreadId参数? // 或是一个由别的q程创徏的线E的标识Q? // lpfn必须指向DLL中的钩子子程? // 除此以外Qlpfn可以指向当前q程的一D钩子子E代码? // 钩子函数的入口地址Q当钩子钩到M消息后便调用q个函数? HINSTANCE hMod, // 应用E序实例的句柄。标识包含lpfn所指的子程? DLL? // 如果dwThreadId 标识当前q程创徏的一个线E, // 而且子程代码位于当前q程QhMod必须为NULL? // 可以很简单的讑֮其ؓ本应用程序的实例句柄? DWORD dwThreadId // 与安装的钩子子程相关联的U程的标识符? // 如果?Q钩子子E与所有的U程兌Q即为全局钩子? );
LRESULT CallNextHookEx ( HHOOK hhk; int nCode; WPARAM wParam; LPARAM lParam; );
UnHookWindowsHookEx ( HHOOK hhk; );
#pragma data_seg("SharedDataName") HHOOK hHook=NULL; #pragma data_seg()