锘??xml version="1.0" encoding="utf-8" standalone="yes"?>web.xml
<filter>
<filter-name>AuthorizationFilter</filter-name>
<filter-class>com.cenin.util.filter.AuthorizationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthorizationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
AuthorizationFilter.java
public class AuthorizationFilter implements Filter
{
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException
{
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();
String servletPath = request.getServletPath();//鑾峰緱濡傦細 /baseinfo/codeBillTypeList.action
Object user = session.getAttribute(Config.getConfig().getSessionUser());
//鍒ゆ柇鏉冮檺
boolean passed = true;
/*if(user == null && (servletPath.indexOf("action")>=0 )){
passed = false;
String[] noLimit = Config.getConfig().getNoFilter().split(";");
for(int i=0;i<noLimit.length;i++){
if(servletPath.matches(noLimit[i])){
System.out.println(servletPath + " " + noLimit[i]);
passed = true;
break;
}
}
}*/
request.getRequestDispatcher(servletPath).forward(request, response);//鎺у埗struts or xwork璺寵漿
// if(passed)
// chain.doFilter(request, response);
// else
// {
// String modelType = request.getParameter("model.bmoduleType");
// String particalUrl = request.getParameter("particalUrl");
// session.setAttribute("model.bmoduleType", modelType);
// session.setAttribute("particalUrl", particalUrl);
// String url = Config.getConfig().getPageLogin();
// RequestDispatcher dispatcher = request.getRequestDispatcher(url);
// dispatcher.forward(request, response);
// }
}
public void init(FilterConfig filterConfig) throws ServletException
{
}
public void destroy()
{
}
}
xwork.xml娣誨姞
<include file="xwork-onlinehall.xml"/>
xwork-onlinehall.xml鏂囦歡鍐呭錛?br />
<package name="onlinehall" extends="cenin" namespace="/onlinehall" externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver">
<action name="myOrderLoadList" class="com.cenin.web.action.onlinehall.MyOrderAction" method="myOrderLoadList">
<result name="success" type="freemarker">/onlinehall/myOrder.ftl</result>
</action>
</package>
MyOrder.java鍐呭
public class MyOrderAction extends BaseActionSupport {
public String myOrderLoadList() throws Exception {
}
}
]]>public List xmlElements(String xmlDoc) {
//鍒涘緩涓涓柊鐨勫瓧絎︿覆
StringReader read = new StringReader(xmlDoc);
//鍒涘緩鏂扮殑杈撳叆婧怱AX 瑙f瀽鍣ㄥ皢浣跨敤 InputSource 瀵硅薄鏉ョ‘瀹氬浣曡鍙?nbsp;XML 杈撳叆
InputSource source = new InputSource(read);
//鍒涘緩涓涓柊鐨凷AXBuilder
SAXBuilder sb = new SAXBuilder();
List list = new ArrayList();
try {
//閫氳繃杈撳叆婧愭瀯閫犱竴涓狣ocument
Document doc = sb.build(source);
//鍙栫殑鏍瑰厓绱?/span>
Element root = doc.getRootElement();
System.out.println(root.getName());//杈撳嚭鏍瑰厓绱犵殑鍚嶇О錛堟祴璇曪級
//寰楀埌鏍瑰厓绱犳墍鏈夊瓙鍏冪礌鐨勯泦鍚?/span>
List jiedian = root.getChildren();
//鑾峰緱XML涓殑鍛藉悕絀洪棿錛圶ML涓湭瀹氫箟鍙笉鍐欙級
Namespace ns = root.getNamespace();
Element et = null;
DataModel dataModel = new DataModel();
Collections c ;
Ctnfee ctnfee = null;
for(int i=0;i<jiedian.size();i++){
et = (Element) jiedian.get(i);//寰幆渚濇寰楀埌瀛愬厓绱?/span>
ctnfee = new Ctnfee();
/**//*
* 鏃犲懡鍚嶇┖闂村畾涔夋椂
* et.getChild("users_id").getText();
* et.getChild("users_address",ns).getText()
*/
/*System.out.println(et.getChild("users_id",ns).getText());
System.out.println(et.getChild("users_address",ns).getText());*/
System.out.println(et.getChild("p_id",ns).getText());
System.out.println(et.getChild("ctnno",ns).getText());
ctnfee.setP_id(et.getChild("p_id",ns).getText());
ctnfee.setCtnno(et.getChild("ctnno",ns).getText());
ctnfee.setFee_type(et.getChild("fee_type",ns).getText());
ctnfee.setStart_time(et.getChild("start_time",ns).getText());
ctnfee.setEnd_time(et.getChild("end_time",ns).getText());
ctnfee.setFee(Double.parseDouble(et.getChild("fee",ns).getText()));
ctnfee.setFee_count(Double.parseDouble(et.getChild("fee_count",ns).getText()));
ctnfee.setCpid(et.getChild("cpid",ns).getText());
ctnfee.setFee_name(et.getChild("fee_name",ns).getText());
ctnfee.setFee_rate_id(Double.parseDouble(et.getChild("fee_rate_id",ns).getText()));
ctnfee.setJffs(et.getChild("jffs",ns).getText());
ctnfee.setIf_hand(et.getChild("if_hand",ns).getText());
ctnfee.setSfid(et.getChild("sfid",ns).getText());
ctnfee.setWt_company(et.getChild("wt_company",ns).getText());
ctnfee.setOpid(et.getChild("opid",ns).getText());
ctnfee.setCy(et.getChild("cy",ns).getText());
ctnfee.setIf_bf(et.getChild("if_bf",ns).getText());
ctnfee.setDays_count(et.getChild("days_count",ns).getText());
ctnfee.setIf_collect(Double.parseDouble(et.getChild("if_collect",ns).getText()));
ctnfee.setIf_dd(et.getChild("if_dd",ns).getText());
ctnfee.setDd_fee_name(et.getChild("dd_fee_name",ns).getText());
ctnfee.setSpec_sign(et.getChild("spec_sign",ns).getText());
list.add(ctnfee);
counttotal = counttotal +Double.parseDouble(et.getChild("fee_count",ns).getText());
}
/**//*
* 濡傝鍙?lt;row>涓嬬殑瀛愬厓绱犵殑鍚嶇О
*/
et = (Element) jiedian.get(0);
List zjiedian = et.getChildren();
for(int j=0;j<zjiedian.size();j++){
Element xet = (Element) zjiedian.get(j);
System.out.println(xet.getName());
}
} catch (JDOMException e) {
// TODO 鑷姩鐢熸垚 catch 鍧?/span>
e.printStackTrace();
} catch (IOException e) {
// TODO 鑷姩鐢熸垚 catch 鍧?/span>
e.printStackTrace();
}
return list;
}
]]>
this.platformEncoding = "GBK";
鑾峰緱鏁版嵁搴撳瓧絎︽椂鍊欓渶瑕佽漿鎹?img src ="http://www.tkk7.com/youngturk/aggbug/398720.html" width = "1" height = "1" />
]]>
import java.io.StringReader;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.Namespace;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;
public class TestXML {
public List xmlElements(String xmlDoc) {
//鍒涘緩涓涓柊鐨勫瓧絎︿覆
StringReader read = new StringReader(xmlDoc);
//鍒涘緩鏂扮殑杈撳叆婧怱AX 瑙f瀽鍣ㄥ皢浣跨敤 InputSource 瀵硅薄鏉ョ‘瀹氬浣曡鍙?XML 杈撳叆
InputSource source = new InputSource(read);
//鍒涘緩涓涓柊鐨凷AXBuilder
SAXBuilder sb = new SAXBuilder();
try {
//閫氳繃杈撳叆婧愭瀯閫犱竴涓狣ocument
Document doc = sb.build(source);
//鍙栫殑鏍瑰厓绱?br /> Element root = doc.getRootElement();
System.out.println(root.getName());//杈撳嚭鏍瑰厓绱犵殑鍚嶇О錛堟祴璇曪級
//寰楀埌鏍瑰厓绱犳墍鏈夊瓙鍏冪礌鐨勯泦鍚?br /> List jiedian = root.getChildren();
//鑾峰緱XML涓殑鍛藉悕絀洪棿錛圶ML涓湭瀹氫箟鍙笉鍐欙級
Namespace ns = root.getNamespace();
Element et = null;
for(int i=0;i<jiedian.size();i++){
et = (Element) jiedian.get(i);//寰幆渚濇寰楀埌瀛愬厓绱?br /> /**//*
* 鏃犲懡鍚嶇┖闂村畾涔夋椂
* et.getChild("users_id").getText();
* et.getChild("users_address",ns).getText()
*/
/*System.out.println(et.getChild("users_id",ns).getText());
System.out.println(et.getChild("users_address",ns).getText());*/
System.out.println(et.getChild("p_id",ns).getText());
System.out.println(et.getChild("ctnno",ns).getText());
}
/**//*
* 濡傝鍙?lt;row>涓嬬殑瀛愬厓绱犵殑鍚嶇О
*/
et = (Element) jiedian.get(0);
List zjiedian = et.getChildren();
for(int j=0;j<zjiedian.size();j++){
Element xet = (Element) zjiedian.get(j);
System.out.println(xet.getName());
}
} catch (JDOMException e) {
// TODO 鑷姩鐢熸垚 catch 鍧?br /> e.printStackTrace();
} catch (IOException e) {
// TODO 鑷姩鐢熸垚 catch 鍧?br /> e.printStackTrace();
}
return null;
}
public static void main(String[] args){
TestXML doc = new TestXML();
String xml = "<?xml version=\"1.0\" encoding=\"gb2312\"?>"+
"<Result xmlns=\" "<row resultcount=\"1\">"+
"<users_id>1001 </users_id>"+
"<users_name>wangwei </users_name>"+
"<users_group>80 </users_group>"+
"<users_address>1001鍙?nbsp; </users_address>"+
"</row>"+
"<row resultcount=\"1\">"+
"<users_id>1002 </users_id>"+
"<users_name>wangwei </users_name>"+
"<users_group>80 </users_group>"+
"<users_address>1002鍙?nbsp; </users_address>"+
"</row>"+
"</Result>";
String xml1 = "<?xml version=\"1.0\" encoding=\"UTF-16LE\" standalone=\"no\"?>" +
"<d_fsgl_fee_count_for_xml>" +
" <d_fsgl_fee_count_for_xml_row>" +
" <p_id>JD1302130002</p_id>" +
" <ctnno>CXDU1499549</ctnno>" +
" <fee_type>鍗?lt;/fee_type>" +
" <start_time>2013-02-09 00:00:00</start_time>" +
" <end_time>2013-02-13 00:00:00</end_time>" +
" <fee>4</fee>" +
" <fee_count>16</fee_count>" +
" <cpid></cpid>" +
" <fee_name>鍫嗗瓨璐?lt;/fee_name>" +
" <fee_rate_id></fee_rate_id>" +
" <jffs>1</jffs>" +
" <if_hand>0</if_hand>" +
" <sfid>FDZT1302180104</sfid>" +
" <wt_company>QT</wt_company>" +
" <opid>928</opid>" +
" <cy>D</cy>" +
" <if_bf></if_bf>" +
" <days_count>4</days_count>" +
" <if_collect>1</if_collect>" +
" <if_dd></if_dd>" +
" <dd_fee_name></dd_fee_name>" +
" <spec_sign>浜旀床浠e灚</spec_sign>" +
" </d_fsgl_fee_count_for_xml_row>" +
" <d_fsgl_fee_count_for_xml_row>" +
" <p_id>JD1302130002</p_id>" +
" <ctnno>CXDU1499549</ctnno>" +
" <fee_type>鍛?lt;/fee_type>" +
" <start_time>2013-02-13 00:00:00</start_time>" +
" <end_time>2013-02-20 00:00:00</end_time>" +
" <fee>4</fee>" +
" <fee_count>32</fee_count>" +
" <cpid></cpid>" +
" <fee_name>鍫嗗瓨璐?lt;/fee_name>" +
" <fee_rate_id>67</fee_rate_id>" +
" <jffs>1</jffs>" +
" <if_hand>0</if_hand>" +
" <sfid>FDZT1302180104</sfid>" +
" <wt_company>QT</wt_company>" +
" <opid>928</opid>" +
" <cy>D</cy>" +
" <if_bf></if_bf>" +
" <days_count>8</days_count>" +
" <if_collect>1</if_collect>" +
" <if_dd></if_dd>" +
" <dd_fee_name></dd_fee_name>" +
" <spec_sign></spec_sign>" +
" </d_fsgl_fee_count_for_xml_row>" +
"</d_fsgl_fee_count_for_xml>";
doc.xmlElements(xml1);
}
}
<script type="text/javascript">
//<![CDATA[
//宓屽叆CDATA孌靛彲浠ラ槻姝笉鍏煎Javacript鐨勬祻瑙堝櫒涓嶄駭鐢熼敊璇俊鎭?br /> //澧炲姞姝e垯琛ㄨ揪寮?span class="Apple-converted-space">
String.prototype.getQueryString = function(name) {
var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"), r;
if (r = this.match(reg)) return unescape(r[2]);
return null;
};
var address = location.search.getQueryString("address"); //閫氳繃琛ㄨ揪寮忚幏寰椾紶閫掑弬鏁?br /> //閽堝涓ょ嫻忚鍣紝鍒嗗埆鑾峰彇xmlDocument瀵硅薄// 璇誨彇XML鏂囦歡
function loadXML(xmlFile) {
var xmlDoc;
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (document.implementation && document.implementation.createDocument) {
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.async = false;
xmlDoc.load(xmlFile);
} else {
alert('鎮ㄧ殑嫻忚鍣ㄤ笉鏀寔璇ョ郴緇熻剼鏈紒');
}
return xmlDoc;
}
//璋冪敤鍦板浘
var map; //鍏ㄥ眬GMap GOOGLE 鍦板浘 API
function load() {
if (GBrowserIsCompatible()) //媯鏌ユ祻瑙堝櫒鍏煎鎬?br /> {
map = new GMap2(document.getElementById("map")); //鍦板浘鍔犳牻鍒癐D涓簃ap鐨凞IV涓?br /> map.addControl(new GSmallMapControl()); //娣誨姞Gcontrol鎺т歡//鏀懼ぇ緙╁皬鐨勯偅涓?br /> map.setCenter(new GLatLng(26.577014, 104.877977), 15); //璁劇疆鍦板浘涓績
//鍒涘緩澶氫釜鍧愭爣鐐癸紙浠嶪NFO.XML鏂囦歡涓鍙栵級
var xmlDoc = loadXML("Info.xml");
var members = xmlDoc.getElementsByTagName("number");
var maxRes = members.length;
for (var i = 0; i <= maxRes; i++) { //XML涓褰曚簡澶氫釜鍧愭爣鐐癸紝瑕佹瘡涓偣閮芥爣璁頒竴涓?br /> var oName = members[i].getElementsByTagName("name");
var oLongitude = members[i].getElementsByTagName("Longitude");
var oLatitude = members[i].getElementsByTagName("Latitude");
var name = oName[0].firstChild.nodeValue
var Longitude = oLongitude[0].firstChild.nodeValue
var Latitude = oLatitude[0].firstChild.nodeValue
var marker = new GMarker(new GLatLng(Longitude, Latitude), { title: name }); //瀵規瘡涓偣娣誨姞鏍囪
marker.openInfoWindowHtml("<div style=line-height:20px;text-align:center;font-size:12px;'><a href=Left.aspx?info=" + name + " target=framLeft>" + name + ",鐐瑰嚮鏌ョ湅淇℃伅</a></div>");
map.addOverlay(marker);
}
}
}
//]]>
</script>
XML鏂囦歡
<?xml version="1.0" encoding="GB2312"?>1銆佷笅杞絧roxool 鍦板潃錛歨ttp://proxool.sourceforge.net
2銆佽В鍘嬬緝proxool-0.9.0RC2.zip錛屾嫹璐漧ib/proxool-0.9.0RC2.jar鍒皐eb-info/lib
鎷瘋礉jdbc椹卞姩鍒皐eb-info/lib
3銆佸湪web-info涓嬪緩绔嬫枃浠訛細proxool.xml
鏂囦歡鍐呭濡備笅錛?br /><?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
<proxool>
<alias>Develop</alias>
<driver-url>jdbc:oracle:thin:@192.168.100.18:1521:RNMS</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="scmlp"/>
<property name="password" value="scmlpscmlp"/>
</driver-properties>
<maximum-connection-count>500</maximum-connection-count>
<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
</proxool>
</something-else-entirely>
4銆佸湪web.xml鏂囦歡鍐呭姞鍏ヤ互涓嬪唴瀹癸細
<servlet>
<servlet-name>proxoolServletConfigurator</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
<init-param>
<param-name>xmlFile</param-name>
<param-value>WEB-INF/proxool.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- proxool鎻愪緵鐨勭鐞嗙洃鎺у伐鍏鳳紝鍙煡鐪嬪綋鍓嶆暟鎹簱榪炴帴鎯呭喌銆傚鏋滆繍琛屼笉鎴愬姛錛岃鍒犻櫎鏈 -->
<servlet>
<servlet-name>Admin</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Admin</servlet-name>
<url-pattern>/admin</url-pattern>
</servlet-mapping>
5銆佸湪璋冪敤鏁版嵁搴撹繛鎺ヤ唬鐮侊細
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
Connection conn = DriverManager.getConnection("proxool.Develop");
6銆佸埄鐢╬roxool鐩戞帶宸ュ叿鏌ョ湅鏁版嵁搴撹繍琛岀姸鎬併傚湴鍧錛?/admin
閰嶇疆浜岋細properties鏂規硶
1錛屼笅杞絧roxool-0.8.3.jar騫舵斁鍒扮浉搴旂殑鐩綍錛岃繖涓簲璇ユ瘮杈冪畝鍗曚簡
2錛屽啓涓涓厤緗枃浠舵斁鍒皐eb-inf鐩綍涓嬶紝閰嶇疆鏂囦歡鍐呭濡備笅錛?
jdbc-0.proxool.alias=bidding
jdbc-0.proxool.driver-url=jjdbc:oracle:thin:@127.0.0.1:1521:dbname
jdbc-0.proxool.driver-class=oracle.jdbc.driver.oracledriver
jdbc-0.user=name
jdbc-0.password=pass
jdbc-0.proxool.maximum-connection-count=200
jdbc-0.proxool.house-keeping-test-sql=select *
3錛屽湪web-inf/web.xml涓坊鍔犲涓嬩唬鐮侊細
<servlet>
<servlet-name>servletconfigurator</servlet-name>
<servlet-lass>org.logicalcobwebs.proxool.configuration.servletconfigurator</servlet-class>
<init-param>
<param-name>propertyfile</param-name>
<param-value>web-inf/proxool.properties</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4錛岄厤緗氨榪欎箞綆鍗曪紝涓嬮潰緇欎綘涓孌墊庝箞寰楀埌涓涓繛鎺ヤ唬鐮侊紝鍏朵粬鐨勫簲璇ュ氨姣旇緝綆鍗曚簡
public connection getconnection() {
try {
conn = drivermanager.getconnection("proxool.bidding");
}catch(sqlexception ex){
ex.printstacktrace();
} finally {
try {
if (conn != null) {
conn.close();
}
} catch (sqlexception e) {
e.printstacktrace();
log("problem closing connection");
}
}
return conn;
}
public void invokeActionHandler(ModelAndView mv , HttpServletRequest request) throws Exception{
String className = mv.getClassName();
String methodName = mv.getMethodName();
//load class
Class controllerClass = cache.loadClass(className);//== Class.forName(className);java鍙嶅皠鏈哄埗錛宩vm鍔犺澆lassName綾?/span>
Class parentControllerClass = cache.loadClass(baseControllerClass);//class org.bluechant.mvc.controller.Controller
//load method鍙傛暟1綾伙紝鍒涘緩涓涓柟娉曚負setRequest鍙傛暟涓篐ttpServletRequest.class鐨勬柟娉曚笌method = clazz.getDeclaredMethod(setRequest, HttpServletRequest.class);涓嶩ttpServletRequest鐨剆etRequest鏂規硶涓鑷寸殑鏂規硶.
Method setRequest = cache.loadMethod(parentControllerClass, "setRequest", new Class[] { HttpServletRequest.class }); //HttpServletRequest.class錛宩ava鐨勫弽灝勬満鍒跺緱鍒拌嚜宸辯殑綾伙紝鑳藉鎷ユ湁鑷繁鐨勬柟娉曞鹼紝錛圡ethod setRequest鑾峰彇鎴愬憳鍑芥暟錛?/span>
Method setModelAndView = cache.loadMethod(parentControllerClass, "setModelAndView", new Class[] { ModelAndView.class });//org.bluechant.mvc.controller.Controller-setModelAndView@6024418 public void org.bluechant.mvc.controller.Controller.setModelAndView(org.bluechant.mvc.controller.ModelAndView)
Method targetMethod = cache.loadMethod(controllerClass, methodName, new Class[]{});
//buiid controller instance and invoke target method浠ヤ笂setRequest錛宻etModelAndView錛宼argetMethod閮芥斁鍦╟ache錛坔ashMap涓級
Object instance = controllerClass.newInstance();//鍔犺澆className綾?font color="#008000">;//姝ゆ柟娉曞紩鍏ユ暟鎹簱榪炴帴
//浠ヤ笂鍒氳繘鍏ラ〉闈㈢殑鏃跺檌nstance璋冪敤涓変釜綾誨垵濮嬪寲錛屽垎鍒槸緇ф壙鍏崇郴DaosupportController 錛宑ontroller錛屽拰BeanFactory
/*--->>>鍏朵腑DaoSupportController綾諱腑protected ObjectDao dao = (ObjectDao)BeanFactory.getBean("objectDao");
--->>>璋冪敤錛歡etBean 鏂規硶public class BeanFactory {
public static ApplicationContext context = new ClassPathXmlApplicationContext("appcontext.xml") ;//姝ゆ柟娉曞紩鍏ユ暟鎹簱榪炴帴
public static Object getBean(String beanId) {
return context.getBean(beanId);
}
}*/
setRequest.invoke(instance, new Object[] { request });//瀵瑰甫鏈夋寚瀹氬弬鏁扮殑鎸囧畾瀵硅薄璋冪敤鐢辨 Method 瀵硅薄琛ㄧず鐨勫熀紜鏂規硶
setModelAndView.invoke(instance, new Object[] { mv });//instance绔嬪嵆涓哄師鍨嬫寚閽?br />
// --->>>鎵ц鎸囧畾鐨則argetMethod鏂規硶瀹炲垯涓篈ccountController鐨刲ogin錛堬級鐧婚檰鏂規硶姝ゆ椂寮濮嬭皟鐢ㄦ暟鎹簱
targetMethod.invoke(instance, new Object[]{});
//璋冪敤instance綾諱腑targetMethod榪欎釜鏂規硶錛孫bject[]{}榪欎釜浣滀負鍙傛暟..
//invoke鏍規嵁瀹炰綋鑾峰緱鏂規硶錛屾坊鍔犳墍瑕侀犵殑鍙傛暟錛屽氨鏄釜鎵懼疄渚嬬殑鏂規硶鍏嬮殕宸ュ巶錛岀敱Method鑾峰緱瀹炰緥妯″瀷錛岀敱鏂規硶閿婚犳牱瀛愶紝浼犲叆鍙傛暟寰楀嚭鎯寵緇撴灉
}
}
棣栧厛浣犺鏄庣櫧鍦╦ava閲岄潰浠諱綍class閮借瑁呰澆鍦ㄨ櫄鎷熸満涓婃墠鑳借繍琛屻傝繖鍙ヨ瘽灝辨槸瑁呰澆綾葷敤鐨?鍜宯ew 涓嶄竴鏍鳳紝瑕佸垎娓呮)銆?nbsp;
鑷充簬浠涔堟椂鍊欑敤錛屼綘鍙互鑰冭檻涓涓嬭繖涓棶棰橈紝緇欎綘涓涓瓧絎︿覆鍙橀噺錛屽畠浠h〃涓涓被鐨勫寘鍚嶅拰綾誨悕錛屼綘鎬庝箞瀹炰緥鍖栧畠錛熷彧鏈変綘鎻愬埌鐨勮繖涓柟娉曚簡錛屼笉榪囪鍐嶅姞涓鐐廣?nbsp;
A a = (A)Class.forName("pacage.A").newInstance();
榪欏拰浣?nbsp;
A a = new A()錛?nbsp;
鏄竴鏍風殑鏁堟灉銆?nbsp;
鍏充簬琛ュ厖鐨勯棶棰?nbsp;
絳旀鏄偗瀹氱殑錛宩vm浼氭墽琛岄潤鎬佷唬鐮佹錛屼綘瑕佽浣忎竴涓蹇碉紝闈欐佷唬鐮佹槸鍜宑lass緇戝畾鐨勶紝class瑁呰澆鎴愬姛灝辮〃紺烘墽琛屼簡浣犵殑闈欐佷唬鐮佷簡銆傝屼笖浠ュ悗涓嶄細鍐嶈蛋榪欐闈欐佷唬鐮佷簡銆?/p>
Class.forName(xxx.xx.xx) 榪斿洖鐨勬槸涓涓被
Class.forName(xxx.xx.xx);鐨勪綔鐢ㄦ槸瑕佹眰JVM鏌ユ壘騫跺姞杞芥寚瀹氱殑綾伙紝涔熷氨鏄JVM浼氭墽琛岃綾葷殑闈欐佷唬鐮佹
鍔ㄦ佸姞杞藉拰鍒涘緩Class 瀵硅薄錛屾瘮濡傛兂鏍規嵁鐢ㄦ埛杈撳叆鐨勫瓧絎︿覆鏉ュ垱寤哄璞?nbsp;
String str = 鐢ㄦ埛杈撳叆鐨勫瓧絎︿覆
Class t = Class.forName(str);
t.newInstance();
鍦ㄥ垵濮嬪寲涓涓被錛岀敓鎴愪竴涓疄渚嬬殑鏃跺欙紝newInstance()鏂規硶鍜宯ew鍏抽敭瀛楅櫎浜嗕竴涓槸鏂規硶錛屼竴涓槸鍏抽敭瀛楀錛屾渶涓昏鏈変粈涔堝尯鍒紵瀹冧滑鐨勫尯鍒湪浜庡垱寤哄璞$殑鏂瑰紡涓嶄竴鏍鳳紝鍓嶈呮槸浣跨敤綾誨姞杞芥満鍒訛紝鍚庤呮槸鍒涘緩涓涓柊綾匯傞偅涔堜負浠涔堜細鏈変袱縐嶅垱寤哄璞℃柟寮忥紵榪欎富瑕佽冭檻鍒拌蔣浠剁殑鍙幾緙┿佸彲鎵╁睍鍜屽彲閲嶇敤絳夎蔣浠惰璁℃濇兂銆?nbsp;
Java涓伐鍘傛ā寮忕粡甯鎬嬌鐢╪ewInstance()鏂規硶鏉ュ垱寤哄璞★紝鍥犳浠庝負浠涔堣浣跨敤宸ュ巶妯″紡涓婂彲浠ユ壘鍒板叿浣撶瓟妗堛?nbsp;渚嬪錛?nbsp;
class c = Class.forName(“Example”);
factory = (ExampleInterface)c.newInstance();
鍏朵腑ExampleInterface鏄疎xample鐨勬帴鍙o紝鍙互鍐欐垚濡備笅褰㈠紡錛?nbsp;
String className = "Example";
class c = Class.forName(className);
factory = (ExampleInterface)c.newInstance();
榪涗竴姝ュ彲浠ュ啓鎴愬涓嬪艦寮忥細
String className = readfromXMlConfig;//浠巟ml 閰嶇疆鏂囦歡涓幏寰楀瓧絎︿覆
class c = Class.forName(className);
factory = (ExampleInterface)c.newInstance();
涓婇潰浠g爜宸茬粡涓嶅瓨鍦‥xample鐨勭被鍚嶇О錛屽畠鐨勪紭鐐規槸錛屾棤璁篍xample綾繪庝箞鍙樺寲錛屼笂榪頒唬鐮佷笉鍙橈紝鐢氳嚦鍙互鏇存崲Example鐨勫厔寮熺被Example2 , Example3 , Example4……錛屽彧瑕佷粬浠戶鎵縀xampleInterface灝卞彲浠ャ?nbsp;
浠嶫VM鐨勮搴︾湅錛屾垜浠嬌鐢ㄥ叧閿瓧new鍒涘緩涓涓被鐨勬椂鍊欙紝榪欎釜綾誨彲浠ユ病鏈夎鍔犺澆銆備絾鏄嬌鐢╪ewInstance()鏂規硶鐨勬椂鍊欙紝灝卞繀欏諱繚璇侊細1銆佽繖涓被宸茬粡鍔犺澆錛?銆佽繖涓被宸茬粡榪炴帴浜嗐傝屽畬鎴愪笂闈袱涓楠ょ殑姝f槸Class鐨勯潤鎬佹柟娉昮orName()鎵瀹屾垚鐨勶紝榪欎釜闈欐佹柟娉曡皟鐢ㄤ簡鍚姩綾誨姞杞藉櫒錛屽嵆鍔犺澆 java API鐨勯偅涓姞杞藉櫒銆?nbsp;
鐜板湪鍙互鐪嬪嚭錛宯ewInstance()瀹為檯涓婃槸鎶妌ew榪欎釜鏂瑰紡鍒嗚В涓轟袱姝ワ紝鍗抽鍏堣皟鐢–lass鍔犺澆鏂規硶鍔犺澆鏌愪釜綾伙紝鐒跺悗瀹炰緥鍖栥?nbsp;榪欐牱鍒嗘鐨勫ソ澶勬槸鏄捐屾槗瑙佺殑銆傛垜浠彲浠ュ湪璋冪敤class鐨勯潤鎬佸姞杞芥柟娉昮orName鏃惰幏寰楁洿濂界殑鐏墊椿鎬э紝鎻愪緵緇欎簡涓縐嶉檷鑰︾殑鎵嬫銆?nbsp;
鏈鍚庣敤鏈綆鍗曠殑鎻忚堪鏉ュ尯鍒唍ew鍏抽敭瀛楀拰newInstance()鏂規硶鐨勫尯鍒細
newInstance: 寮辯被鍨嬨備綆鏁堢巼銆傚彧鑳借皟鐢ㄦ棤鍙傛瀯閫犮?nbsp;
new: 寮虹被鍨嬨傜浉瀵歸珮鏁堛傝兘璋冪敤浠諱綍public鏋勯犮?/p>
<servlet-mapping> |
Servlet 2.5瑙勮寖鍏佽<servlet-mapping>鐨?lt;url-pattern>瀛愬厓绱犲嚭鐜板嬈★紝涔嬪墠鐨勮鑼冨彧鍏佽涓涓?lt;servlet-mapping>鍏冪礌鍖呭惈涓涓?lt;url-pattern>瀛愬厓绱犮傛垜浠湅涓嬮潰鐨勪緥瀛愶細
<servlet-mapping> |
鍦ㄩ厤緗簡Servlet涓嶶RL鏍峰紡涔嬮棿鐨勬槧灝勫悗錛屽綋Servlet瀹瑰櫒鎺ユ敹鍒頒竴涓姹傦紝瀹冮鍏堢‘瀹氳璇鋒眰搴旇鐢卞摢涓涓猈eb搴旂敤紼嬪簭鏉ュ搷搴斻傝繖鏄氳繃姣旇緝璇鋒眰URI鐨勫紑濮嬮儴鍒嗕笌Web搴旂敤紼嬪簭鐨勪笂涓嬫枃璺緞鏉ョ‘瀹氱殑銆傛槧灝勫埌Servlet鐨勮礬寰勬槸璇鋒眰URI鍑忓幓涓婁笅鏂囩殑璺緞錛學eb搴旂敤紼嬪簭鐨凜ontext瀵硅薄鍦ㄥ幓鎺夎姹俇RI鐨勪笂涓嬫枃璺緞鍚庯紝灝嗘寜鐓т笅闈㈢殑璺緞鏄犲皠瑙勫垯鐨勯『搴忓鍓╀綑閮ㄥ垎鐨勮礬寰勮繘琛屽鐞嗭紝騫朵笖鍦ㄦ壘鍒扮涓涓垚鍔熺殑鍖歸厤鍚庯紝涓嶅啀榪涜涓嬩竴涓尮閰嶃?/font>
瀹瑰櫒璇曠潃瀵硅姹傜殑璺緞鍜孲ervlet鏄犲皠鐨勮礬寰勮繘琛岀簿紜尮閰嶏紝濡傛灉鍖歸厤鎴愬姛錛屽垯璋冪敤榪欎釜Servlet鏉ュ鐞嗚姹傘?/strong>
瀹瑰櫒璇曠潃鍖歸厤鏈闀跨殑璺緞鍓嶇紑錛屼互鏂滄潬錛?錛変負璺緞鍒嗛殧絎︼紝鎸夌収璺緞鏍戦愮駭閫掑噺鍖歸厤錛岄夋嫨鏈闀垮尮閰嶇殑Servlet鏉ュ鐞嗚姹傘?/strong>
濡傛灉璇鋒眰鐨刄RL璺緞鏈鍚庢湁鎵╁睍鍚嶏紝濡?jsp錛孲ervlet瀹瑰櫒浼氳瘯鐫鍖歸厤澶勭悊榪欎釜鎵╁睍鍚嶇殑Servlet銆?/strong>
濡傛灉鎸夌収鍓嶉潰3鏉¤鍒欐病鏈夋壘鍒板尮閰嶇殑Servlet錛屽鍣ㄤ細璋冪敤Web搴旂敤紼嬪簭榛樿鐨凷ervlet鏉ュ璇鋒眰榪涜澶勭悊錛屽鏋滄病鏈夊畾涔夐粯璁ょ殑Servlet錛屽鍣ㄥ皢鍚戝鎴風鍙戦丠TTP 404閿欒淇℃伅錛堣姹傝祫婧愪笉瀛樺湪錛夈?/font>
鍦ㄩ儴緗叉弿榪扮涓紝鍙互浣跨敤涓嬮潰鐨勮娉曟潵瀹氫箟鏄犲皠銆?/p>
浠?寮濮嬪茍涓斾互 /* 緇撴潫鐨勫瓧絎︿覆鐢ㄦ潵鏄犲皠璺緞錛屼緥濡傦細
<url-pattern>/admin/*</url-pattern> |
濡傛灉娌℃湁綺劇‘鍖歸厤錛岄偅涔堝/admin/璺緞涓嬬殑璧勬簮鐨勬墍鏈夎姹傚皢鐢辨槧灝勪簡涓婅堪URL鏍峰紡鐨凷ervlet鏉ュ鐞嗐?/font>
浠?*. 涓哄墠緙鐨勫瓧絎︿覆鐢ㄦ潵鏄犲皠鎵╁睍鍚嶏紝渚嬪錛?/strong>
<url-pattern>*.do</url-pattern> |
濡傛灉娌℃湁綺劇‘鍖歸厤鍜岃礬寰勫尮閰嶏紝閭d箞瀵瑰叿鏈?do鎵╁睍鍚嶇殑璧勬簮鐨勮姹傚皢鐢辨槧灝勪簡涓婅堪URL鏍峰紡鐨凷ervlet鏉ュ鐞嗐?/font>
浠ヤ竴涓崟鐙殑/鎸囩ず榪欎釜Web搴旂敤紼嬪簭鏄粯璁ょ殑Servlet錛屼緥濡傦細
<url-pattern>/</url-pattern> |
濡傛灉瀵規煇涓姹傛病鏈夋壘鍒板尮閰嶇殑Servlet錛岄偅涔堝皢浣跨敤Web搴旂敤紼嬪簭鐨勯粯璁ervlet鏉ュ鐞嗐?/font>
鎵鏈夊叾浠栫殑瀛楃琚敤浜庣簿紜尮閰嶏紝渚嬪錛?/font>
<url-pattern>/login</url-pattern> |
濡傛灉璇鋒眰/login錛岄偅涔堝皢鐢辨槧灝勪簡URL鏍峰紡/login鐨凷ervlet鏉ュ鐞嗐?/strong>
web.xml瀵瑰簲鐨剆ervlet鎺у埗java鏀瑰啓錛?/span>
smvc-config.xml鏂囦歡: