#
雙擊:
ondblClick="edit_on('I104120130400011')"單擊:
onclick="lightonRow(this);"
嵌入頁面:<iframe allowtransparency="true" width=420 height=330 frameborder=0 scrolling=auto src=URL></iframe> allowtransparency:代表透明景色
用戶輸入內容 輸出用 htmlspecialchars
服務端 sql過濾
xss漏洞過濾
使用工具:Acunetix Web Vulnerability Scanner 7
卸載客戶端已經安裝的插件,升級服務器上的插件到最新版本,再訪問服務器上的報表下載新的插件
卸載插件方法:
如果是從服務器自動下載安裝的插件:首先關閉瀏覽報表的瀏覽器窗口,重新打開一個瀏覽器窗口,選擇瀏覽器的菜單:
工具-->Internet選項-->設置-->查看對象-->Ming-WebReport Viewer-->右鍵菜單-->刪除
如果是在客戶端運行安裝程序安裝的插件:在客戶端運行 regsvr32 /u "C:\.....\MRViewer.ocx"卸載安裝的插件。
升級插件到最新版本 windows7
正式版下載地址是http://www.soft2web.com/v4/MRLic/opendownload.asp,下載V3版本
解壓縮以后(不需要運行安裝程序),更新服務器上報表應用程序下的文件
報表根目錄下的MREngine.prop文件;
報表根目錄\Viewer\MRViewer.CAB文件;
更新以后,重啟一下。
服務器上文件正確升級以后,客戶端會自動下載安裝新版本的插件
注意客戶端需要管理員帳戶登陸以后再安裝瀏覽器插件。
windows7下 按F8 禁用數字簽名驅動。
獲取父窗口的名稱
parent.frames["otherframe"].name
parent.frames["otherframe"].location.href
parent.frames["otherframe"].document.all.控件ID.value
獲取父窗口內容:
$(parent.window.frames["frameMain"].document.body).html()
在body中增加內容:
當前頁的body增加內容:$("body").append('4444');
增加父窗口代碼:parent.frameContent.$(parent.frameContent.document).find("body").append('<font size="17" color="red">類別編碼: </font>');
本人覺得寫得很有道理,值得學習。
轉自【IT168知識庫】
表單自定義功能看似非常方便,可以不用寫代碼即可完成表單的開發設計,表面上看的確是減少不少開發成本,但深入研究,發現是有不少誤區的。
1、 對于整體成本來講,當表單自定義功能能滿足實際客戶需求的60%時,會為另外的40%需求付出多少成本?,F實中所見到的表單自定義工具一般至多能滿足實際客戶需求的50%。一般容易實現的僅布局、字段的增減、簡單的腳本控制等,但有很多諸如復雜腳本控制、自動計算、特殊邏輯驗證、主從關系,復雜基礎數據選擇(過濾、合并)、與其它功能模塊的交互等等需求,自定義工具都不能實現。最終可能帶來的代價是重做,甚至推翻整個系統架構重新實現,付出成本是預計成本的2-4倍以上均有可能;
2、 表單自定義功能實現的方式一般是數據庫表中預制了很多字段或者是一個表中的記錄存儲為 ID、字段名、值、字段類型,而且值的類型往往是字符型,這些做法給數據的查詢統計及SQL優化帶來的是非常大的性能損失和阻力,業務系統數據量不大的時候看不出,一旦數據業務表大到一定程度的時候,性能瓶頸就會出現。我們知道需要工作流的業務系統都是大量用戶和大規模業務數據的。對于表單自定義做法,性能瓶頸是一定要考慮的;
3、 表單自定義往往實現的是一個數據實體的增、刪、改,但對于一個系統來講一個表單僅僅是一個功能點而已,這個功能點對于整個系統來講遠不是那么單純的,有可能一個數據實體的資料分別在多個表單里進行更新和維護,自定義邏輯往往是處理不了它們之間的沖突,還有查詢和統計分析,這些是需要關聯很多基礎數據、關聯其它業務數據。自定義表單功能本身也只是從功能特性的角度去出發,對于系統復雜的實體關系、業務模式、設計模式的支持幾乎為零,一個高質量系統需要的因素基本實現不了;
4、 我們企業使用表單自定義工具的時候往往已經有了很多的系統,比如HR、CRM甚至ERP系統,我們很多關聯數據會是來自于這些系統的數據。表單自定義工具往往無法提供高可靠性的集成方案,即使能集成也是勉強的,后續會付出很多手工同步、統計口徑不一致等代價,為企業整體的信息化效果大打折扣;
5、 另外從實際的使用情況而言,我們實現一個表單自定義功能的目標往往是為了方便用戶實現自己的業務邏輯,但實際上很少客戶會自己去自定義這些表單。而開發人員都會熱忠于實現一個表單自定義工具,但不會愿意長期去做表單的定制工作,從開發人員的成長角度來說是不利的。對于團隊的管理者來說用程序員的工資去做表單配置工作也是不劃算的;
6、 透過這些現象的分析,假如我們一定要去實現一個好的表單自定義工具,一定是有很多事件接口的、一定是要能支持調試的、布局一定要能有足夠的細致、自定義過程中要有提供給業務人員的自動向導(比開發人員需要的向導更加傻瓜化)、一定能做到足夠的優化或支持優化的實現、能支持緩存、調用程序集、從WebService獲取信息、能對頁面交互過程進行優化。。。。。。這些都實現后,會發現做的表單定義工具其實就是大軟件公司研發的IDE開發環境,如:visual studio開發環境,我們是否有這個能力呢?
表單自定義工具在軟件投標過程中實現快速原型有幫助,但實際應用系統還是需要用大廠商提供的開發工具進行開發,假如一個表單自定義工具真那么容易實現的話,而且那么有用的話,為什么微軟、IBM等公司不去做這樣的工具呢?
eclipse classic 是eclipse的標準版:標準版;
Eclipse Classic的帶有source
建議使用Eclipse Classic,需要插件自己安裝配置即可
安裝相應插件:
1.安裝wtp,方便web開發
打開菜單help->Install new Software,單擊“add..”按鈕,彈出框的name和location都填入“http://download.eclipse.org/webtools/updates/”,等待一會,勾選“Web Tools Platform (WTP) 3.1.2”
2.安裝“java decompiler”
打開菜單help->Install new Software,單擊“add..”按鈕,彈出框的name和location都填入“http://java.decompiler.free.fr/jd-eclipse/update”,等待一會,勾選“Java Decompiler Eclipse Plug-in”,按向導進行安裝。
相關配置:
1.統一設置為utf-8編碼,Window->Preferences->General->Workspace->Text file encoding->Other->UTF-8。
2.修改jsp等默認編碼為utf-8,打開Window->Preferences->Web->Jsp Files,修改右面的encoding為(utf-8)。
3.統一設置為utf-8編碼,Window->Preferences->General->Content Types,在右面選擇“Text”,在default encoding輸入“UTF-8”,點“update”按鈕更新。
經過配置后,所有的新建的java、jsp、txt、html、xml、文件夾等編碼都是utf-8,這樣在jsp、html等文件中設定編碼為utf-8,可以避免亂碼。
1,Long轉換為BigDecimal.
btn.setSortCode(BigDecimal.valueOf(2l));
一、oracle啟動:把以下代碼另存為批處理文件(.bat)
@echo off
@ ECHO 啟動 Oracle 11g 服務
net start "OracleDBConsoleorcl"
net start "OracleOraDb11g_home1TNSListener"
net start "OracleServiceORCL"
@ ECHO 啟動完畢 按任意鍵繼續
exit
二、oracle停止:把以下代碼另存為批處理文件(.bat)
@echo off
@ ECHO 停止 Oracle 11g 服務
net stop "OracleDBConsoleorcl"
net stop "OracleOraDb11g_home1TNSListener"
net stop "OracleServiceORCL"
@ ECHO 停止完畢 按任意鍵繼續
pause
exit
一。安裝ireport,到iReport的官方網站:http://ireport.sourceforge.net/去下載。
二。安裝完后制作report模板文件:
1.新建一個文件:檔案-->開啟新檔
2.配置數據源:data-->連接資源來源-->new-->DataBase JDBC connection,輸入名稱,選擇驅動,填寫url.
3.插入數據,選擇data-->報表查詢,在這里寫要查詢的sql,寫好后會在field里自動生成查后的列;
4.拖動field到detail里。這樣就制作完成了。
5.建立--->編譯會在ireport的安裝目錄下生成.jasper結尾的文件。這就是我們需要的模板文件。
很簡單的一個報表例子。
三。寫jsp文件: (偶用的是IREPORT300,包請在IREPORT300中lib里找吧)
1。導入需要的降包:itext-1.3.1.jar,iTextAsian.jar,jasperreports-1.0.1.jar,poi-2.0-final-20040126.jar,classes12.jar。注意:不要是classes12.zip,我導入classes12.zip就是報找不到OracleDriver錯誤。
2.寫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>
強烈強調一句,如果你要在線顯示PDF,excel直接把response.setHeader("Content-disposition", "attachment; filename=" + fileName);
改為:response.setHeader("Content-disposition","inline; filename=MyExcel.pdf"); 就行了,
再強調一點,首先確定一定要安裝adobe reader閱讀器?。▌e說,我就因為沒裝這個,折騰了二天,呵呵。。。)
升級處理:
需要包:iText-2.1.7.jar、iTextAsian.jar、jasperreports-5.5.0.jar、poi-3.9-20121203.jar
相當于request.getparameter()的EL語句:
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"/>