#
雙擊:
ondblClick="edit_on('I104120130400011')"單擊:
onclick="lightonRow(this);"
嵌入頁(yè)面:<iframe allowtransparency="true" width=420 height=330 frameborder=0 scrolling=auto src=URL></iframe> allowtransparency:代表透明景色
用戶輸入內(nèi)容 輸出用 htmlspecialchars
服務(wù)端 sql過(guò)濾
xss漏洞過(guò)濾
使用工具:Acunetix Web Vulnerability Scanner 7
卸載客戶端已經(jīng)安裝的插件,升級(jí)服務(wù)器上的插件到最新版本,再訪問(wèn)服務(wù)器上的報(bào)表下載新的插件
卸載插件方法:
如果是從服務(wù)器自動(dòng)下載安裝的插件:首先關(guān)閉瀏覽報(bào)表的瀏覽器窗口,重新打開(kāi)一個(gè)瀏覽器窗口,選擇瀏覽器的菜單:
工具-->Internet選項(xiàng)-->設(shè)置-->查看對(duì)象-->Ming-WebReport Viewer-->右鍵菜單-->刪除
如果是在客戶端運(yùn)行安裝程序安裝的插件:在客戶端運(yùn)行 regsvr32 /u "C:\.....\MRViewer.ocx"卸載安裝的插件。
升級(jí)插件到最新版本 windows7
正式版下載地址是http://www.soft2web.com/v4/MRLic/opendownload.asp,下載V3版本
解壓縮以后(不需要運(yùn)行安裝程序),更新服務(wù)器上報(bào)表應(yīng)用程序下的文件
報(bào)表根目錄下的MREngine.prop文件;
報(bào)表根目錄\Viewer\MRViewer.CAB文件;
更新以后,重啟一下。
服務(wù)器上文件正確升級(jí)以后,客戶端會(huì)自動(dòng)下載安裝新版本的插件
注意客戶端需要管理員帳戶登陸以后再安裝瀏覽器插件。
windows7下 按F8 禁用數(shù)字簽名驅(qū)動(dòng)。
獲取父窗口的名稱(chēng)
parent.frames["otherframe"].name
parent.frames["otherframe"].location.href
parent.frames["otherframe"].document.all.控件ID.value
獲取父窗口內(nèi)容:
$(parent.window.frames["frameMain"].document.body).html()
在body中增加內(nèi)容:
當(dāng)前頁(yè)的body增加內(nèi)容:$("body").append('4444');
增加父窗口代碼:parent.frameContent.$(parent.frameContent.document).find("body").append('<font size="17" color="red">類(lèi)別編碼: </font>');
本人覺(jué)得寫(xiě)得很有道理,值得學(xué)習(xí)。
轉(zhuǎn)自【IT168知識(shí)庫(kù)】
表單自定義功能看似非常方便,可以不用寫(xiě)代碼即可完成表單的開(kāi)發(fā)設(shè)計(jì),表面上看的確是減少不少開(kāi)發(fā)成本,但深入研究,發(fā)現(xiàn)是有不少誤區(qū)的。
1、 對(duì)于整體成本來(lái)講,當(dāng)表單自定義功能能滿足實(shí)際客戶需求的60%時(shí),會(huì)為另外的40%需求付出多少成本。現(xiàn)實(shí)中所見(jiàn)到的表單自定義工具一般至多能滿足實(shí)際客戶需求的50%。一般容易實(shí)現(xiàn)的僅布局、字段的增減、簡(jiǎn)單的腳本控制等,但有很多諸如復(fù)雜腳本控制、自動(dòng)計(jì)算、特殊邏輯驗(yàn)證、主從關(guān)系,復(fù)雜基礎(chǔ)數(shù)據(jù)選擇(過(guò)濾、合并)、與其它功能模塊的交互等等需求,自定義工具都不能實(shí)現(xiàn)。最終可能帶來(lái)的代價(jià)是重做,甚至推翻整個(gè)系統(tǒng)架構(gòu)重新實(shí)現(xiàn),付出成本是預(yù)計(jì)成本的2-4倍以上均有可能;
2、 表單自定義功能實(shí)現(xiàn)的方式一般是數(shù)據(jù)庫(kù)表中預(yù)制了很多字段或者是一個(gè)表中的記錄存儲(chǔ)為 ID、字段名、值、字段類(lèi)型,而且值的類(lèi)型往往是字符型,這些做法給數(shù)據(jù)的查詢統(tǒng)計(jì)及SQL優(yōu)化帶來(lái)的是非常大的性能損失和阻力,業(yè)務(wù)系統(tǒng)數(shù)據(jù)量不大的時(shí)候看不出,一旦數(shù)據(jù)業(yè)務(wù)表大到一定程度的時(shí)候,性能瓶頸就會(huì)出現(xiàn)。我們知道需要工作流的業(yè)務(wù)系統(tǒng)都是大量用戶和大規(guī)模業(yè)務(wù)數(shù)據(jù)的。對(duì)于表單自定義做法,性能瓶頸是一定要考慮的;
3、 表單自定義往往實(shí)現(xiàn)的是一個(gè)數(shù)據(jù)實(shí)體的增、刪、改,但對(duì)于一個(gè)系統(tǒng)來(lái)講一個(gè)表單僅僅是一個(gè)功能點(diǎn)而已,這個(gè)功能點(diǎn)對(duì)于整個(gè)系統(tǒng)來(lái)講遠(yuǎn)不是那么單純的,有可能一個(gè)數(shù)據(jù)實(shí)體的資料分別在多個(gè)表單里進(jìn)行更新和維護(hù),自定義邏輯往往是處理不了它們之間的沖突,還有查詢和統(tǒng)計(jì)分析,這些是需要關(guān)聯(lián)很多基礎(chǔ)數(shù)據(jù)、關(guān)聯(lián)其它業(yè)務(wù)數(shù)據(jù)。自定義表單功能本身也只是從功能特性的角度去出發(fā),對(duì)于系統(tǒng)復(fù)雜的實(shí)體關(guān)系、業(yè)務(wù)模式、設(shè)計(jì)模式的支持幾乎為零,一個(gè)高質(zhì)量系統(tǒng)需要的因素基本實(shí)現(xiàn)不了;
4、 我們企業(yè)使用表單自定義工具的時(shí)候往往已經(jīng)有了很多的系統(tǒng),比如HR、CRM甚至ERP系統(tǒng),我們很多關(guān)聯(lián)數(shù)據(jù)會(huì)是來(lái)自于這些系統(tǒng)的數(shù)據(jù)。表單自定義工具往往無(wú)法提供高可靠性的集成方案,即使能集成也是勉強(qiáng)的,后續(xù)會(huì)付出很多手工同步、統(tǒng)計(jì)口徑不一致等代價(jià),為企業(yè)整體的信息化效果大打折扣;
5、 另外從實(shí)際的使用情況而言,我們實(shí)現(xiàn)一個(gè)表單自定義功能的目標(biāo)往往是為了方便用戶實(shí)現(xiàn)自己的業(yè)務(wù)邏輯,但實(shí)際上很少客戶會(huì)自己去自定義這些表單。而開(kāi)發(fā)人員都會(huì)熱忠于實(shí)現(xiàn)一個(gè)表單自定義工具,但不會(huì)愿意長(zhǎng)期去做表單的定制工作,從開(kāi)發(fā)人員的成長(zhǎng)角度來(lái)說(shuō)是不利的。對(duì)于團(tuán)隊(duì)的管理者來(lái)說(shuō)用程序員的工資去做表單配置工作也是不劃算的;
6、 透過(guò)這些現(xiàn)象的分析,假如我們一定要去實(shí)現(xiàn)一個(gè)好的表單自定義工具,一定是有很多事件接口的、一定是要能支持調(diào)試的、布局一定要能有足夠的細(xì)致、自定義過(guò)程中要有提供給業(yè)務(wù)人員的自動(dòng)向?qū)Вū乳_(kāi)發(fā)人員需要的向?qū)Ц由倒匣⒁欢茏龅阶銐虻膬?yōu)化或支持優(yōu)化的實(shí)現(xiàn)、能支持緩存、調(diào)用程序集、從WebService獲取信息、能對(duì)頁(yè)面交互過(guò)程進(jìn)行優(yōu)化。。。。。。這些都實(shí)現(xiàn)后,會(huì)發(fā)現(xiàn)做的表單定義工具其實(shí)就是大軟件公司研發(fā)的IDE開(kāi)發(fā)環(huán)境,如:visual studio開(kāi)發(fā)環(huán)境,我們是否有這個(gè)能力呢?
表單自定義工具在軟件投標(biāo)過(guò)程中實(shí)現(xiàn)快速原型有幫助,但實(shí)際應(yīng)用系統(tǒng)還是需要用大廠商提供的開(kāi)發(fā)工具進(jìn)行開(kāi)發(fā),假如一個(gè)表單自定義工具真那么容易實(shí)現(xiàn)的話,而且那么有用的話,為什么微軟、IBM等公司不去做這樣的工具呢?
eclipse classic 是eclipse的標(biāo)準(zhǔn)版:標(biāo)準(zhǔn)版;
Eclipse Classic的帶有source
建議使用Eclipse Classic,需要插件自己安裝配置即可
安裝相應(yīng)插件:
1.安裝wtp,方便web開(kāi)發(fā)
打開(kāi)菜單help->Install new Software,單擊“add..”按鈕,彈出框的name和location都填入“http://download.eclipse.org/webtools/updates/”,等待一會(huì),勾選“Web Tools Platform (WTP) 3.1.2”
2.安裝“java decompiler”
打開(kāi)菜單help->Install new Software,單擊“add..”按鈕,彈出框的name和location都填入“http://java.decompiler.free.fr/jd-eclipse/update”,等待一會(huì),勾選“Java Decompiler Eclipse Plug-in”,按向?qū)нM(jìn)行安裝。
相關(guān)配置:
1.統(tǒng)一設(shè)置為utf-8編碼,Window->Preferences->General->Workspace->Text file encoding->Other->UTF-8。
2.修改jsp等默認(rèn)編碼為utf-8,打開(kāi)Window->Preferences->Web->Jsp Files,修改右面的encoding為(utf-8)。
3.統(tǒng)一設(shè)置為utf-8編碼,Window->Preferences->General->Content Types,在右面選擇“Text”,在default encoding輸入“UTF-8”,點(diǎn)“update”按鈕更新。
經(jīng)過(guò)配置后,所有的新建的java、jsp、txt、html、xml、文件夾等編碼都是utf-8,這樣在jsp、html等文件中設(shè)定編碼為utf-8,可以避免亂碼。
1,Long轉(zhuǎn)換為BigDecimal.
btn.setSortCode(BigDecimal.valueOf(2l));
一、oracle啟動(dòng):把以下代碼另存為批處理文件(.bat)
@echo off
@ ECHO 啟動(dòng) Oracle 11g 服務(wù)
net start "OracleDBConsoleorcl"
net start "OracleOraDb11g_home1TNSListener"
net start "OracleServiceORCL"
@ ECHO 啟動(dòng)完畢 按任意鍵繼續(xù)
exit
二、oracle停止:把以下代碼另存為批處理文件(.bat)
@echo off
@ ECHO 停止 Oracle 11g 服務(wù)
net stop "OracleDBConsoleorcl"
net stop "OracleOraDb11g_home1TNSListener"
net stop "OracleServiceORCL"
@ ECHO 停止完畢 按任意鍵繼續(xù)
pause
exit
一。安裝ireport,到iReport的官方網(wǎng)站:http://ireport.sourceforge.net/去下載。
二。安裝完后制作report模板文件:
1.新建一個(gè)文件:檔案-->開(kāi)啟新檔
2.配置數(shù)據(jù)源:data-->連接資源來(lái)源-->new-->DataBase JDBC connection,輸入名稱(chēng),選擇驅(qū)動(dòng),填寫(xiě)url.
3.插入數(shù)據(jù),選擇data-->報(bào)表查詢,在這里寫(xiě)要查詢的sql,寫(xiě)好后會(huì)在field里自動(dòng)生成查后的列;
4.拖動(dòng)field到detail里。這樣就制作完成了。
5.建立--->編譯會(huì)在ireport的安裝目錄下生成.jasper結(jié)尾的文件。這就是我們需要的模板文件。
很簡(jiǎn)單的一個(gè)報(bào)表例子。
三。寫(xiě)jsp文件: (偶用的是IREPORT300,包請(qǐng)?jiān)贗REPORT300中l(wèi)ib里找吧)
1。導(dǎo)入需要的降包:itext-1.3.1.jar,iTextAsian.jar,jasperreports-1.0.1.jar,poi-2.0-final-20040126.jar,classes12.jar。注意:不要是classes12.zip,我導(dǎo)入classes12.zip就是報(bào)找不到OracleDriver錯(cuò)誤。
2.寫(xiě)jsp文件:
- <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
- <%@ page import="java.sql.*"%>
- <%@ page import="java.io.*"%>
- <%@ page import="net.sf.jasperreports.engine.JasperFillManager"%>
- <%@ page import="net.sf.jasperreports.engine.JasperPrint"%>
- <%@ page import="net.sf.jasperreports.engine.JRException"%>
- <%@ page import="net.sf.jasperreports.engine.JRExporterParameter"%>
- <%@ page import="net.sf.jasperreports.engine.export.JRXlsExporterParameter"%>
- <%@ page import="net.sf.jasperreports.engine.export.JRXlsExporter"%>
-
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <body>
-
- <%
- String Name = "aa";
- Class.forName("oracle.jdbc.driver.OracleDriver");
- Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","lshh","lshh");
-
- File exe_rpt = new File(application.getRealPath("/test.jasper"));
-
- Map parameters = new HashMap();
- parameters.put("Name", Name);
- try {
-
- JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt
- .getPath(), parameters, conn);
-
- ByteArrayOutputStream oStream = new ByteArrayOutputStream();
- JRXlsExporter exporter = new JRXlsExporter();
- exporter.setParameter(JRExporterParameter.JASPER_PRINT,
- jasperPrint);
- exporter.setParameter(JRExporterParameter.OUTPUT_STREAM,
- oStream);
- exporter.setParameter(
- JRXlsExporterParameter.IS_REMOVE_EMPTY_SPACE_BETWEEN_ROWS,
- Boolean.TRUE);
- exporter.setParameter(
- JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET,
- Boolean.FALSE);
- exporter.setParameter(
- JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
- Boolean.FALSE);
- exporter.exportReport();
-
- byte[] bytes = oStream.toByteArray();
-
- if (bytes != null && bytes.length > 0) {
- response.reset();
- response.setContentType("application/vnd.ms-excel");
- response.setContentLength(bytes.length);
- ServletOutputStream ouputStream = response
- .getOutputStream();
- ouputStream.write(bytes, 0, bytes.length);
- ouputStream.flush();
- ouputStream.close();
-
- } else {
- out.print("bytes were null!");
- }
- conn.close();
- } catch (JRException ex) {
- out.print("Jasper Output Error:" + ex.getMessage());
- }
- %>
-
-
- </body>
- </html>
強(qiáng)烈強(qiáng)調(diào)一句,如果你要在線顯示PDF,excel直接把response.setHeader("Content-disposition", "attachment; filename=" + fileName);
改為:response.setHeader("Content-disposition","inline; filename=MyExcel.pdf"); 就行了,
再?gòu)?qiáng)調(diào)一點(diǎn),首先確定一定要安裝adobe reader閱讀器啊(別說(shuō),我就因?yàn)闆](méi)裝這個(gè),折騰了二天,呵呵。。。)
升級(jí)處理:
需要包:iText-2.1.7.jar、iTextAsian.jar、jasperreports-5.5.0.jar、poi-3.9-20121203.jar
相當(dāng)于request.getparameter()的EL語(yǔ)句:
1、 ${param.method}
2、
<s:property value="#parameters.method"/>
3、 <s:if test="%{#parameters.method[0]=='delete'}">
4、<% String sysCode = (String)request.getSession().getAttribute("sysCode");%>
<c:url value="/${sysCode}/LoginAction_left.do"/>