เจเอสพี (JSP = Java Server Page)
ภาษาเจเอสพี (JSP = Java Server Pages) คือ ภาษาสคริปต์ที่ทำงานบนเครื่องบริการ เช่นเดียวกับภาษา perl, php หรือ asp มีโครงสร้างภาษาแบบจาวา หรือภาษาซี โดยมีตัวแปลภาษาที่ถูกพัฒนาโดยบริษัทซันไมโครซิสเต็ม ซึ่งเป็นเทคโนโลยีของจาวา สำหรับสร้างรหัสเอชทีเอ็มแอล (HTML) หรือตามที่ผู้ใช้ร้องขอ มีตัวแปลภาษาคือ Tomcat Apache และ Java Compiler เริ่มพัฒนา ค.ศ.2000 โดย James Duncan Davidson ตัวแปลภาษาจะสร้างเซิร์ฟเร็ท (Servlet) และเปลี่ยนเป็นไบท์โค้ด (Byte Code) สำหรับถูกเรียกใช้ครั้งต่อไปจาก JSP Source Code
1 องค์ประกอบของ JSP
ภาษาเจเอสพี ไม่มีองค์ประกอบที่ซับซ้อนอย่างภาษาจาวา หรือการเขียนแบบ Servlet แต่การเขียนจะคล้ายกับภาษาสคริปต์อย่าง ภาษา PHP หรือ ASP โดยมุ่งสร้างรหัสภาษา HTML เพื่อแสดงผลในโปรแกรมประเภทบราวเซอร์ เช่น อินเทอร์เน็ตเอ็กโพเลอร์ (Internet Explorer) หรือไฟร์ฟอกซ์ (FireFox)
การเขียนแบบที่ 1 มีเพียงภาษา HTML
<body>
hello
</body>
การเขียนแบบที่ 2 มีภาษา JSP แรกในภาษา HTML
<body><pre>
<%
Random r = new Random();
out.println(r.nextInt(10));
%>
</pre></body>
การเขียนแบบที่ 3 มีภาษา HTML แรกในภาษา JSP
<%
for (int i=1;i<=10;i++)
{
out.println(i + “<br>”);
}
%>
2 Servlet
Java Servlet คือ ภาษาจาวาที่ผ่านการแปลให้เป็น Servlet จนได้แฟ้ม .class และแก้ไขแฟ้ม web.xml เพื่อให้สามารถเรียกใช้ผ่าน Web Browser การทำงานของ Servlet จะตอบสนองเร็วกว่าภาษา JSP ที่ต้องมีการ Compile เป็น Servlet แล้วถูกโหลดเข้าสู่หน่วยความจำก่อนประมวลผล แล้วตอบสนองให้กับผู้ใช้
การแปลโปรแกรม
DOS> cd c:\Tomcat5\webapps\servlets-examples\WEB-INF\classes
DOS> path=%path%;c:\j2sdk1.4.0_03\bin
DOS> javac -classpath c:\Tomcat5\common\lib\servlet-api.jar hi.java
แก้ไขแฟ้ม web.xml โดยเพิ่มบรรทัดต่อไปนี้
<servlet>
<servlet-name>hi</servlet-name>
<servlet-class>hi</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hi</servlet-name>
<url-pattern>/servlet/hi</url-pattern>
</servlet-mapping>
การประมวลผล
http://localhost:8080/servlets-examples/servlet/hi
ตัวอย่างแฟ้ม hi.java
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class hi extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType(“text/html”);
PrintWriter out = response.getWriter();
out.println(“<html><head>”);
String title = “hello”;
out.println(“<title>” + title + “</title></head>”);
out.println(“<body bgcolor=\”yellow\”>”);
out.println(title);
out.println(“</body></html>”);
}
}
3 JSP
การเขียนภาษา JSP ก็คล้ายกับภาษา PHP และ ASP สามารถเขียนตามหลักการโปรแกรมโครงสร้าง เรียกใช้คลาสที่มีในภาษาจาวาได้ สร้างวัตถุ ทำงานกับกราฟฟิกในแบบ applet หรือเชื่อมต่อฐานข้อมูลแบบได้ มีการนำไปใช้ในระดับองค์กรมากมาย เช่น ตลาดหลักทรัพย์ สำนักงานสถิติแห่งชาติ กรมศุลกากร เป็นต้น
ตัวอย่าง การรับส่งข้อมูลระหว่างฟอร์ม
<body>
<form action=testofif.jsp method=post>
<input name=x><input type=submit></form>
<%
String abc = request.getParameter(“x”);
if (abc == null)
out.println(“welcome”);
else
out.println(abc);
out.println(new java.util.Date());
%>
</body>
การเชื่อมต่อฐานข้อมูล ODBC ก็มีหลักการคล้ายกันโดยเริ่มจาก 1) เชื่อมต่อ connection 2) สร้างบรรทัดคำสั่ง statement 3) ประมวลผลเอสคิวแอล executeQuery 4) อ่านข้อมูลแต่ละระเบียนมาใช้
ตัวอย่าง การเชื่อมต่อกับฐานข้อมูล
<%@ page contentType=”text/html; charset=tis-620″ %>
<%@ page import=”java.sql.*” %>
<body>
<%
Connection connection;
Statement statement;
String sourceURL = “jdbc:odbc:empl”;
Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
connection = DriverManager.getConnection(sourceURL);
statement = connection.createStatement();
String sql = “select * from empl”;
ResultSet myresult = statement.executeQuery(sql);
while (myresult.next()) {
out.println(myresult.getString(“emplname”) + “<br>”);
}
myresult.close();
%>
</body>