Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 人体高清大胆西西人体,91精品久久久久久久久网影视,日韩在线小视频

          整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Tomcat 原理、調(diào)優(yōu)和錯(cuò)誤匯總

          Tomcat 原理、調(diào)優(yōu)和錯(cuò)誤匯總

          地環(huán)境:Tomcat 6、Windows 10、Java 1.7、myeclipse 10

          一、使用方法

          1.1 Tomcat 部署靜態(tài)頁面

          參考鏈接:https://blog.csdn.net/qq_32786873/article/details/79609314

          二、使用錯(cuò)誤

          2.1 503 Service Unavailable

          原因:

          2.2 The web application [/project-name] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

          或者The web application [/project-name] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

          可能存在的問題

          • 數(shù)據(jù)庫賬號(hào)密碼錯(cuò)誤
          • 有多個(gè)數(shù)據(jù)庫配置源
          • jar包問題,把連接jdbc的jar包,拷貝到tomcate的lib目錄下就可以了,如:ojdbc14.jar
          • 服務(wù)器內(nèi)存沖突,重啟系統(tǒng)
          • Tomcat內(nèi)存不夠
          • Window->Preferences->tomcat 點(diǎn)擊右側(cè)的按鈕,
          • Creat Launch Configuration,在你對(duì)應(yīng)的tomcat屬性Aarguments下面添加一句話:
          • -Xms256m -Xmx512m -XX:PermSize=64M -XX:MaxPermSize=256m
          • 誤報(bào):https://github.com/alibaba/druid/issues/1699

          實(shí)現(xiàn)ServletContextListener,然后再contextDestroyed()方法中添加如下代碼:

          Enumeration drivers=DriverManager.getDrivers();

          while (drivers.hasMoreElements()) {

          Driver driver=drivers.nextElement();

          try {

          DriverManager.deregisterDriver(driver);

          logger.info(String.format(“deregistering jdbc driver: %s”, driver));

          } catch (SQLException e) {

          e.printStackTrace();

          logger.error(String.format(“deregistering jdbc driver: %s”, driver));

          }

          }

          最后在web.xml中注冊(cè)自己的監(jiān)聽器,問題解決。

          2.3 lib1.so: lib2.so: 無法打開共享對(duì)象文件: 沒有那個(gè)文件或目錄

          (1)如果共享庫文件安裝到了/lib或/usr/lib目錄下, 那么需執(zhí)行一下ldconfig命令

          (2)

           # cat /etc/ld.so.conf
           include ld.so.conf.d/*.conf
           # echo "/usr/local/lib" >> /etc/ld.so.conf
           # ldconfig
          

          (3) export LD_LIBRARY_PATH=…/webapps/項(xiàng)目名稱/WEB-INF/classes

          參考鏈接:https://www.cnblogs.com/Anker/p/3209876.html

          myeclipse修改代碼后無法實(shí)時(shí)加載到tomcat

          暫未解決

          三、原理

          概述

          HTTP server主要用來給瀏覽器等客戶端提供靜態(tài)資源的訪問功能,還有代理服務(wù)器、負(fù)載均衡等功能。當(dāng)然,通過CGI/Servlet技術(shù),也可以將處理過的動(dòng)態(tài)內(nèi)容通過HTTP Server分發(fā),但是一個(gè)HTTP Server始終只是把服務(wù)器上的文件如實(shí)的通過HTTP協(xié)議傳輸給客戶端。

          而tomcat屬于application server,也是綁定服務(wù)器IP并監(jiān)聽TCP端口。它實(shí)現(xiàn)了部分HTTP server的功能,沒有nginx和Apache的功能豐富。主要用于處理動(dòng)態(tài)內(nèi)容。沒有提供java EE規(guī)范,如下圖:

          架構(gòu)

          兩大核心部分connector(連接器)和container(容器)。

          tomcat的work目錄是工作目錄,在瀏覽器訪問jsp=》java=》.class。tomcat定時(shí)掃描work目錄,不是實(shí)時(shí)的,因此修改jsp文件后不會(huì)立馬生效,可以立即刪除work目錄。

          針對(duì)由jsp轉(zhuǎn)換成的java文件,比如my-jsp.java,tomcat編譯支持的文件大小最大為64k。改進(jìn):1.把jsp中的業(yè)務(wù)邏輯寫入單獨(dú)的類,在jsp中通過調(diào)用這個(gè)類的靜態(tài)方法來執(zhí)行;2.將jsp頁面中的js提取出來放到單獨(dú)的js文件內(nèi)。

          AJP協(xié)議:二進(jìn)制協(xié)議

          客戶端< - http / s->代理< - http / s - >應(yīng)用

          VS

          客戶端< - http / s->代理< - AJP - >應(yīng)用

          xshell 關(guān)閉后 linux的tomcat斷掉解決

          方法一:

          輸入命令

          nohup ./catalina.sh run &

          顯示為:

          [1]8579

          如何關(guān)掉?

          輸入命令查看進(jìn)程號(hào)

          ps -ef |grep tomcat
          

          顯示處root 456 33345 99。。。省略

          其中33345為端口號(hào)

          輸入命令結(jié)束進(jìn)程 kill -9 進(jìn)程號(hào)

          kill -9 33345

          方法二:

          啟動(dòng)方式

          (1)Catania

          (2)startup

          使用startup方式啟動(dòng)tomcat,tomcat運(yùn)行不受shell影響。

          Several ports (8005, 8080, 8009) required by Tomcat Server at localhost are already in use

          方法一:進(jìn)入tomcat bin目錄執(zhí)行shutdown.sh或者shutdown.bat。

          方法二:進(jìn)一步排查——任務(wù)管理器或者命令行kill殺掉Java、tomcat相關(guān)進(jìn)程,重啟eclipse。

          tomcat 調(diào)優(yōu)

          動(dòng)靜分離

          nginx+tomcat,使用nginx實(shí)現(xiàn)靜態(tài)資源的訪問,tomcat處理jsp。

          tomcat線程池

          打開tomcat的server.xml

          配置Executor

          ??<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4" maxIdLeTime="60000"/>

          參數(shù)解釋

          name

          給執(zhí)行器(線程池)起一個(gè)名字

          namePrefix

          指定線程池中的每一個(gè)線程的name前綴

          maxThreads

          線程池中最大的線程數(shù)量

          假設(shè):請(qǐng)求的數(shù)量超過了“750”,這將不是意味著將maxThreads屬性值設(shè)置為“750”,它的最好解決方案是使用“Tomcat集群”。

          也就是說,如果有“1000”請(qǐng)求,兩個(gè)Tomcat實(shí)例設(shè)置“maxThreads=500”,而不在單Tomcat實(shí)例的情況下設(shè)置maxThreads=1000。

          minSpareThreads

          線程池中允許空閑的線程數(shù)量(多余的線程都?xì)⑺溃?/p>

          maxIdLeTime

          一個(gè)線程空閑多久算是一個(gè)空閑線程

          其他的配置其實(shí)閱讀官方文檔是最好的。

           <Connector port="8081" protocol="HTTP/1.1" executor="tomcatThreadPool"
           connectionTimeout="20000"
           redirectPort="8443" enableLookups="false"/>
          

          enableLookups="false"

          關(guān)閉dns解析,減少性能損耗

          minProcessors

          服務(wù)器啟動(dòng)時(shí)創(chuàng)建的最少線程數(shù)

          maxProcessors

          最大可以創(chuàng)建的線程數(shù)

          acceptCount=“1000”

          線程池中的線程都被占用,允許放到隊(duì)列中的請(qǐng)求數(shù)

          maxThreads=“3000”

          最大線程數(shù)

          minSpareThreads=“20”

          最小空閑線程數(shù),這里是一直會(huì)運(yùn)行的線程

          和壓縮有關(guān)系的配置

          通過修改tomcat的運(yùn)行模式

          BIO

          Tomcat8以下版本,默認(rèn)使用的就是BIO(阻塞式IO)模式。

          對(duì)于每一個(gè)請(qǐng)求都要?jiǎng)?chuàng)建一個(gè)線程來進(jìn)行處理,不適合高并發(fā)

          APR(Apache Portable Runtime)

          是Tomcat生產(chǎn)環(huán)境運(yùn)行的首選方式

          如果操作系統(tǒng)未安裝apr或者apr路徑未指到Tomcat默認(rèn)可識(shí)別的路徑,

          則apr模式無法啟動(dòng),自動(dòng)切換啟動(dòng)nio模式。

          所以必須要安裝apr和native,直接啟動(dòng)就支持apr

          apr是從操作系統(tǒng)級(jí)別解決異步IO問題,apr的本質(zhì)就是使用jni(java native interface)

          技術(shù)調(diào)用操作系統(tǒng)底層的IO接口,所以需要提前安裝所需要的依賴

          提升Tomcat對(duì)靜態(tài)文件的處理性能,當(dāng)然也可以采用動(dòng)靜分離。

          禁用AJP連接器 Apache JServer Protocol

          使用Nginx+tomcat的架構(gòu),所以用不著AJP協(xié)議,所以把AJP連接器禁用

          Linux 下修改 TOMCAT_HOME/bin/catalina.sh,在其中加入,可以放在 CLASSPATH=下面:

          JAVA_OPTS="-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m"

          windows 下修改 TOMCAT_HOME/bin/catalina.bat,在其中加入,可以放在 set CLASSPATH=下面:

          set JAVA_OPTS=-server -XX:PermSize=512M -XX:MaxPermSize=1024m -Xms2048m -Xmx2048m

          這些參數(shù)在我們學(xué)習(xí) JVM 部分文章時(shí)已經(jīng)都認(rèn)識(shí)過了,不過這里還是簡(jiǎn)單介紹下:

          -server:?jiǎn)⒂?JDK的 server 版本;

          -Xms:Java虛擬機(jī)初始化時(shí)堆的最小內(nèi)存,一般與 Xmx配置為相同值,這樣的好處是GC不必再為擴(kuò)展內(nèi)存空間而消耗性能;

          -Xmx:Java虛擬機(jī)可使用堆的最大內(nèi)存;

          -XX:PermSize:Java虛擬機(jī)永久代大小;

          -XX:MaxPermSize:Java虛擬機(jī)永久代大小最大值;

          線程池配置

          <Executor name="tomcatThreadPool" 
           namePrefix="catalina-exec-" 
           maxThreads="1000" 
           minSpareThreads="100" 
           maxIdleTime="60000" 
           maxQueueSize="Integer.MAX_VALUE" 
           prestartminSpareThreads="false" 
           threadPriority="5" 
           className="org.apache.catalina.core.StandardThreadExecutor"/> 
          

          name:線程池名稱,用于 Connector中指定。 namePrefix:所創(chuàng)建的每個(gè)線程的名稱前綴,一個(gè)單獨(dú)的線程名稱為

          namePrefix+threadNumber。 maxThreads:池中最大線程數(shù)。

          minSpareThreads:活躍線程數(shù),也就是核心池線程數(shù),這些線程不會(huì)被銷毀,會(huì)一直存在。

          maxIdleTime:線程空閑時(shí)間,超過該時(shí)間后,空閑線程會(huì)被銷毀,默認(rèn)值為6000(1分鐘),單位毫秒。

          maxQueueSize:在被執(zhí)行前最大線程排隊(duì)數(shù)目,默認(rèn)為Int的最大值,也就是廣義的無限。除非特殊情況,這個(gè)值不需要更改,否則會(huì)有請(qǐng)求不會(huì)被處理的情況發(fā)生。

          prestartminSpareThreads:?jiǎn)?dòng)線程池時(shí)是否啟動(dòng) minSpareThreads部分線程。默認(rèn)值為false,即不啟動(dòng)。

          threadPriority:線程池中線程優(yōu)先級(jí),默認(rèn)值為5,值從1到10。

          className:線程池實(shí)現(xiàn)類,未指定情況下,默認(rèn)實(shí)現(xiàn)類為org.apache.catalina.core.StandardThreadExecutor。如果想使用自定義線程池首先需要實(shí)現(xiàn)

          org.apache.catalina.Executor接口。

          線程池配置完成后需要在 Connector 中指定:

          <Connector executor="tomcatThreadPool" 
          ... 
          

          <Connector port="9027"
             ...........
             compression="on"
             compressionMinSize="2048"
           connectionTimeout="20000"
           compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
           ................
             />
          

          compression 打開壓縮功能

          compressionMinSize 啟用壓縮的輸出內(nèi)容大小,這里面默認(rèn)為2KB

          compressableMimeType 壓縮類型

          connectionTimeout 定義建立客戶連接超時(shí)的時(shí)間. 如果為 -1, 表示不限制建立客戶連接的時(shí)間

          參考鏈接:1.Tomcat 性能優(yōu)化——

          https://gitbook.cn/books/5ad3405a1b0f9f64ea5f7758/index.html#writeCommentDiv

          本信息

          姓名:七分簡(jiǎn)歷

          年齡:28歲

          電話:186****7462

          郵箱:449375****@qq.com

          經(jīng)驗(yàn):6年

          意向:java軟件工程師

          教育背景

          時(shí)間:2012-09 - 2014-06

          學(xué)校:【七分簡(jiǎn)歷】師范大學(xué) | 專業(yè):計(jì)算機(jī)軟件 | 學(xué)歷:大專

          工作經(jīng)歷

          工作時(shí)間:2014-08 - 2017-07

          公司名稱:【七分簡(jiǎn)歷】信息科技有限公司 | 所在部門: | 所在崗位:java軟件工程師

          工作描述:

          職 位:Java軟件工程師

          工作描述:

          1.參與項(xiàng)目的需求分析,研究項(xiàng)目功能實(shí)現(xiàn)細(xì)節(jié)。

          2.根據(jù)新項(xiàng)目開發(fā)進(jìn)度和任務(wù)分配,開發(fā)相應(yīng)軟件;根據(jù)需求及時(shí)修改完善軟件。

          3.在編程中積累解決問題的經(jīng)驗(yàn)?zāi)芨咝乙?guī)范書寫代碼。

          4.在自行編寫完成時(shí)進(jìn)行軟件的測(cè)試和修復(fù)。

          工作時(shí)間:2015-09 - 2016-04

          公司名稱:【七分簡(jiǎn)歷】網(wǎng)絡(luò)科技有限公司 | 所在部門: | 所在崗位:java軟件開發(fā)實(shí)習(xí)工程師

          工作描述:

          在該公司,作為java開發(fā)實(shí)習(xí)生主要負(fù)責(zé)的工作有:

          1、按照軟件開發(fā)管理規(guī)范等的要求,根據(jù)主管分配的任務(wù),參與程序開發(fā)、測(cè)試以及文檔準(zhǔn)備工作;

          2、根據(jù)業(yè)務(wù)需求參與業(yè)務(wù)系統(tǒng)的系統(tǒng)設(shè)計(jì)或開發(fā)實(shí)現(xiàn)模塊的設(shè)計(jì)、編碼和單元測(cè)試工作;

          項(xiàng)目經(jīng)歷

          項(xiàng)目時(shí)間:2015-04 - 2016-04

          項(xiàng)目名稱:鮮果之家 | 項(xiàng)目工具:Windows

          項(xiàng)目描述:

          項(xiàng)目介紹

          此電商系統(tǒng)屬于B2C模式的一個(gè)水果商城,該商城致力于為客戶提供選購、定制、配送、售后的全方位服務(wù)。商城主要功能模塊有:用戶管理、角色管理、權(quán)限管理、商品管理、公告管理、產(chǎn)品交易,訂單管理,退款管理,賬目統(tǒng)計(jì),有問有答,界面管理。

          根據(jù)項(xiàng)目需求,采用 Spring, SpringMVC,Mybatis作為底層框架,對(duì)項(xiàng)目進(jìn)行一個(gè)分布式開發(fā),采用MySql數(shù)據(jù)庫,使用SVN對(duì)代碼進(jìn)行版本控制。使用Ajax異步以及正則表達(dá)式驗(yàn)證輸入信息是否合法;使用fileupload組件實(shí)現(xiàn)用戶信息的文件上傳,使用init函數(shù)實(shí)現(xiàn)用戶管理、商品管理、角色管理四個(gè)模塊的分頁操作;使用BootStrap 設(shè)計(jì)后臺(tái)管理界面;使用 Shiro 實(shí)現(xiàn)用戶登錄的權(quán)限控制;使用redis緩存技術(shù)高效獲取顯示列表數(shù)據(jù),以減輕服務(wù)器所承載的壓力。

          我的職責(zé)

          主要負(fù)責(zé)后臺(tái)管理模塊:用戶管理、商品管理、角色管理、公告管理,根據(jù)所需求的業(yè)務(wù)進(jìn)行開發(fā),代碼編寫,實(shí)現(xiàn)功能

          項(xiàng)目時(shí)間:2015-07 - 2016-04

          項(xiàng)目名稱:夠潮網(wǎng)女性購物商城

          項(xiàng)目描述:

          項(xiàng)目介紹

          “夠潮網(wǎng)女性購物商城”針對(duì)廣大女性消費(fèi)群眾,為她們提供便利,從而提高生活水平的一個(gè)網(wǎng)上購物商城。該項(xiàng)目主要分為用戶管理、公告管理、商品類型管理、商品管理、商品屬性管理、評(píng)論管理、客戶管理、訂單管理、物流管理等模塊。

          我的職責(zé)

          1.對(duì)負(fù)責(zé)的模塊進(jìn)行分析和設(shè)計(jì)。主要采用UML的用例圖、順序圖和狀態(tài)圖。

          2. 模塊管理:完成對(duì)該系統(tǒng)中各個(gè)模塊的管理。主要為CRUD操作。

          3. 角色管理和用戶管理:除基本的CRUD操作外,主要為權(quán)限的管理;該系統(tǒng)采用RBAC模式實(shí)現(xiàn)權(quán)限管理。將權(quán)限

          授予如普通管理員和超級(jí)管理員,再將角色分配給用戶的方式,實(shí)現(xiàn)對(duì)用戶的授權(quán);同時(shí)系統(tǒng)也可以對(duì)用戶直接進(jìn)行

          授權(quán)。授權(quán)的具體實(shí)現(xiàn)采用DWR框架。

          4. 工作流程:采用JBPM實(shí)現(xiàn)工作流程開發(fā)。

          個(gè)人評(píng)價(jià)

          1、為人穩(wěn)重踏實(shí),具有一定的邏輯思維能力,有較強(qiáng)的解決和分析問題能力;

          2、工作能吃苦,做事積極、踏實(shí),能獨(dú)立完成功能模塊的開發(fā)。

          3、有較強(qiáng)的自學(xué)能力,能較快熟悉新技術(shù)。

          4、待人熱誠,能很好的與人溝通,具有較強(qiáng)的團(tuán)隊(duì)意識(shí),集體榮譽(yù)感及組織協(xié)調(diào)能力。

          5、熟練使用SSM、SSH等主流框架技術(shù),對(duì)shiro框架有一定了解。

          6、熟悉Bootscrap、EasyUI、jquery前端技術(shù)。

          7、熟練SQLServer,MySQL數(shù)據(jù)庫,了解Oracle數(shù)據(jù)庫。

          8、熟練掌握Tomcat服務(wù)器的安裝部署。

          9、熟練使用MyEclipse、Eclipse等開發(fā)工具進(jìn)行開發(fā)。

          個(gè)人技能

          J2EE的主流框架SSH(hibernate,Struts2,Spring)

          能運(yùn)用SVN,Maven的功具

          SQL Server,MySQL,oracle

          Tomcat,jboss

          Eclipse,MyEclipse

          HTML,JSP,jQuery,Ajax,div+css,echarts

          oop

          JUnit代碼的單元測(cè)試

          linux常用的命令

          了解io、多線程、集合

          織良好的業(yè)務(wù)數(shù)據(jù)可以顯著改善關(guān)鍵的決策過程。使用MyEclipse Reports?工具來開發(fā)各種Web報(bào)表。在本教程中,您將學(xué)習(xí)到:

          • 創(chuàng)建一個(gè)報(bào)表Web項(xiàng)目和數(shù)據(jù)源
          • 創(chuàng)建、布局和格式化的報(bào)表
          • 創(chuàng)建一個(gè)數(shù)據(jù)集
          • 排序報(bào)表數(shù)據(jù)
          • 部署和測(cè)試報(bào)表項(xiàng)目

          持續(xù)時(shí)間:30分鐘

          沒有MyEclipse?立即下載

          1. 創(chuàng)建一個(gè)報(bào)表Web項(xiàng)目

          這里有兩種方法來創(chuàng)建報(bào)表Web項(xiàng)目。第一種方法是使用報(bào)表向?qū)韯?chuàng)建一個(gè)新的項(xiàng)目;第二種方法是添加報(bào)表Web Runtime Facet到一個(gè)現(xiàn)有的MyEclipse Web項(xiàng)目中。

          注意:MyEclipse標(biāo)準(zhǔn)用戶不能使用報(bào)表功能。

          1.1 創(chuàng)建一個(gè)新的報(bào)表Web項(xiàng)目

          (1)選擇File>New>Report Web Project。

          (2)在項(xiàng)目名稱字段中輸入reportdemo,然后單擊下一步。

          注意:本教程使用默認(rèn)的JavaEE 6版本;然而,在創(chuàng)建新的項(xiàng)目是JavaEE 7也是可行的。

          創(chuàng)建一個(gè)新的報(bào)表Web項(xiàng)目

          (3)配置項(xiàng)目文件夾結(jié)構(gòu),然后單擊下一步。

          項(xiàng)目文件夾配置

          (4)更改或接受默認(rèn)的Web模塊文件夾名稱,然后單擊下一步。

          設(shè)置Web模塊的文件夾名稱

          (5)配置部署設(shè)置,指定報(bào)表引擎的日志記錄級(jí)別,然后單擊完成。

          指定報(bào)表引擎的日志記錄級(jí)別

          報(bào)表項(xiàng)目結(jié)構(gòu)

          1.2 添加報(bào)表Web Runtime Facet到現(xiàn)有的Web項(xiàng)目中

          您可以安裝報(bào)表Web Runtime facet到任何現(xiàn)有的MyEclipse Web項(xiàng)目中。

          (1)右鍵單擊該項(xiàng)目,并選擇MyEclipse>Project Facets>Install MyEclipse Report Web Runtime Facet。

          添加report web runtime facet

          (2)完成向?qū)В缓髥螕鬎inish來更新項(xiàng)目。

          當(dāng)向?qū)шP(guān)閉時(shí),系統(tǒng)會(huì)提示您打開MyEclipse Report Design視角,此時(shí)選擇Yes。否則,您打開視角只能通過選擇Window>Open Perspective>Other,然后選擇MyEclipse Report Design才能打開。

          2. 創(chuàng)建報(bào)表

          (1)選擇reportdemo項(xiàng)目,并選擇File>New>Report。(當(dāng)使用MyEclipse Report Design perspective時(shí)會(huì)出現(xiàn)報(bào)表工具欄選項(xiàng))

          (2)在文件名稱字段中輸入demo_report.rptdesign。報(bào)表的擴(kuò)展名應(yīng)該被命名為.rptdesign。

          (3)請(qǐng)選中生成報(bào)表訪問的網(wǎng)頁選項(xiàng),然后單擊下一步。

          選擇項(xiàng)目報(bào)表

          (4)從模板列表中選擇空白報(bào)表,然后單擊下一步。

          選擇一個(gè)報(bào)表模板

          下一個(gè)頁面,您可以創(chuàng)建一個(gè)示例JSP網(wǎng)頁來演示如何使用新的報(bào)表進(jìn)行工作。示例的樣本JSP網(wǎng)頁可以適當(dāng)配置一個(gè)鏈接到您的報(bào)表中,或者直接將其嵌入報(bào)表中。

          注意:如果您不在此時(shí)選擇生成一個(gè)示例報(bào)表訪問頁面,以后可以隨時(shí)通過右鍵單擊該報(bào)表,并選擇MyEclipse>Generate Sample Report Access WebPage。

          (5)使用默認(rèn)的文件夾位置,并輸入demo_report.jsp作為JSP文件名。

          (6)選擇嵌入式報(bào)表查看器[JSP Tag]選項(xiàng),然后單擊Finish。

          報(bào)表訪問的網(wǎng)頁選項(xiàng)

          (7)為檢索報(bào)表數(shù)據(jù)創(chuàng)建一個(gè)JDBC數(shù)據(jù)源,這個(gè)示例使用MyEclipse Derby數(shù)據(jù)庫中的表。

          3. 創(chuàng)建一個(gè)數(shù)據(jù)集

          數(shù)據(jù)組是一個(gè)從數(shù)據(jù)源檢索數(shù)據(jù)的集合。此數(shù)據(jù)將會(huì)顯示在一個(gè)報(bào)表中,本示例中使用的是SQL數(shù)據(jù)源。

          (1)在數(shù)據(jù)資源管理器中,右鍵單擊數(shù)據(jù)集,并選擇New Data Set。

          創(chuàng)建一個(gè)新的數(shù)據(jù)集

          (2)選擇在上一節(jié)中創(chuàng)建的數(shù)據(jù)源。

          (3)接受默認(rèn)的MyEclipse SQL Select Query數(shù)據(jù)集類型。

          (4)在數(shù)據(jù)集名稱字段中輸入Customers,然后單擊下一步。

          選擇數(shù)據(jù)源

          (5)輸入以下SQL查詢,然后單擊Finish來執(zhí)行SQL查詢和創(chuàng)建數(shù)據(jù)集。

          select CUSTOMERNAME, CONTACTFIRSTNAME, CONTACTLASTNAME, PHONE

          from CLASSICCARS.CUSTOMER

          數(shù)據(jù)集查詢編輯器

          對(duì)該數(shù)據(jù)集進(jìn)行SQL查詢檢索數(shù)據(jù)。當(dāng)您輸入一個(gè)SQL查詢時(shí),查詢編輯器提供內(nèi)容輔助的模式和表名。您也可以在樹形視圖中雙擊一個(gè)表或列,并在編輯最后的地方插入查詢?cè)撛氐南薅Q。

          如果創(chuàng)建數(shù)據(jù)集沒有問題,那么打開編輯數(shù)據(jù)集窗口,讓您進(jìn)一步自定義數(shù)據(jù)集。選擇Preview Results來顯示SQL查詢的數(shù)據(jù)結(jié)果。

          數(shù)據(jù)集編輯器

          4. 制定報(bào)表

          下一個(gè)步驟就是將用戶界面元素添加到報(bào)表中,用于從Customers數(shù)據(jù)集中顯示數(shù)據(jù)。您可以通過右鍵單擊報(bào)表頁面來將報(bào)表元素插入到Report Designer中,然后從插入菜單中選擇一個(gè)項(xiàng)目。或者在Palette視圖中使用palette。Report Designer底部的標(biāo)簽允許您切換視圖。

          Report Designer

          首先報(bào)表使用palette來添加表格元素。然后,從報(bào)表的數(shù)據(jù)表的列集合元素中綁定列。對(duì)于理解表功能是很重要的:

          • 表遍歷所有數(shù)據(jù)行的數(shù)據(jù)集。
          • 它使您能夠在一個(gè)行和列的格式中很容易地布局?jǐn)?shù)據(jù)。

          (1)打開Palette來查看報(bào)表元素。

          Palette視圖

          (2)從palette中拖出一個(gè)表元素,并將其放在編輯器的報(bào)表中。

          (3)指定3列、1行,然后單擊下一步。

          創(chuàng)建新表

          (4)從數(shù)據(jù)集的下拉列表中選擇Customers,點(diǎn)擊全選,然后單擊Finish。表的3列、1行會(huì)出現(xiàn)在編輯器中。

          綁定數(shù)據(jù)集

          (5)在數(shù)據(jù)資源管理器中,展開Customers數(shù)據(jù)集,查看您在查詢中指定的列。

          (6)從數(shù)據(jù)資源瀏覽器中拖動(dòng)CUSTOMERNAME列,并將其放置在詳細(xì)行的第一個(gè)單元格來綁定表格列的數(shù)據(jù)集元素。

          表格中的詳細(xì)行定義了數(shù)據(jù)集的列和它們表格中每一個(gè)數(shù)據(jù)行的顯示順序。在已完成的報(bào)表中,詳細(xì)列的每一行數(shù)據(jù)都會(huì)在數(shù)據(jù)集中被重復(fù)。

          拖動(dòng)一個(gè)數(shù)據(jù)集列并放到表格單元格中

          當(dāng)CUSTOMERNAME列表從數(shù)據(jù)集被拖放到詳細(xì)行時(shí),在布局編輯器中加入[CUSTOMERNAME]數(shù)據(jù)綁定元素。此外標(biāo)題行在新的[CUSTOMERNAME]數(shù)據(jù)元素上面,布局編輯器添加列標(biāo)題標(biāo)簽,例如CUSTOMERNAME。

          在表中的數(shù)據(jù)和標(biāo)簽要素

          (7)拖放PHONE列在詳細(xì)行的第二個(gè)單元格中。

          (8)拖放CONTACTFIRSTNAME列在詳細(xì)行的第三個(gè)單元格中。

          (9)拖放CONTACTLASTNAME列在詳細(xì)行的第三個(gè)單元格中,下面是CONTACTFIRSTNAME。

          該報(bào)表的布局應(yīng)該如下所示。

          將Customer聯(lián)系信息添加到表中

          (10)為了確認(rèn)該報(bào)表的數(shù)據(jù)和表格布局是正確的,在Report Designer底部單擊預(yù)覽選項(xiàng)。

          預(yù)覽報(bào)表數(shù)據(jù)

          本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯


          主站蜘蛛池模板: 亚洲AV成人一区二区三区在线看| 精品国产亚洲一区二区在线观看| 国产一区二区三区免费观在线| 人妻无码第一区二区三区| 爱爱帝国亚洲一区二区三区| 天堂va在线高清一区| 亚洲av无码一区二区乱子伦as| 亚洲一区日韩高清中文字幕亚洲 | 国产精品污WWW一区二区三区| 亚洲熟妇AV一区二区三区宅男| 国产内射999视频一区| 精品成人一区二区三区四区| 秋霞日韩一区二区三区在线观看| 亚洲日本久久一区二区va| 久久久久成人精品一区二区| 国产精品无码一区二区三级 | 国模精品一区二区三区| 日韩精品无码Av一区二区| 国产乱子伦一区二区三区| 日本无卡码免费一区二区三区| 性色av闺蜜一区二区三区| 日韩一区二区三区在线| 日韩国产一区二区| 无码精品人妻一区二区三区影院 | 国产在线视频一区二区三区98| 精品国产一区二区22| 亚洲熟女少妇一区二区| 久久久久一区二区三区| 日韩在线不卡免费视频一区| 色偷偷av一区二区三区| 国产经典一区二区三区蜜芽| 国产微拍精品一区二区| 国产成人久久一区二区三区 | 精品无码一区二区三区爱欲| 色狠狠AV一区二区三区| 亚洲av无码一区二区三区四区 | 亚洲国产老鸭窝一区二区三区 | 精品日韩在线视频一区二区三区| 成人无码一区二区三区| 精品亚洲A∨无码一区二区三区| 亚洲精品伦理熟女国产一区二区|