วันเสาร์ที่ 25 กรกฎาคม พ.ศ. 2558

JasperReport and iReport part 4-1



สวัสดีชาวโลก กับ PDF Online ด้วย Servlet

>> รักหนอรักทำไมเจ็บปวดอย่างนี้ คนหนอคนเหตุใดทำร้ายหัวใจกัน ชีวิตคือการเรียนรู้และรู้จักตัวเอง เจ็บปวดใช่ไหม ยืนขึ้นแล้วบอกกับตัวเราเองว่า ฉันจะต้องผ่านมันไปให้ได้!

>> คุยไว้ part ก่อนจะออก PDF ด้วย NetBeans โดยเทคโนยี HTML & Servlet ก็มาลองกันสักตั้งเป็นไร มี NetBeans แล้วใช่ไหมครับ ในช่อง categories เลือก Java Web แล้วช่องทางขวา Project เราก็เลือก Web Application นะคนดี ตั้งชื่อโปรเจ็กต์ของเราว่า Report3 และกำหนด Project Location ไปที่
D:\Workspace\Report\jasperreports\myreports

>> คืออย่างที่บอก เราจะรวมๆโปรเจ็กต์รายงานนี้ไว้ด้วยกัน ตั้งเป็น report3, report4, report5 ไปเรื่อยๆจนกว่าจะเบื่อ อ้อ อย่าเพิ่งกดปุ่ม Finish ล่ะ ในหน้าต่าง New Web Application นี้ ส่วนของ Server and Setting ผมเลือกเป็น
server: GlassFish Server 4.0
Java EE Version: Java EE 7 Web
สุดท้ายของหน้านี้คือ context Path: /Report3

>> หากกด Next ไปอีกก็จะเจอส่วน Frameworks ตรงนี้ไม่ต้องเลือกอะไรนะครับ กด Finish เสร็จการสร้างโปรเจ็กต์ไปได้เลย

>> ลองรันโปรเจ็กต์ก่อนเป็นไง คลิกขวาที่รูปลูกโลกสีฟ้า เลือก Run ดูสิว่าหน้าเว็บขึ้นหรือเปล่า มันต้องเขียนว่า TODO write content

>> หน้านี้เกิดขึ้นได้อย่างไร? ใจเย็นๆนะถ้าเราเป็นมือใหม่ ของอาจดูเยอะแยะ (ก็เยอะจริงๆแหละ เข้าใจ) ตามๆไปก่อนนะครับคนดี หาไฟล์ที่ชื่อ index.html ซึ่งอยู่ภายใต้ folder ชื่อ Web Pages โดยปกติสร้างโปรเจ็กต์ครั้งแรกมันก็เปิดขึ้นมาให้เลย

>> เขียน HTML เป็นใช่ไหม เขียน form ใส่ให้ผมหน่อย ขอปุ่มชนิด submit ให้ผมแค่ปุ่มเดียวเท่านั้น ดังในรูปนะถ้าไม่แน่ใจ ปุ่มนี้เมื่อกดแล้วมันจะไปเรียก servlet ให้เรา โดยฝาก action ไว้กับ form ดังนี้ครับ
action="ReportServlet"

>> มองไปที่ Web Pages อีกครั้งนะครับ จะเห็นว่ามีอีก folder ชื่อ WEB-INF ถูกสร้างไว้คอยท่าแล้ว เราต้องสร้างหัวใจให้โปรเจ็กต์นี้ก่อน ด้วย web.xml เพื่อบอกเล่าเรื่องราวว่าโปรเจ็กต์ของเรามี servlet เก็บไว้ที่ไหนอย่างไรล่ะ

>> คลิกขวาสร้างไฟล์ web.xml ภายใต้ folder ชื่อ WEB-INF หากไม่เจอให้เลือก New > Other... จะปรากฏหน้าต่าง New File มองหาช่อง Filter แล้วพิมพ์ลงไปว่า xml เราก็จะเห็นช่อง Categories ผุดออกมา เลือก Web แล้วเลือก File Type เป็น Standard Deployment... มันจะให้ชื่อมาเลยว่า web.xml คลิก Next และ Finish นะคนดี

>> มองหา Source Packages ที่ภายใต้มันจะเขียนว่า default packages คลิกขวา New > Servlet... โดยพิมพ์เข้าไปเลยตามนี้เลยในช่อง Class Name ว่า
com.sample.ReportServlet
จากนั้นกด Next จะพบกับหน้าต่าง Configure Servlet Deployment ให้คลิกเลือก Add information to deployment descriptor ด้วยนะ มันจะได้ร่างส่วนติดต่อ servlet ให้ ไม่อย่างนั้นเราคงต้องไปเขียนกันเอง รายละเอียดอื่นในหน้านี้ของผมได้แก่
Class Name: com.sample.ReportServlet
Servlet Name: ReportServlet
URL Pattern(s): /ReportServlet
เหมือนกันใช่ไหมล่ะ โอเคเยี่ยมมาก กดปุ่ม Finish เลยครับ

>> อยากรู้ว่ามันเขียนอะไรให้ในไฟล์ web.xml ก็ไปเปิดดูสิ มีอยู่สองส่วนที่สำคัญ ได้แก่
1) servlet
2) servlet-mapping
- สองส่วนข้างต้นต้องรู้จักกัน มันจึงใช้ชื่อ servlet-name เดียวกันถูกไหมล่ะ
ReportServlet
- servlet-class บอกว่าคลาส servlet อยู่ ณ แห่งใด
com.sample.ReportServlet
- url-pattern นั่นบอกว่าจะเรียกคลาส servlet ที่ชื่อ ReportServlet ดังกล่าวได้อย่างไร ก็ตาม action ที่เรากำหนดไว้ครับ
/ReportServlet
(ใส่ / นั่นหมายถึงจาก root ของโปรเจ็กต์เรา หรือก็คือ Report3/ReportServlet)

>> ทดลองก่อนว่าเรียก servlet ตัวนี้ผ่านไหม คลิกขวาที่ลูกโลกสีฟ้า ทำตามขั้นตอนนี้ ให้แน่ใจว่าโปรเจ็กต์ของเราบนเซิร์ฟเวอร์ได้รับการเปลี่ยนแปลงที่เกิดขึ้น
- Clean and Build (เกี่ยวกับ .jar และ .war)
- Deploy (start server ถ้ามันยังไม่ตื่น วาง .war ลงไป)
- Run (เรียกหน้าแรกให้ปรากฏตามที่กำหนดใน web.xml)

>> ตัดจบก่อนดีกว่า ขอแยกเป็น part 4-1, 4-2 และ 4-3 ยาวเกินไปขั้นตอนก็เยอะ เอาเป็นว่า ณ part นี้เราเรียก servlet ด้วยการกดปุ่มได้แล้ว ยืนยันตามรูปครับ

ไม่มีความคิดเห็น:

แสดงความคิดเห็น