锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 铏界劧榪樻槸灝忚彍楦燂紝浣嗘棦鐒剁湅榪囦簡璁捐妯″紡錛岃繕鏄笇鏈涜兘鐢ㄨ搗鏉ョ殑銆?/p>
鎯沖仛涓嚜濞辮嚜涔愮殑j2ee鐨勪笢瑗褲?/p>
鍏充簬寰楀埌鏁版嵁搴撹繛鎺ラ儴鍒嗭紝涓寮濮嬭寰楁槸鐢ㄥ伐鍘傛ā寮忥紝鐢ㄥ伐鍘傛ā寮忓緱鍒癈onnection瀵硅薄錛岃瘯浜嗗嚑嬈″ソ鍍忎笉琛屻?/p>
鐒跺悗灝濊瘯鍗曟佹ā寮忥紝鍒涢犱簡涓涓狣atabaseGeneralServices綾伙紝鏉ユ彁渚涙暟鎹簱榪炴帴鍜屽叧闂暟鎹簱絳変竴浜涢氱敤鐨勬湇鍔°?br />
涓鍒囨甯搞傛湁鐐瑰皬鎰熸?zhèn)熷Q屼唬鐮佸涓嬶紝甯屾湜楂樻墜鎸囩偣銆?/p>
package com.ClockWise.ray.persistence; import java.sql.Connection; import javax.naming.InitialContext; public class DatabaseGeneralServices { } JNDI鈥斺擩ava Naming and Directory InterfaceTM 鐩存帴緲昏瘧灝辨槸Java鍛藉悕鍜岀洰褰曟帴鍙o紝瀹炵幇榪欎釜鎺ュ彛錛屾彁渚涚殑鏄竴涓湇鍔★紝榪欐槸涓粈涔堟牱鐨勬湇鍔″憿錛?/p>
棣栧厛鍦ㄨ繛鎺ユ暟鎹簱鐨勬椂鍊欙紙鎴戜嬌鐢ㄧ殑鏄?font face="Times New Roman, serif">mysql鍜?font face="Times New Roman, serif">jboss4.0錛夛紝鎴戜滑浼?xì)鐢ㄥ?font face="Times New Roman, serif">Context榪欎釜綾伙紝context鏄竴濂?font face="Times New Roman, serif">name-to-object鐨勭粦瀹氾紝鍙互鐞嗚В涓哄眰嬈℃垨鐩綍錛屼粬鍙互鍖呮嫭涓嬩竴灞?font face="Times New Roman, serif">subContext銆傚湪浣跨敤鍛藉悕鍜岀洰褰曟湇鍔℃椂鑾峰緱initial context 鏄鏁翠釜鍚嶅瓧絀洪棿鎿嶄綔鐨勫叆鍙c?/p>
閽堝Datasource鑰岃█錛岃鐧戒簡錛屽氨鏄粰浣犵殑鏁版嵁搴撹繛鎺ワ紙娉ㄦ剰錛屾槸鏁版嵁搴撹繛鎺?font face="Times New Roman, serif">Connection榪欎釜瀵硅薄錛屼笉鏄暟鎹簱錛夎搗涓畝鍗曟槗鎳傜殑鍚嶅瓧錛屼綘鍦ㄧ▼搴忎腑鐩存帴璋冪敤榪欎釜鍚嶅瓧錛屽氨寰楀埌榪欎釜榪炴帴鐨勫璞★紝鑰屽叿浣撶殑鐢熸垚鍜岀鐞嗗氨闈犳湇鍔″櫒浜嗐?/p>
閫氬父浼?xì)迮炴垚涓涓?font face="Times New Roman, serif">connection pool錛屽姩鎬佺殑鏉ョ鐞嗚繖浜涘璞′互鑺傜渷璧勬簮銆?/p>
榪欐牱錛屽鏋滈」鐩Щ妞嶅埌鍏跺畠鏁版嵁搴撴垨鑰呮湇鍔″櫒浠涔堢殑錛屽彧瑕侀厤緗湇鍔″櫒灝辮浜嗐傞厤緗瘮濡傝繖涓繛鎺ョ敤浠涔圝DBC椹卞姩鍟婏紝鐢ㄦ埛鍚嶅拰瀵嗙爜鍟婄瓑絳夈傜▼搴忎唬鐮佸彲浠ヤ笉浣滄敼鍔ㄣ傝繖閲岀殑DataSource涓嶄竴瀹氬氨鏄暟鎹簱榪炴帴錛岃繕鍙互鏄叾瀹冩瘮濡傛枃浠惰繛鎺ョ瓑絳夈?/p>
鍏跺疄EJB閮芥槸闈?font face="Times New Roman, serif">JNDI寰楀埌EJB object鐨?font face="Times New Roman, serif">reference鐨勶紝鍏蜂綋鐨勬満鐞嗘槸涓嶅お浜嗚В錛屼笉榪囧氨鏄偅涓剰鎬濓紝鍒濆鑰呰繖鏍風(fēng)悊瑙e簲璇ュ氨澶熶簡銆?/p>
浠婂ぉ閮侀椃浜嗗崐澶╋紝鍦?font face="Times New Roman, serif">jboss閲岄潰閰嶇疆JNDI DataSource錛屾兂鐪嬬湅濡傛灉澶栭潰鐩存帴鐢ㄦ櫘閫氱殑Java宸ョ▼鑳戒笉鑳借繛鎺ユ暟鎹簱錛岀瓟妗堟槸鍚︺傚悗鏉ユ兂閫氫簡銆傛湇鍔″櫒鎻愪緵JNDI鏈嶅姟鎵浣跨敤鐨勭被錛岃繖涓櫘閫氱殑宸ョ▼鍙堜笉鐭ラ亾鍦ㄥ摢錛屽綋鐒舵悶涓嶈搗鏉ャ傝?font face="Times New Roman, serif">Web宸ョ▼鍜?font face="Times New Roman, serif">EJB宸ョ▼鍥犱負(fù)鍙戝竷鍒版湇鍔″櫒涓嬮潰鐨勭洰褰曠殑錛屾墍浠ヨ兘浣跨敤JNDI鏈嶅姟銆?/p>
榪欐槸鎴戠殑鐞嗚В錛岃鍚勪綅楂樻墜鎸囩偣銆?/p>
鑷充簬JBoss絳夌瓑鏈嶅姟鍣ㄦ庝箞閰嶇疆錛岀綉涓婃悳涓涓嬶紝鏈夊緢澶氱墰浜烘葷粨鐨勶紝榪欓噷灝變笉閲嶅浜嗐?/p>
鎴戠戶緇噸鏋?br />
]]>
]]>
]]>
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.NamingException;
import javax.sql.DataSource;
private DataSource ds;
private InitialContext ic;
private static DatabaseGeneralServices dgs = new DatabaseGeneralServices();
private DatabaseGeneralServices()//use singleton pattern, so the constructor is private
{
try{
ic = new InitialContext ();
ds = (DataSource)ic.lookup("java:jdbc/readshare");//get database connection
}catch(NamingException e){
e.printStackTrace();
}
}
public Connection getConnection(){
try{
return ds.getConnection();
}catch(SQLException e){
e.printStackTrace();
}
return null;
}
public void closeConnection(ResultSet rs,PreparedStatement ps,Connection conn){
try{
if(rs!=null){
rs.close();
}
if(ps!=null){
ps.close();
}
if(conn!=null){
conn.close();
}
}catch(SQLException e ){
e.printStackTrace();
}
}
public static DatabaseGeneralServices getInstance()//get the sigleton instance
{
if(null==dgs){dgs= new DatabaseGeneralServices();}
return dgs;
}
]]>
]]>
public class ServletClass extends HttpServlet {
public void doGet(HttpServletRequest request, HttpSevletResponse response)
throws ServletException,IOException{
//Use “request” to read incoming HTTP headers
//Use “response” to specify the HTTP response status
//use “out” to send content to browser
PrintWriter out = response.getWriter();
}
}
濡傛灉甯屾湜servlet瀵?/font>GET鍜?/font>POST璇鋒眰閲囩敤鍚屾牱鐨勮鍔紝鍙渶瑕佽doGet璋冪敤doPost錛屽弽涔嬩害鐒躲?/font>
鍊煎緱娉ㄦ剰鐨勬槸doGet鍜?/font>doPost閮借鎺ユ敹浠ヤ笂涓ょ綾誨瀷鐨勫弬鏁般?/font>
servlet 澶勭悊琛ㄥ崟鏁版嵁
琛ㄥ崟鏁版嵁
錛?/span>1錛変嬌鐢?/span>FORM鏉ュ垱寤?/span>HTML琛ㄥ崟
<FORM ACTION="..."> 鍏朵腑 "..."鎸囩殑灝辨槸澶勭悊琛ㄥ崟鐨?/span>servlet 鎴栬?/span>JSP
錛?/span>2錛変嬌鐢ㄨ緭鍏ュ厓绱犳敹闆嗙敤鎴鋒暟鎹?/span>
<INPUT TYPE="TEXT" NAME="...">
錛?/span>3錛夊湪鎺ヨ繎琛ㄥ崟鐨勫熬閮ㄦ斁緗彁浜ゆ寜閽?/span>
<INPUT TYPE="SUBMIT">
璇誨彇琛ㄥ崟鏁版嵁
鏈変笁縐嶆儏鍐碉細(xì)鈶?/span>request.getParameter鈶equest.getParameterValues
鈶?/font>request.getParameterNames
getParameter瀵瑰簲浜庡崟涓肩殑璇誨彇錛屽鏋滄湁榪欎釜鍙傛暟浣嗘病鍊鹼紝閭e氨榪斿洖絀虹殑String錛涘鏋滄病鏈夎繖涓弬鏁幫紝鍒欒繑鍥?/span>null
getParameterValues瀵瑰簲浜庡悓涓涓弬鏁扮殑澶氫釜鍊鹼紝榪斿洖鐨勬槸涓涓暟緇勶紝鏄繖涓弬鏁板肩殑闆嗗悎銆傚鏋滀笉瀛樺湪榪欎釜鍙傛暟鍚嶏紝閭e氨榪斿洖涓涓?/span>null錛涘鏋滆繖涓弬鏁板彧鏈変竴涓鹼紝閭e氨榪斿洖涓涓彧鏈変竴涓厓绱犵殑鏁扮粍銆?/span>
getParameterValues榪斿洖鐨勬槸鎵鏈夊弬鏁扮殑涓涓?/span>Enumeration錛屽鏋滄病鏈夊弬鏁幫紝閭h繑鍥炵殑灝辨槸涓涓┖鐨?/span>Enumeration鑰屼笉鏄?/span>null銆傚悓鏃惰繖涓?/span>Enumeration涓殑嬈″簭鏄貢搴忕殑銆?/span>
瑕佸鍙傛暟涓?/span>null鎴栬呬負(fù)絀?/span>String鐨勬儏鍐典綔鍑虹浉搴旂殑澶勭悊
if((param==null)||(param.trim().equals(""))){...}
RequestDispatcher
涓嬮潰鐨勪唬鐮侊細(xì)
RequestDispatcher dispatcher = request.getRequestDispathcer s(address);
dispatcher.forward (request,response);
JSP
JSP鐩存帴鎻掑叆琛ㄨ揪寮?/strong>
<%= Java Expression%> 姣斿錛?/span><%= new java.util.Date() %>
鍏跺疄錛?/span>JSP鍦ㄥ悗鍙伴兘琚漿鍖栨垚servlet錛屾墍浠?/span>servlet 鍜?JSP娌℃湁鏈川鐨勫尯鍒?/span>
scriptlet
璇寸櫧浜嗭紝灝辨槸鐩存帴鍦?/span>JSP欏甸潰涓彃鍏?/span>java浠g爜錛屾垜涓嶆槸寰堝枩嬈紝澶貢浜嗐備婦涓緥瀛愶細(xì)
<% if(Math.random()<0.5) {%>
<H1>Have a <I>nice</I> day!</H1>
<% } else {%>
<H1>Have a <I>lousy</I>day!</H1>
<% } %>
JSP page鎸囦護
import 灞炴?/span>
<%@ import = "package.class"%>
<%@ import = "package.class1,package.class2...package.classN"%>
contentType鍜?/span>pageEncoding灞炴?/span>
<%@ page contentType = "someMimeType; charset = someCharacterSet"%>
姣斿<%@ page contentType = "application/vnd.ms-excel"%>
pageEncoding鎸囩殑鏄瓧絎﹂泦
姣斿璁劇疆鎴愭棩璇細(xì)<%@ page pageEncoding="Shift_JIS"%>
session灞炴?/span>
鎺у埗欏甸潰鏄惁鍙傚姞HTTP浼?xì)璇?/span>
<%@ page session = "true"%>
isELIgnored灞炴?/span>
鏄惁蹇界暐JSP2.0琛ㄨ揪寮忚璦
<%@ page isELIgnored = "ture"%>
姝ゅ榪樻湁buffer銆?/span>autoFlush銆?/span>errorPage銆?/span>isErrorPage銆?/span>isThreadSafe銆?/span>extends銆?/span>language灞炴?/span>
鍦?/span>JSP涓嬌鐢?/span>JavaBean
鍩烘湰瑕佹帉鎻′笁涓鍙?/font>
<jsp: useBean id="beanName" class="package.class"/>
<jsp:getProperty name = "beanName" property="propertyName"/>
<jsp:setProperty name ="beanName" property="propertyName" value="propertyValue"/>