关于J2EE

\u5173\u4e8eJ2EE

J2EE Java2\u5e73\u53f0\u4f01\u4e1a\u7248\uff08Java 2 Platform,Enterprise Edition\uff09





J2EE\u662f\u4e00\u5957\u5168\u7136\u4e0d\u540c\u4e8e\u4f20\u7edf\u5e94\u7528\u5f00\u53d1\u7684\u6280\u672f\u67b6\u6784\uff0c\u5305\u542b\u8bb8\u591a\u7ec4\u4ef6\uff0c\u4e3b\u8981\u53ef\u7b80\u5316\u4e14\u89c4\u8303\u5e94\u7528\u7cfb\u7edf\u7684\u5f00\u53d1\u4e0e\u90e8\u7f72\uff0c\u8fdb\u800c\u63d0\u9ad8\u53ef\u79fb\u690d\u6027\u3001\u5b89\u5168\u4e0e\u518d\u7528\u4ef7\u503c\u3002



J2EE\u6838\u5fc3\u662f\u4e00\u7ec4\u6280\u672f\u89c4\u8303\u4e0e\u6307\u5357\uff0c\u5176\u4e2d\u6240\u5305\u542b\u7684\u5404\u7c7b\u7ec4\u4ef6\u3001\u670d\u52a1\u67b6\u6784\u53ca\u6280\u672f\u5c42\u6b21\uff0c\u5747\u6709\u5171\u901a\u7684\u6807\u51c6\u53ca\u89c4\u683c\uff0c\u8ba9\u5404\u79cd\u4f9d\u5faaJ2EE\u67b6\u6784\u7684\u4e0d\u540c\u5e73\u53f0\u4e4b\u95f4\uff0c\u5b58\u5728\u826f\u597d\u7684\u517c\u5bb9\u6027\uff0c\u89e3\u51b3\u8fc7\u53bb\u4f01\u4e1a\u540e\u7aef\u4f7f\u7528\u7684\u4fe1\u606f\u4ea7\u54c1\u5f7c\u6b64\u4e4b\u95f4\u65e0\u6cd5\u517c\u5bb9\uff0c\u5bfc\u81f4\u4f01\u4e1a\u5185\u90e8\u6216\u5916\u90e8\u96be\u4ee5\u4e92\u901a\u7684\u7a98\u5883\u3002



\u5728J2EE\u67b6\u6784\u4e0b\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4f9d\u5faa\u89c4\u8303\u57fa\u7840\uff0c\u8fdb\u800c\u5f00\u53d1\u4f01\u4e1a\u7ea7\u5e94\u7528\uff1b\u800c\u4e0d\u540cJ2EE\u4f9b\u8d27\u5546\uff0c\u540c\u4f1a\u652f\u6301\u4e0d\u540cJ2EE\u7248\u672c\u5185\u6240\u62df\u5b9a\u7684\u6807\u51c6\uff0c\u4ee5\u786e\u4fdd\u4e0d\u540cJ2EE\u5e73\u53f0\u4e0e\u4ea7\u54c1\u4e4b\u95f4\u7684\u517c\u5bb9\u6027\u3002\u6362\u8a00\u4e4b\uff0c\u690d\u57faJ2EE\u67b6\u6784\u7684\u5e94\u7528\u7cfb\u7edf\uff0c\u57fa\u672c\u4e0a\u53ef\u90e8\u7f72\u5728\u4e0d\u540c\u7684\u5e94\u7528\u670d\u52a1\u5668\u4e4b\u4e0a\uff0c\u65e0\u9700\u6216\u8005\u53ea\u987b\u8981\u8fdb\u884c\u5c11\u91cf\u7684\u4ee3\u7801\u4fee\u6539\uff0c\u5373\u80fd\u5927\u5e45\u63d0\u9ad8\u5e94\u7528\u7cfb\u7edf\u7684\u53ef\u79fb\u690d\u6027(Portability)\u3002



J2EE\u4e3b\u7531\u5347\u9633\u4e0eIBM\u7b49\u5382\u5546\u534f\u540c\u4e1a\u754c\u5171\u540c\u62df\u5b9a\u800c\u6210\u7684\u6280\u672f\u89c4\u8303\uff0c\u4ee5\u4f01\u4e1a\u4e0e\u4f01\u4e1a\u4e4b\u95f4\u7684\u8fd0\u7b97\u4e3a\u5bfc\u5411\u7684JAVA\u5f00\u53d1\u73af\u5883\u3002J2EE\u67b6\u6784\u5b9a\u4e49\u5404\u7c7b\u4e0d\u540c\u7ec4\u4ef6\uff0c\u5982Web Component\u3001EJB Component\u2026\u7b49\uff0c\u800c\u5404\u7c7b\u7ec4\u4ef6\u53ef\u4ee5\u518d\u7528(reuse)\uff0c\u8ba9\u5df2\u5f00\u53d1\u5b8c\u6210\u7684\u7ec4\u4ef6\uff0c\u6216\u8005\u662f\u7ecf\u7531\u5e02\u9762\u91c7\u8d2d\u800c\u5f97\u7684\u7ec4\u4ef6\uff0c\u5747\u80fd\u8fdb\u4e00\u6b65\u7ec4\u88c5\u6210\u4e0d\u540c\u7684\u7cfb\u7edf\u3002



\u5bf9\u4e8e\u5f00\u53d1\u4eba\u5458\u800c\u8a00\uff0c\u53ea\u9700\u8981\u4e13\u6ce8\u4e8e\u5404\u79cd\u5e94\u7528\u7cfb\u7edf\u7684\u5546\u4e1a\u903b\u8f91\u4e0e\u67b6\u6784\u8bbe\u8ba1\uff0c\u81f3\u4e8e\u5e95\u5c42\u7e41\u7410\u7684\u7a0b\u5e8f\u64b0\u5199\u5de5\u4f5c\uff0c\u53ef\u642d\u914d\u4e0d\u540c\u7684\u5f00\u53d1\u5e73\u53f0\uff0c\u4ee5\u8ba9\u5e94\u7528\u7cfb\u7edf\u7684\u5f00\u53d1\u4e0e\u90e8\u7f72\u6548\u7387\u5927\u5e45\u63d0\u5347\u3002



J2EE\u7684\u6838\u5fc3\u89c4\u8303\u662f Enterprise Java Beans\uff08EJBs\uff09\u3002EJB\u4f9d\u7167\u7279\u6027\u7684\u4e0d\u540c\uff0c\u76ee\u524d\u5171\u5206\u4e3a\u4e09\u79cd\uff0c\u5206\u522b\u662fSession Bean\u3001Entity Bean\uff0c\u4ee5\u53ca Message Driven Bean \u3002\u5176\u4e2d Session Bean \u4e0eEntity Bean \u7b97\u662fEJB\u7684\u59cb\u7956\uff0c\u8fd9\u4e24\u79cdEJB\u89c4\u683c\u5728EJB 1.x\u7248\u672c\u63a8\u51fa\u65f6\u5c31\u5df2\u7ecf\u5b58\u5728\uff0c\u800cMessage Driven Bean\u5219\u662f\u51fa\u73b0\u5728EJB 2.0\u7684\u89c4\u683c\u4e4b\u4e2d\u3002



\u76ee\u524d\u4e1a\u754c\u8bb8\u591a\u7a0b\u5e8f\u8bbe\u8ba1\u5e08\uff0c\u6216\u8005\u662f\u7f51\u9875\u8bbe\u8ba1\u4eba\u5458\uff0c\u591a\u5229\u7528JSP/Servlet\u7684\u4fbf\u5229\u6027\uff0c\u8fdb\u800c\u5728J2EE\u670d\u52a1\u5668\u4e4b\u4e0a\u5f00\u53d1\u76f8\u5173\u7684\u5e94\u7528\uff0c\u6216\u662f\u6574\u5408\u516c\u53f8\u5185\u90e8\u7684\u5404\u79cd\u8d44\u6e90\u3002



Java 2\u5e73\u53f0\u4f9d\u7167\u5e94\u7528\u9886\u57df\u7684\u4e0d\u540c\uff0c\u5171\u5206\u4e3a\u4e09\u5927\u7248\u672c\uff0c\u5206\u522b\u662fJ2EE\u3001\u6807\u51c6\u7248\u672cJ2SE\uff08Java 2 Platform, Standard Edition\uff09\u3001\u5fae\u578b\u7248\u672cJ2ME\uff08Java 2 Platform, Micro Edition\uff09\uff0c\u4ee5\u53caJava Card\u7b49\u3002


\u90a3\u4e48\u5230\u5e95\u4ec0\u4e48\u662fJ2EE\u5462\uff1f\u4ece\u6574\u4f53\u4e0a\u8bb2\uff0cJ2EE\u662f\u4f7f\u7528Java\u6280\u672f\u5f00\u53d1\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u4e00\u79cd\u4e8b\u5b9e\u4e0a\u7684\u5de5\u4e1a\u6807\u51c6(Sun\u516c\u53f8\u51fa\u4e8e\u5176\u81ea\u8eab\u5229\u76ca\u7684\u8003\u8651\uff0c\u81f3\u4eca\u6ca1\u6709\u5c06Java\u53ca\u5176\u76f8\u5173\u6280\u672f\u7eb3\u5165\u6807\u51c6\u5316\u7ec4\u7ec7\u7684\u4f53\u7cfb)\uff0c\u5b83\u662fJava\u6280\u672f\u4e0d\u65ad\u9002\u5e94\u548c\u4fc3\u8fdb\u4f01\u4e1a\u7ea7\u5e94\u7528\u8fc7\u7a0b\u4e2d\u7684\u4ea7\u7269\u3002\u76ee\u524d\uff0cJava\u5e73\u53f0\u6709\u4e09\u4e2a\u7248\u672c\uff1a\u9002\u7528\u4e8e\u5c0f\u578b\u8bbe\u5907\u548c\u667a\u80fd\u5361\u7684J2ME(Java 2 Platform Micro Edition)\u3001\u9002\u7528\u4e8e\u684c\u9762\u7cfb\u7edf\u7684J2SE\u548c\u9002\u7528\u4e8e\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684J2EE\u3002Sun\u63a8\u51faJ2EE\u7684\u76ee\u7684\u662f\u4e3a\u4e86\u514b\u670d\u4f20\u7edfClient/Server\u6a21\u5f0f\u7684\u5f0a\u75c5\uff0c\u8fce\u5408Browser/Server\u67b6\u6784\u7684\u6f6e\u6d41\uff0c\u4e3a\u5e94\u7528Java\u6280\u672f\u5f00\u53d1\u670d\u52a1\u5668\u7aef\u5e94\u7528\u63d0\u4f9b\u4e00\u4e2a\u5e73\u53f0\u72ec\u7acb\u7684\u3001\u53ef\u79fb\u690d\u7684\u3001\u591a\u7528\u6237\u7684\u3001\u5b89\u5168\u7684\u548c\u57fa\u4e8e\u6807\u51c6\u7684\u4f01\u4e1a\u7ea7\u5e73\u53f0\uff0c\u4ece\u800c\u7b80\u5316\u4f01\u4e1a\u5e94\u7528\u7684\u5f00\u53d1\u3001\u7ba1\u7406\u548c\u90e8\u7f72\u3002J2EE\u662f\u4e00\u4e2a\u6807\u51c6\uff0c\u800c\u4e0d\u662f\u4e00\u4e2a\u73b0\u6210\u7684\u4ea7\u54c1\u3002\u5404\u4e2a\u5e73\u53f0\u5f00\u53d1\u5546\u6309\u7167J2EE\u89c4\u8303\u5206\u522b\u5f00\u53d1\u4e86\u4e0d\u540c\u7684J2EE\u5e94\u7528\u670d\u52a1\u5668\uff0cJ2EE\u5e94\u7528\u670d\u52a1\u5668\u662fJ2EE\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u90e8\u7f72\u5e73\u53f0\u3002\u7531\u4e8e\u5b83\u4eec\u90fd\u9075\u5faa\u4e86J2EE\u89c4\u8303\uff0c\u56e0\u6b64\uff0c\u4f7f\u7528J2EE\u6280\u672f\u5f00\u53d1\u7684\u4f01\u4e1a\u7ea7\u5e94\u7528\u53ef\u4ee5\u90e8\u7f72\u5728\u5404\u79cdJ2EE\u5e94\u7528\u670d\u52a1\u5668\u4e0a\u3002

\u4e3a\u4e86\u63a8\u5e7f\u5e76\u89c4\u8303\u5316\u4f7f\u7528J2EE\u67b6\u6784\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u4f53\u7cfb\u67b6\u6784\uff0cSun\u540c\u65f6\u7ed9\u51fa\u4e86\u4e00\u4e2a\u5efa\u8bae\u6027\u7684J2EE\u5e94\u7528\u8bbe\u8ba1\u6a21\u578b\uff1aJ2EE Blueprints\u3002J2EE Blueprints\u63d0\u4f9b\u4e86\u5b9e\u65bdJ2EE\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u4f53\u7cfb\u67b6\u6784\u3001\u8bbe\u8ba1\u6a21\u5f0f\u548c\u76f8\u5173\u7684\u4ee3\u7801\uff0c\u901a\u8fc7\u5e94\u7528J2EE Blueprints\u6240\u63cf\u8ff0\u7684\u4f53\u7cfb\u6a21\u578b\uff0c\u80fd\u591f\u90e8\u5206\u7b80\u5316\u67b6\u6784\u4f01\u4e1a\u7ea7\u5e94\u7528\u8fd9\u9879\u590d\u6742\u7684\u5de5\u4f5c\u3002J2EE Blueprints\u662f\u5f00\u53d1\u4eba\u5458\u8bbe\u8ba1\u548c\u4f18\u5316J2EE\u7ec4\u4ef6\u7684\u57fa\u672c\u539f\u5219\uff0c\u540c\u65f6\u4e3a\u56f4\u7ed5\u5f00\u53d1\u5de5\u4f5c\u8fdb\u884c\u804c\u80fd\u5206\u5de5\u7ed9\u51fa\u4e86\u6307\u5bfc\u6027\u7b56\u7565\uff0c\u4ee5\u5e2e\u52a9\u5e94\u7528\u5f00\u53d1\u8bbe\u8ba1\u4eba\u5458\u5408\u7406\u5730\u5206\u914d\u6280\u672f\u8d44\u6e90\u3002

\u4e0b\u9762\u6211\u4eec\u53c2\u7167J2EE Blueprints\uff0c\u7ed3\u5408\u6700\u65b0\u7248\u7684J2EE\u89c4\u8303(J2EE 1.4)\uff0c\u4ece\u6574\u4f53\u4e0a\u9610\u8ff0\u5982\u4f55\u4f7f\u7528J2EE\u67b6\u6784\u4f01\u4e1a\u7ea7\u5e94\u7528\u3002

\u56fe2 \u4f7f\u7528J2EE\u67b6\u6784\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u4f53\u7cfb\u67b6\u6784


\u56fe2\u7ed9\u51fa\u4e86\u4f7f\u7528J2EE\u67b6\u6784\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u4f53\u7cfb\u67b6\u6784\u3002J2EE\u5c06\u7ec4\u6210\u4e00\u4e2a\u5b8c\u6574\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u4e0d\u540c\u90e8\u5206\u7eb3\u5165\u4e0d\u540c\u7684\u5bb9\u5668(Container)\uff0c\u6bcf\u4e2a\u5bb9\u5668\u4e2d\u90fd\u5305\u542b\u82e5\u5e72\u7ec4\u4ef6(\u8fd9\u4e9b\u7ec4\u4ef6\u662f\u9700\u8981\u90e8\u7f72\u5728\u76f8\u5e94\u5bb9\u5668\u4e2d\u7684)\uff0c\u540c\u65f6\u5404\u79cd\u7ec4\u4ef6\u90fd\u80fd\u4f7f\u7528\u5404\u79cdJ2EE Service/API\u3002J2EE\u5bb9\u5668\u5305\u62ec\uff1a
\u25c6 Web\u5bb9\u5668 \u670d\u52a1\u5668\u7aef\u5bb9\u5668\uff0c\u5305\u62ec\u4e24\u79cd\u7ec4\u4ef6JSP\u548cServlet\uff0cJSP\u548cServlet\u90fd\u662fWeb\u670d\u52a1\u5668\u7684\u529f\u80fd\u6269\u5c55\uff0c\u63a5\u53d7Web\u8bf7\u6c42\uff0c\u8fd4\u56de\u52a8\u6001\u7684Web\u9875\u9762\u3002Web\u5bb9\u5668\u4e2d\u7684\u7ec4\u4ef6\u53ef\u4f7f\u7528EJB\u5bb9\u5668\u4e2d\u7684\u7ec4\u4ef6\u5b8c\u6210\u590d\u6742\u7684\u5546\u52a1\u903b\u8f91\u3002

\u25c6 EJB\u5bb9\u5668 \u670d\u52a1\u5668\u7aef\u5bb9\u5668\uff0c\u5305\u542b\u7684\u7ec4\u4ef6\u4e3aEJB(Enterprise JavaBeans)\uff0c\u5b83\u662fJ2EE\u7684\u6838\u5fc3\u4e4b\u4e00\uff0c\u4e3b\u8981\u7528\u4e8e\u670d\u52a1\u5668\u7aef\u7684\u5546\u4e1a\u903b\u8f91\u7684\u5b9e\u73b0\u3002EJB\u89c4\u8303\u5b9a\u4e49\u4e86\u4e00\u4e2a\u5f00\u53d1\u548c\u90e8\u7f72\u5206\u5e03\u5f0f\u5546\u4e1a\u903b\u8f91\u7684\u6846\u67b6\uff0c\u4ee5\u7b80\u5316\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u5f00\u53d1\uff0c\u4f7f\u5176\u8f83\u5bb9\u6613\u5730\u5177\u5907\u53ef\u4f38\u7f29\u6027\u3001\u53ef\u79fb\u690d\u6027\u3001\u5206\u5e03\u5f0f\u4e8b\u52a1\u5904\u7406\u3001\u591a\u7528\u6237\u548c\u5b89\u5168\u6027\u7b49\u3002

\u25c6 Applet\u5bb9\u5668 \u5ba2\u6237\u7aef\u5bb9\u5668\uff0c\u5305\u542b\u7684\u7ec4\u4ef6\u4e3aApplet\u3002Applet\u662f\u5d4c\u5728\u6d4f\u89c8\u5668\u4e2d\u7684\u4e00\u79cd\u8f7b\u91cf\u7ea7\u5ba2\u6237\u7aef\uff0c\u4e00\u822c\u800c\u8a00\uff0c\u4ec5\u5f53\u4f7f\u7528Web\u9875\u9762\u65e0\u6cd5\u5145\u5206\u5730\u8868\u73b0\u6570\u636e\u6216\u5e94\u7528\u754c\u9762\u7684\u65f6\u5019\uff0c\u624d\u4f7f\u7528\u5b83\u3002Applet\u662f\u4e00\u79cd\u66ff\u4ee3Web\u9875\u9762\u7684\u624b\u6bb5\uff0c\u6211\u4eec\u4ec5\u80fd\u591f\u4f7f\u7528J2SE\u5f00\u53d1Applet\uff0cApplet\u65e0\u6cd5\u4f7f\u7528J2EE\u7684\u5404\u79cdService\u548cAPI\uff0c\u8fd9\u662f\u4e3a\u4e86\u5b89\u5168\u6027\u7684\u8003\u8651\u3002

\u25c6 Application Client\u5bb9\u5668 \u5ba2\u6237\u7aef\u5bb9\u5668\uff0c\u5305\u542b\u7684\u7ec4\u4ef6\u4e3aApplication Client\u3002Application Client\u76f8\u5bf9Applet\u800c\u8a00\u662f\u4e00\u79cd\u8f83\u91cd\u91cf\u7ea7\u7684\u5ba2\u6237\u7aef\uff0c\u5b83\u80fd\u591f\u4f7f\u7528J2EE\u7684\u5927\u591a\u6570Service\u548cAPI\u3002

\u901a\u8fc7\u8fd9\u56db\u4e2a\u5bb9\u5668\uff0cJ2EE\u80fd\u591f\u7075\u6d3b\u5730\u5b9e\u73b0\u524d\u9762\u63cf\u8ff0\u7684\u4f01\u4e1a\u7ea7\u5e94\u7528\u7684\u67b6\u6784\u3002

\u5728View\u90e8\u5206\uff0cJ2EE\u63d0\u4f9b\u4e86\u4e09\u79cd\u624b\u6bb5\uff1aWeb\u5bb9\u5668\u4e2d\u7684JSP(\u6216Servlet)\u3001Applet\u548cApplication Client\uff0c\u5206\u522b\u80fd\u591f\u5b9e\u73b0\u9762\u5411\u6d4f\u89c8\u5668\u7684\u6570\u636e\u8868\u73b0\u548c\u9762\u5411\u684c\u9762\u5e94\u7528\u7684\u6570\u636e\u8868\u73b0\u3002Web\u5bb9\u5668\u4e2d\u7684Servlet\u662f\u5b9e\u73b0Controller\u90e8\u5206\u4e1a\u52a1\u6d41\u7a0b\u63a7\u5236\u7684\u4e3b\u8981\u624b\u6bb5\uff1b\u800cEJB\u5219\u4e3b\u8981\u9488\u5bf9Model\u90e8\u5206\u7684\u4e1a\u52a1\u903b\u8f91\u5b9e\u73b0\u3002\u81f3\u4e8e\u4e0e\u5404\u79cd\u4f01\u4e1a\u8d44\u6e90\u548c\u4f01\u4e1a\u7ea7\u5e94\u7528\u76f8\u8fde\u63a5\uff0c\u5219\u662f\u4f9d\u9760J2EE\u7684\u5404\u79cd\u670d\u52a1\u548cAPI\u3002

\u5728J2EE\u7684\u5404\u79cd\u670d\u52a1\u548cAPI\u4e2d\uff0cJDBC\u548cJCA\u7528\u4e8e\u4f01\u4e1a\u8d44\u6e90(\u5404\u79cd\u4f01\u4e1a\u4fe1\u606f\u7cfb\u7edf\u548c\u6570\u636e\u5e93\u7b49)\u7684\u8fde\u63a5\uff0cJAX-RPC\u3001JAXR\u548cSAAJ\u5219\u662f\u5b9e\u73b0Web Services\u548cWeb Services\u8fde\u63a5\u7684\u57fa\u672c\u652f\u6301\u3002

J2EE\u7684\u5404\u79cd\u7ec4\u4ef6

\u6211\u4eec\u5c31J2EE\u7684\u5404\u79cd\u7ec4\u4ef6\u3001\u670d\u52a1\u548cAPI\uff0c\u8fdb\u884c\u66f4\u52a0\u8be6\u7ec6\u7684\u9610\u8ff0\uff0c\u770b\u770b\u5728\u5f00\u53d1\u4e0d\u540c\u7c7b\u578b\u7684\u4f01\u4e1a\u7ea7\u5e94\u7528\u65f6\uff0c\u6839\u636e\u5404\u81ea\u9700\u6c42\u548c\u76ee\u6807\u7684\u4e0d\u540c\uff0c\u5e94\u5f53\u5982\u4f55\u7075\u6d3b\u4f7f\u7528\u5e76\u7ec4\u5408\u4e0d\u540c\u7684\u7ec4\u4ef6\u548c\u670d\u52a1\u3002

\u00b7 Servlet

Servlet\u662fJava\u5e73\u53f0\u4e0a\u7684CGI\u6280\u672f\u3002Servlet\u5728\u670d\u52a1\u5668\u7aef\u8fd0\u884c\uff0c\u52a8\u6001\u5730\u751f\u6210Web\u9875\u9762\u3002\u4e0e\u4f20\u7edf\u7684CGI\u548c\u8bb8\u591a\u5176\u5b83\u7c7b\u4f3cCGI\u7684\u6280\u672f\u76f8\u6bd4\uff0cJava Servlet\u5177\u6709\u66f4\u9ad8\u7684\u6548\u7387\u5e76\u66f4\u5bb9\u6613\u4f7f\u7528\u3002\u5bf9\u4e8eServlet\uff0c\u91cd\u590d\u7684\u8bf7\u6c42\u4e0d\u4f1a\u5bfc\u81f4\u540c\u4e00\u7a0b\u5e8f\u7684\u591a\u6b21\u8f6c\u8f7d\uff0c\u5b83\u662f\u4f9d\u9760\u7ebf\u7a0b\u7684\u65b9\u5f0f\u6765\u652f\u6301\u5e76\u53d1\u8bbf\u95ee\u7684\u3002

\u00b7 JSP

JSP(Java Server Page)\u662f\u4e00\u79cd\u5b9e\u73b0\u666e\u901a\u9759\u6001HTML\u548c\u52a8\u6001\u9875\u9762\u8f93\u51fa\u6df7\u5408\u7f16\u7801\u7684\u6280\u672f\u3002\u4ece\u8fd9\u4e00\u70b9\u6765\u770b\uff0c\u975e\u5e38\u7c7b\u4f3cMicrosoft ASP\u3001PHP\u7b49\u6280\u672f\u3002\u501f\u52a9\u5f62\u5f0f\u4e0a\u7684\u5185\u5bb9\u548c\u5916\u89c2\u8868\u73b0\u7684\u5206\u79bb\uff0cWeb\u9875\u9762\u5236\u4f5c\u7684\u4efb\u52a1\u53ef\u4ee5\u6bd4\u8f83\u65b9\u4fbf\u5730\u5212\u5206\u7ed9\u9875\u9762\u8bbe\u8ba1\u4eba\u5458\u548c\u7a0b\u5e8f\u5458\uff0c\u5e76\u65b9\u4fbf\u5730\u901a\u8fc7JSP\u6765\u5408\u6210\u3002\u5728\u8fd0\u884c\u65f6\u6001\uff0cJSP\u5c06\u4f1a\u88ab\u9996\u5148\u8f6c\u6362\u6210Servlet\uff0c\u5e76\u4ee5Servlet\u7684\u5f62\u6001\u7f16\u8bd1\u8fd0\u884c\uff0c\u56e0\u6b64\u5b83\u7684\u6548\u7387\u548c\u529f\u80fd\u4e0eServlet\u76f8\u6bd4\u6ca1\u6709\u5dee\u522b\uff0c\u4e00\u6837\u5177\u6709\u5f88\u9ad8\u7684\u6548\u7387\u3002

\u00b7 EJB

EJB\u5b9a\u4e49\u4e86\u4e00\u7ec4\u53ef\u91cd\u7528\u7684\u7ec4\u4ef6\uff1aEnterprise Beans\u3002\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u5229\u7528\u8fd9\u4e9b\u7ec4\u4ef6\uff0c\u50cf\u642d\u79ef\u6728\u4e00\u6837\u5efa\u7acb\u5206\u5e03\u5f0f\u5e94\u7528\u3002\u5728\u88c5\u914d\u7ec4\u4ef6\u65f6\uff0c\u6240\u6709\u7684Enterprise Beans\u90fd\u9700\u8981\u914d\u7f6e\u5230EJB\u670d\u52a1\u5668(\u4e00\u822c\u7684Weblogic\u3001WebSphere\u7b49J2EE\u5e94\u7528\u670d\u52a1\u5668\u90fd\u662fEJB\u670d\u52a1\u5668)\u4e2d\u3002EJB\u670d\u52a1\u5668\u4f5c\u4e3a\u5bb9\u5668\u548c\u4f4e\u5c42\u5e73\u53f0\u7684\u6865\u6881\u7ba1\u7406\u7740EJB\u5bb9\u5668\uff0c\u5e76\u5411\u8be5\u5bb9\u5668\u63d0\u4f9b\u8bbf\u95ee\u7cfb\u7edf\u670d\u52a1\u7684\u80fd\u529b\u3002\u6240\u6709\u7684EJB\u5b9e\u4f8b\u90fd\u8fd0\u884c\u5728EJB\u5bb9\u5668\u4e2d\u3002EJB\u5bb9\u5668\u63d0\u4f9b\u4e86\u7cfb\u7edf\u7ea7\u7684\u670d\u52a1\uff0c\u63a7\u5236\u4e86EJB\u7684\u751f\u547d\u5468\u671f\u3002EJB\u5bb9\u5668\u4e3a\u5b83\u7684\u5f00\u53d1\u4eba\u5458\u4ee3\u7ba1\u4e86\u8bf8\u5982\u5b89\u5168\u6027\u3001\u8fdc\u7a0b\u8fde\u63a5\u3001\u751f\u547d\u5468\u671f\u7ba1\u7406\u53ca\u4e8b\u52a1\u7ba1\u7406\u7b49\u6280\u672f\u73af\u8282\uff0c\u7b80\u5316\u4e86\u5546\u4e1a\u903b\u8f91\u7684\u5f00\u53d1\u3002EJB\u4e2d\u5b9a\u4e49\u4e86\u4e09\u79cdEnterprise Beans\uff1a

\u25c6 Session Beans

\u25c6 Entity Beans

\u25c6 Message-driven Beans

\u00b7 JDBC

JDBC(Java Database Connectivity\uff0cJava\u6570\u636e\u5e93\u8fde\u63a5)API\u662f\u4e00\u4e2a\u6807\u51c6SQL(Structured Query Language\uff0c\u7ed3\u6784\u5316\u67e5\u8be2\u8bed\u8a00)\u6570\u636e\u5e93\u8bbf\u95ee\u63a5\u53e3\uff0c\u5b83\u4f7f\u6570\u636e\u5e93\u5f00\u53d1\u4eba\u5458\u80fd\u591f\u7528\u6807\u51c6Java API\u7f16\u5199\u6570\u636e\u5e93\u5e94\u7528\u7a0b\u5e8f\u3002JDBC API\u4e3b\u8981\u7528\u6765\u8fde\u63a5\u6570\u636e\u5e93\u548c\u76f4\u63a5\u8c03\u7528SQL\u547d\u4ee4\u6267\u884c\u5404\u79cdSQL\u8bed\u53e5\u3002\u5229\u7528JDBC API\u53ef\u4ee5\u6267\u884c\u4e00\u822c\u7684SQL\u8bed\u53e5\u3001\u52a8\u6001SQL\u8bed\u53e5\u53ca\u5e26IN\u548cOUT\u53c2\u6570\u7684\u5b58\u50a8\u8fc7\u7a0b\u3002Java\u4e2d\u7684JDBC\u76f8\u5f53\u4e0eMicrosoft\u5e73\u53f0\u4e2d\u7684ODBC(Open Database Connectivity)\u3002

\u00b7 JMS

JMS(Java Message Service\uff0cJava\u6d88\u606f\u670d\u52a1)\u662f\u4e00\u7ec4Java\u5e94\u7528\u63a5\u53e3\uff0c\u5b83\u63d0\u4f9b\u521b\u5efa\u3001\u53d1\u9001\u3001\u63a5\u6536\u3001\u8bfb\u53d6\u6d88\u606f\u7684\u670d\u52a1\u3002JMS API\u5b9a\u4e49\u4e86\u4e00\u7ec4\u516c\u5171\u7684\u5e94\u7528\u7a0b\u5e8f\u63a5\u53e3\u548c\u76f8\u5e94\u8bed\u6cd5\uff0c\u4f7f\u5f97Java\u5e94\u7528\u80fd\u591f\u548c\u5404\u79cd\u6d88\u606f\u4e2d\u95f4\u4ef6\u8fdb\u884c\u901a\u4fe1\uff0c\u8fd9\u4e9b\u6d88\u606f\u4e2d\u95f4\u4ef6\u5305\u62ecIBM MQ-Series\u3001Microsoft MSMQ\u53ca\u7eafJava\u7684SonicMQ\u3002\u901a\u8fc7\u4f7f\u7528JMS API\uff0c\u5f00\u53d1\u4eba\u5458\u65e0\u9700\u638c\u63e1\u4e0d\u540c\u6d88\u606f\u4ea7\u54c1\u7684\u4f7f\u7528\u65b9\u6cd5\uff0c\u4e5f\u53ef\u4ee5\u4f7f\u7528\u7edf\u4e00\u7684JMS API\u6765\u64cd\u7eb5\u5404\u79cd\u6d88\u606f\u4e2d\u95f4\u4ef6\u3002\u901a\u8fc7\u4f7f\u7528JMS\uff0c\u80fd\u591f\u6700\u5927\u9650\u5ea6\u5730\u63d0\u5347\u6d88\u606f\u5e94\u7528\u7684\u53ef\u79fb\u690d\u6027\u3002 JMS\u65e2\u652f\u6301\u70b9\u5bf9\u70b9\u7684\u6d88\u606f\u901a\u4fe1\uff0c\u4e5f\u652f\u6301\u53d1\u5e03/\u8ba2\u9605\u5f0f\u7684\u6d88\u606f\u901a\u4fe1\u3002

\u00b7 JNDI

\u7531\u4e8eJ2EE\u5e94\u7528\u7a0b\u5e8f\u7ec4\u4ef6\u4e00\u822c\u5206\u5e03\u5728\u4e0d\u540c\u7684\u673a\u5668\u4e0a\uff0c\u6240\u4ee5\u9700\u8981\u4e00\u79cd\u673a\u5236\u4ee5\u4fbf\u4e8e\u7ec4\u4ef6\u5ba2\u6237\u4f7f\u7528\u8005\u67e5\u627e\u548c\u5f15\u7528\u7ec4\u4ef6\u53ca\u8d44\u6e90\u3002\u5728J2EE\u4f53\u7cfb\u4e2d\uff0c\u4f7f\u7528JNDI(Java Naming and Directory Interface)\u5b9a\u4f4d\u5404\u79cd\u5bf9\u8c61\uff0c\u8fd9\u4e9b\u5bf9\u8c61\u5305\u62ecEJB\u3001\u6570\u636e\u5e93\u9a71\u52a8\u3001JDBC\u6570\u636e\u6e90\u53ca\u6d88\u606f\u8fde\u63a5\u7b49\u3002JNDI API\u4e3a\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u4e86\u4e00\u4e2a\u7edf\u4e00\u7684\u63a5\u53e3\u6765\u5b8c\u6210\u6807\u51c6\u7684\u76ee\u5f55\u64cd\u4f5c\uff0c\u5982\u901a\u8fc7\u5bf9\u8c61\u5c5e\u6027\u6765\u67e5\u627e\u548c\u5b9a\u4f4d\u8be5\u5bf9\u8c61\u3002\u7531\u4e8eJNDI\u662f\u72ec\u7acb\u4e8e\u76ee\u5f55\u534f\u8bae\u7684\uff0c\u5e94\u7528\u8fd8\u53ef\u4ee5\u4f7f\u7528JNDI\u8bbf\u95ee\u5404\u79cd\u7279\u5b9a\u7684\u76ee\u5f55\u670d\u52a1\uff0c\u5982LDAP\u3001NDS\u548cDNS\u7b49\u3002

\u00b7 JTA

JTA(Java Transaction API)\u63d0\u4f9b\u4e86J2EE\u4e2d\u5904\u7406\u4e8b\u52a1\u7684\u6807\u51c6\u63a5\u53e3\uff0c\u5b83\u652f\u6301\u4e8b\u52a1\u7684\u5f00\u59cb\u3001\u56de\u6eda\u548c\u63d0\u4ea4\u3002\u540c\u65f6\u5728\u4e00\u822c\u7684J2EE\u5e73\u53f0\u4e0a\uff0c\u603b\u63d0\u4f9b\u4e00\u4e2aJTS(Java Transaction Service)\u4f5c\u4e3a\u6807\u51c6\u7684\u4e8b\u52a1\u5904\u7406\u670d\u52a1\uff0c\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u4f7f\u7528JTA\u6765\u4f7f\u7528JTS\u3002

\u00b7 JCA

JCA(J2EE Connector Architecture)\u662fJ2EE\u4f53\u7cfb\u67b6\u6784\u7684\u4e00\u90e8\u5206\uff0c\u4e3a\u5f00\u53d1\u4eba\u5458\u63d0\u4f9b\u4e86\u4e00\u5957\u8fde\u63a5\u5404\u79cd\u4f01\u4e1a\u4fe1\u606f\u7cfb\u7edf(EIS\uff0c\u5305\u62ecERP\u3001SCM\u3001CRM\u7b49)\u7684\u4f53\u7cfb\u67b6\u6784\uff0c\u5bf9\u4e8eEIS\u5f00\u53d1\u5546\u800c\u8a00\uff0c\u5b83\u4eec\u53ea\u9700\u8981\u5f00\u53d1\u4e00\u5957\u57fa\u4e8eJCA\u7684EIS\u8fde\u63a5\u9002\u914d\u5668\uff0c\u5f00\u53d1\u4eba\u5458\u5c31\u80fd\u591f\u5728\u4efb\u4f55\u7684J2EE\u5e94\u7528\u670d\u52a1\u5668\u4e2d\u8fde\u63a5\u5e76\u4f7f\u7528\u5b83\u3002\u57fa\u4e8eJCA\u7684\u8fde\u63a5\u9002\u914d\u5668\u7684\u5b9e\u73b0\uff0c\u9700\u8981\u6d89\u53caJ2EE\u4e2d\u7684\u4e8b\u52a1\u7ba1\u7406\u3001\u5b89\u5168\u7ba1\u7406\u53ca\u8fde\u63a5\u7ba1\u7406\u7b49\u670d\u52a1\u7ec4\u4ef6\u3002

\u00b7 JMX

JMX(Java Management Extensions)\u7684\u524d\u8eab\u662fJMAPI\u3002JMX\u81f4\u529b\u4e8e\u89e3\u51b3\u5206\u5e03\u5f0f\u7cfb\u7edf\u7ba1\u7406\u7684\u95ee\u9898\u3002JMX\u662f\u4e00\u79cd\u5e94\u7528\u7f16\u7a0b\u63a5\u53e3\u3001\u53ef\u6269\u5c55\u5bf9\u8c61\u548c\u65b9\u6cd5\u7684\u96c6\u5408\u4f53\uff0c\u53ef\u4ee5\u8de8\u8d8a\u5404\u79cd\u5f02\u6784\u64cd\u4f5c\u7cfb\u7edf\u5e73\u53f0\u3001\u7cfb\u7edf\u4f53\u7cfb\u7ed3\u6784\u548c\u7f51\u7edc\u4f20\u8f93\u534f\u8bae\uff0c\u5f00\u53d1\u65e0\u7f1d\u96c6\u6210\u7684\u9762\u5411\u7cfb\u7edf\u3001\u7f51\u7edc\u548c\u670d\u52a1\u7684\u7ba1\u7406\u5e94\u7528\u3002JMX\u662f\u4e00\u4e2a\u5b8c\u6574\u7684\u7f51\u7edc\u7ba1\u7406\u5e94\u7528\u7a0b\u5e8f\u5f00\u53d1\u73af\u5883\uff0c\u5b83\u540c\u65f6\u63d0\u4f9b\u4e86\u5382\u5546\u9700\u8981\u6536\u96c6\u7684\u5b8c\u6574\u7684\u7279\u6027\u6e05\u5355\u3001\u53ef\u751f\u6210\u8d44\u6e90\u6e05\u5355\u8868\u683c\u3001\u56fe\u5f62\u5316\u7684\u7528\u6237\u63a5\u53e3\uff1b\u8bbf\u95eeSNMP\u7684\u7f51\u7edcAPI\uff1b\u4e3b\u673a\u95f4\u8fdc\u7a0b\u8fc7\u7a0b\u8c03\u7528\uff1b\u6570\u636e\u5e93\u8bbf\u95ee\u65b9\u6cd5\u7b49\u3002

\u00b7 JAAS

JAAS(Java Authentication and Authorization Service)\u5b9e\u73b0\u4e86\u4e00\u4e2aJava\u7248\u672c\u7684\u6807\u51c6Pluggable Authentication Module(PAM)\u7684\u6846\u67b6\u3002JAAS\u53ef\u7528\u6765\u8fdb\u884c\u7528\u6237\u8eab\u4efd\u7684\u9274\u5b9a\uff0c\u4ece\u800c\u80fd\u591f\u53ef\u9760\u5e76\u5b89\u5168\u5730\u786e\u5b9a\u8c01\u5728\u6267\u884cJava\u4ee3\u7801\u3002\u540c\u65f6JAAS\u8fd8\u80fd\u901a\u8fc7\u5bf9\u7528\u6237\u8fdb\u884c\u6388\u6743\uff0c\u5b9e\u73b0\u57fa\u4e8e\u7528\u6237\u7684\u8bbf\u95ee\u63a7\u5236\u3002

\u00b7 JACC

JACC(Java Authorization Service Provider Contract for Containers)\u5728J2EE\u5e94\u7528\u670d\u52a1\u5668\u548c\u7279\u5b9a\u7684\u6388\u6743\u8ba4\u8bc1\u670d\u52a1\u5668\u4e4b\u95f4\u5b9a\u4e49\u4e86\u4e00\u4e2a\u8fde\u63a5\u7684\u534f\u7ea6\uff0c\u4ee5\u4fbf\u5c06\u5404\u79cd\u6388\u6743\u8ba4\u8bc1\u670d\u52a1\u5668\u63d2\u5165\u5230J2EE\u4ea7\u54c1\u4e2d\u53bb\u3002

\u00b7 JAX-RPC

\u901a\u8fc7\u4f7f\u7528JAX-RPC(Java API for XML-based RPC)\uff0c\u5df2\u6709\u7684Java\u7c7b\u6216Java\u5e94\u7528\u90fd\u80fd\u591f\u88ab\u91cd\u65b0\u5305\u88c5\uff0c\u5e76\u4ee5Web Services\u7684\u5f62\u5f0f\u53d1\u5e03\u3002JAX-RPC\u63d0\u4f9b\u4e86\u5c06RPC\u53c2\u6570(in/out)\u7f16\u7801\u548c\u89e3\u7801\u7684API\uff0c\u4f7f\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u65b9\u4fbf\u5730\u4f7f\u7528SOAP\u6d88\u606f\u6765\u5b8c\u6210RPC\u8c03\u7528\u3002\u540c\u6837\uff0c\u5bf9\u4e8e\u90a3\u4e9b\u4f7f\u7528EJB(Enterprise JavaBeans)\u7684\u5546\u4e1a\u5e94\u7528\u800c\u8a00\uff0c\u540c\u6837\u53ef\u4ee5\u4f7f\u7528JAX-RPC\u6765\u5305\u88c5\u6210Web\u670d\u52a1\uff0c\u800c\u8fd9\u4e2aWeb Servoce\u7684WSDL\u754c\u9762\u662f\u4e0e\u539f\u5148\u7684EJB\u7684\u65b9\u6cd5\u662f\u5bf9\u5e94\u4e00\u81f4\u7684\u3002JAX-RPC\u4e3a\u7528\u6237\u5305\u88c5\u4e86Web\u670d\u52a1\u7684\u90e8\u7f72\u548c\u5b9e\u73b0\uff0c\u5bf9Web\u670d\u52a1\u7684\u5f00\u53d1\u4eba\u5458\u800c\u8a00\uff0cSOAP/WSDL\u53d8\u5f97\u900f\u660e\uff0c\u8fd9\u6709\u5229\u4e8e\u52a0\u901fWeb\u670d\u52a1\u7684\u5f00\u53d1\u5468\u671f\u3002

\u00b7 JAXR

JAXR\uff08Java API for XML Registries\uff09\u63d0\u4f9b\u4e86\u4e0e\u591a\u79cd\u7c7b\u578b\u6ce8\u518c\u670d\u52a1\u8fdb\u884c\u4ea4\u4e92\u7684API\u3002JAXR\u8fd0\u884c\u5ba2\u6237\u7aef\u8bbf\u95ee\u4e0eJAXR\u89c4\u8303\u76f8\u517c\u5bb9\u7684Web Servcices\uff0c\u8fd9\u91cc\u7684Web Services\u5373\u4e3a\u6ce8\u518c\u670d\u52a1\u3002\u4e00\u822c\u6765\u8bf4\uff0c\u6ce8\u518c\u670d\u52a1\u603b\u662f\u4ee5Web Services\u7684\u5f62\u5f0f\u8fd0\u884c\u7684\u3002JAXR\u652f\u6301\u4e09\u79cd\u6ce8\u518c\u670d\u52a1\u7c7b\u578b\uff1aJAXR Pluggable Provider\u3001Registry-specific JAXR Provider\u3001JAXR Bridge Provider(\u652f\u6301UDDI Registry\u548cebXML Registry/Repository\u7b49)\u3002

\u00b7 SAAJ

SAAJ(SOAP with Attachemnts API for Java)\u662fJAX-RPC\u7684\u4e00\u4e2a\u589e\u5f3a\uff0c\u4e3a\u8fdb\u884c\u4f4e\u5c42\u6b21\u7684SOAP\u6d88\u606f\u64cd\u7eb5\u63d0\u4f9b\u4e86\u652f\u6301\u3002


\u4f01\u4e1a\u7ea7\u5e94\u7528\u793a\u4f8b


\u4e0b\u9762\u6211\u4eec\u901a\u8fc7\u5047\u8bbe\u4e00\u4e2a\u4f01\u4e1a\u5e94\u7528\u7684J2EE\u5b9e\u73b0\uff0c\u6765\u4e86\u89e3\u5404\u79cd\u7ec4\u4ef6\u548c\u670d\u52a1\u7684\u5e94\u7528\u3002\u5047\u8bbe\u5e94\u7528\u5bf9\u8c61\u662f\u8ba1\u7b97\u673a\u4ea7\u54c1\u7684\u751f\u4ea7\u5546/\u96f6\u552e\u5546\u7684\u9500\u552e\u7cfb\u7edf\uff0c\u8fd9\u4e2a\u9500\u552e\u7cfb\u7edf\u80fd\u591f\u901a\u8fc7\u81ea\u5df1\u7684\u7f51\u7ad9\u53d1\u5e03\u4ea7\u54c1\u4fe1\u606f\uff0c\u540c\u65f6\u4e5f\u80fd\u5c06\u4ea7\u54c1\u76ee\u5f55\u4f20\u9001\u7ed9\u8ba1\u7b97\u673a\u4ea7\u54c1\u4ea4\u6613\u5e02\u573a\u3002\u9500\u552e\u7cfb\u7edf\u80fd\u591f\u5728\u7ebf\u63a5\u53d7\u8ba2\u5355(\u6765\u81ea\u81ea\u5df1\u7684Web\u7f51\u7ad9\u6216\u8005\u6765\u81ea\u8ba1\u7b97\u673a\u4ea7\u54c1\u4ea4\u6613\u5e02\u573a)\uff0c\u5e76\u968f\u540e\u8f6c\u5165\u5185\u90e8\u4f01\u4e1a\u7ba1\u7406\u7cfb\u7edf\u8fdb\u884c\u76f8\u5173\u7684\u540e\u7eed\u5904\u7406\u3002

\u53c2\u89c1\u56fe3\uff0c\u8fd9\u4e2a\u4f01\u4e1a\u5e94\u7528\u53ef\u4ee5\u8fd9\u79cd\u65b9\u5f0f\u67b6\u6784\u3002\u8be5\u4f01\u4e1a\u5e94\u7528\u7684\u6838\u5fc3\u662f\u4ea7\u54c1\u76ee\u5f55\u7ba1\u7406\u548c\u4ea7\u54c1\u5b9a\u8d2d\u7ba1\u7406\u8fd9\u4e24\u4e2a\u4e1a\u52a1\u903b\u8f91\uff0c\u4f7f\u7528EJB\u52a0\u4ee5\u5b9e\u73b0\uff0c\u5e76\u90e8\u7f72\u5728EJB\u5bb9\u5668\u4e2d\u3002\u7531\u4e8e\u4ea7\u54c1\u76ee\u5f55\u548c\u5b9a\u8d2d\u4fe1\u606f\u90fd\u9700\u8981\u6301\u4e45\u5316\uff0c\u56e0\u6b64\u4f7f\u7528JDBC\u8fde\u63a5\u6570\u636e\u5e93\uff0c\u5e76\u4f7f\u7528JTA\u6765\u5b8c\u6210\u6570\u636e\u5e93\u5b58\u53d6\u4e8b\u52a1\u3002



\u56fe3 J2EE\u5e94\u7528\u793a\u4f8b


\u7136\u540e\u4f7f\u7528JSP/Servlet\u6765\u5b9e\u73b0\u5e94\u7528\u7684Web\u8868\u73b0\uff1a\u5728\u7ebf\u4ea7\u54c1\u76ee\u5f55\u6d4f\u89c8\u548c\u5728\u7ebf\u5b9a\u8d2d\u3002\u4e3a\u4e86\u5c06\u4ea7\u54c1\u76ee\u5f55\u53d1\u9001\u7ed9\u7279\u5b9a\u7684\u4ea4\u6613\u5e02\u573a\uff0c\u4f7f\u7528JMS\u5b9e\u73b0\u5f02\u6b65\u7684\u57fa\u4e8e\u6d88\u606f\u7684\u4ea7\u54c1\u76ee\u5f55\u4f20\u8f93\u3002\u4e3a\u4e86\u4f7f\u5f97\u66f4\u591a\u7684\u5176\u5b83\u5916\u90e8\u4ea4\u6613\u5e02\u573a\u80fd\u591f\u96c6\u6210\u4ea7\u54c1\u76ee\u5f55\u548c\u5b9a\u8d2d\u4e1a\u52a1\uff0c\u9700\u8981\u4f7f\u7528Web Services\u6280\u672f\u5305\u88c5\u5546\u4e1a\u903b\u8f91\u7684\u5b9e\u73b0\u3002\u7531\u4e8e\u4ea7\u54c1\u5b9a\u8d2d\u7ba1\u7406\u9700\u8981\u7531\u516c\u53f8\u5185\u90e8\u96c7\u5458\u8fdb\u884c\u5904\u7406\uff0c\u56e0\u6b64\u9700\u8981\u96c6\u6210\u516c\u53f8\u5185\u90e8\u7684\u7528\u6237\u7cfb\u7edf\u548c\u8bbf\u95ee\u63a7\u5236\u670d\u52a1\u4ee5\u65b9\u4fbf\u96c7\u5458\u7684\u4f7f\u7528\uff0c\u4f7f\u7528JACC\u96c6\u6210\u5185\u90e8\u7684\u8bbf\u95ee\u63a7\u5236\u670d\u52a1\uff0c\u4f7f\u7528JNDI\u96c6\u6210\u5185\u90e8\u7684\u7528\u6237\u76ee\u5f55\uff0c\u5e76\u4f7f\u7528JAAS\u8fdb\u884c\u8bbf\u95ee\u63a7\u5236\u3002\u7531\u4e8e\u4ea7\u54c1\u8ba2\u8d2d\u4e8b\u52a1\u4f1a\u89e6\u53d1\u540e\u7eed\u7684\u4f01\u4e1aERP\u7cfb\u7edf\u7684\u76f8\u5173\u64cd\u4f5c(\u5305\u62ec\u4ed3\u50a8\u3001\u8d22\u52a1\u3001\u751f\u4ea7\u7b49)\uff0c\u9700\u8981\u4f7f\u7528JCA\u8fde\u63a5\u4f01\u4e1aERP\u3002

\u6700\u540e\u4e3a\u4e86\u5c06\u8fd9\u4e2a\u5e94\u7528\u7eb3\u5165\u5230\u4f01\u4e1a\u6574\u4f53\u7684\u7cfb\u7edf\u7ba1\u7406\u4f53\u7cfb\u4e2d\u53bb\uff0c\u4f7f\u7528Application Client\u67b6\u6784\u4e86\u4e00\u4e2a\u7ba1\u7406\u5ba2\u6237\u7aef(\u4e0e\u5176\u5b83\u4f01\u4e1a\u5e94\u7528\u7ba1\u7406\u5e94\u7528\u90e8\u7f72\u5728\u4e00\u53f0\u673a\u5668\u4e0a)\uff0c\u5e76\u901a\u8fc7JMX\u7ba1\u7406\u8fd9\u4e2a\u4f01\u4e1a\u5e94\u7528\u3002
\u8fd9\u6837\u53ef\u4ee5\u4e48\uff1f

j2ee \u4e5f\u53eb javaee \u662f\u4f01\u4e1a\u6807\u51c6\u7248\u4e3b\u8981\u7528\u4e8e\u7f51\u9875\u540e\u53f0\u4e00\u4e9b\u903b\u8f91\u5224\u65ad\u6570\u636e\u4f20\u8f93\u3002Java EE \u662f J2EE\u7684\u4e00\u4e2a\u65b0\u7684\u540d\u79f0\uff0c\u4e4b\u6240\u4ee5\u6539\u540d\uff0c\u76ee\u7684\u8fd8\u662f\u8ba9\u5927\u5bb6\u6e05\u695aJ2EE\u53ea\u662fJava\u4f01\u4e1a\u5e94\u7528\u3002
\u57282004\u5e74\u5e95\u4e2d\u56fd\u8f6f\u4ef6\u6280\u672f\u5927\u4f1aIoc\u5fae\u5bb9\u5668\uff08\u4e5f\u5c31\u662fJdon\u6846\u67b6\u7684\u5b9e\u73b0\u539f\u7406\uff09\u6f14\u8bb2\u4e2d\u6307\u51fa\uff1a
\u6211\u4eec\u9700\u8981\u4e00\u4e2a\u8de8J2SE/WEB/EJB\u7684\u5fae\u5bb9\u5668\uff0c\u4fdd\u62a4\u6211\u4eec\u7684\u4e1a\u52a1\u6838\u5fc3\u7ec4\u4ef6\uff08\u4e2d\u95f4\u4ef6\uff09\uff0c\u4ee5\u5ef6\u7eed\u5b83\u7684\u751f\u547d\u529b\uff0c\u800c\u4e0d\u662f\u4f9d\u8d56J2SE/J2EE\u7248\u672c\u3002

\u6269\u5c55\u8d44\u6599\uff1a
\u6838\u5fc3\u4f18\u52bf\uff1a
J2EE\u5bb9\u6613\u8ba9\u521d\u5b66\u8005\u8bef\u89e3\u662f\u72ec\u7acb\u4e8e\u4e00\u5957Java\u7684\u6280\u672f\u65b9\u6848\u3002
\u4ece\u66f4\u6df1\u5c42\u6b21\u6765\u770b\uff0cJava\u8bde\u751f\u5341\u5e74\uff0c\u591a\u5e74\u524d\u7684\u4e1a\u52a1\u7ec4\u4ef6\u8fd8\u53ef\u4ee5\u4f7f\u7528\uff0c\u8f6f\u4ef6\u5e94\u7528\u4e0d\u518d\u7531\u4e8e\u8bed\u8a00\u7684\u66f4\u8fed\u9769\u547d\u5e26\u6765\u6bc1\u706d\u7684\u6253\u51fb\u4e86\u3002

\u5f53\u7136\uff0cJava EE 5\u91cd\u8981\u6539\u53d8\u8fd8\u662f\uff1aJava EE\u4e0d\u518d\u8c61\u4ee5\u524d\u90a3\u6837\u53ea\u6ce8\u91cd\u5927\u578b\u5546\u4e1a\u7cfb\u7edf\u7684\u5f00\u53d1\uff0c\u800c\u662f\u66f4\u5173\u6ce8\u5c0f\u5230\u4e2d\u578b\u7cfb\u7edf\u7684\u5f00\u53d1\uff0c\u7b80\u5316\u8fd9\u90e8\u5206\u7cfb\u7edf\u5f00\u53d1\u6b65\u9aa4\u3002
\u843d\u5b9e\u8fd9\u4e00\u7b80\u5316\u884c\u52a8\u7684\u6700\u5927\u7279\u5f81\u662f\u5728Java 5.0(Java 1.5)\u4e2d\u52a0\u5165Annotations\uff0c\u901a\u8fc7Annotations\u5f15\u5165\uff0c\u964d\u4f4eJava EE\u5f00\u53d1\u65f6\uff0c\u65e2\u8981\u5199code\uff0c\u53c8\u8981\u5199XML\u914d\u7f6e\u6587\u4ef6\u4e4b\u82e6\u3002
\u6765\u56de\u7167\u987e\uff0c\u75b2\u4e8e\u5954\u547d\uff0cAnnotations\u65e2\u662f\u5f97\u76ca\u4e8eC++\u8bed\u8a00\uff0c\u4e5f\u662f\u4ece\u5f00\u6e90\u9879\u76eexDoclet\u5b9e\u8df5\u4e2d\u83b7\u5f97\u7ecf\u9a8c\u3002
\u4f46\u662fAnnotations\u662f\u4e00\u628a\u53cc\u5203\u5251\uff0c\u521d\u5b66\u8005\u7528\u5f97\u4e0d\u597d\uff0c\u5c06\u4f1a\u4f7f\u5f97\u539f\u672c\u5728XML\u4e2d\u7684Hard code\uff08\u786c\u7f16\u7801\uff09 \u5199\u8fdb\u5165\u4ee3\u7801Annotations\uff0c\u7834\u574f\u4ee3\u7801\u7684\u7b80\u6d01\u548c\u7075\u6d3b\u6027\uff0c
\u5f53\u7136\uff0cAnnotations\u7684\u5f15\u5165\u4e0d\u53ea\u662f\u89e3\u51b3XML\u914d\u7f6e\uff0c\u4ece\u5927\u7684\u6982\u5ff5\u8bf4\uff0c\u662f\u89e3\u51b3\u4e00\u4e2a\u8d44\u6e90\u6ce8\u5c04\u95ee\u9898(XML\u5c5e\u4e8e\u5176\u4e2d\u4e00\u4e2a\u8d44\u6e90)\uff0c\u5728\u539f\u7406J2EE\u4e2d\uff0c\u5bb9\u5668\u7ba1\u7406\u7684\u8d44\u6e90\u90fd\u662f\u7531JNDI\u5411\u5e94\u7528\u7a0b\u5e8f\u63d0\u4f9b\u7684\uff0c\u901a\u8fc7Annotations\u53ef\u4ee5\u65b9\u4fbf\u5b9e\u73b0\u6ce8\u5c04\u3002
\u53c2\u8003\u8d44\u6599\uff1a
\u767e\u5ea6\u767e\u79d1-JavaEE

J2EE Java2平台企业版(Java 2 Platform,Enterprise Edition)

J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。

J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共通的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼容,导致企业内部或外部难以互通的窘境。

在J2EE架构下,开发人员可依循规范基础,进而开发企业级应用;而不同J2EE供货商,同会支持不同J2EE版本内所拟定的标准,以确保不同J2EE平台与产品之间的兼容性。换言之,植基J2EE架构的应用系统,基本上可部署在不同的应用服务器之上,无需或者只须要进行少量的代码修改,即能大幅提高应用系统的可移植性(Portability)。

J2EE主由升阳与IBM等厂商协同业界共同拟定而成的技术规范,以企业与企业之间的运算为导向的JAVA开发环境。J2EE架构定义各类不同组件,如Web Component、EJB Component…等,而各类组件可以再用(reuse),让已开发完成的组件,或者是经由市面采购而得的组件,均能进一步组装成不同的系统。

对于开发人员而言,只需要专注于各种应用系统的商业逻辑与架构设计,至于底层繁琐的程序撰写工作,可搭配不同的开发平台,以让应用系统的开发与部署效率大幅提升。

J2EE的核心规范是 Enterprise Java Beans(EJBs)。EJB依照特性的不同,目前共分为三种,分别是Session Bean、Entity Bean,以及 Message Driven Bean 。其中 Session Bean 与Entity Bean 算是EJB的始祖,这两种EJB规格在EJB 1.x版本推出时就已经存在,而Message Driven Bean则是出现在EJB 2.0的规格之中。

目前业界许多程序设计师,或者是网页设计人员,多利用JSP/Servlet的便利性,进而在J2EE服务器之上开发相关的应用,或是整合公司内部的各种资源。

Java 2平台依照应用领域的不同,共分为三大版本,分别是J2EE、标准版本J2SE(Java 2 Platform, Standard Edition)、微型版本J2ME(Java 2 Platform, Micro Edition),以及Java Card等。

那么到底什么是J2EE呢?从整体上讲,J2EE是使用Java技术开发企业级应用的一种事实上的工业标准(Sun公司出于其自身利益的考虑,至今没有将Java及其相关技术纳入标准化组织的体系),它是Java技术不断适应和促进企业级应用过程中的产物。目前,Java平台有三个版本:适用于小型设备和智能卡的J2ME(Java 2 Platform Micro Edition)、适用于桌面系统的J2SE和适用于企业级应用的J2EE。Sun推出J2EE的目的是为了克服传统Client/Server模式的弊病,迎合Browser/Server架构的潮流,为应用Java技术开发服务器端应用提供一个平台独立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开发、管理和部署。J2EE是一个标准,而不是一个现成的产品。各个平台开发商按照J2EE规范分别开发了不同的J2EE应用服务器,J2EE应用服务器是J2EE企业级应用的部署平台。由于它们都遵循了J2EE规范,因此,使用J2EE技术开发的企业级应用可以部署在各种J2EE应用服务器上。

为了推广并规范化使用J2EE架构企业级应用的体系架构,Sun同时给出了一个建议性的J2EE应用设计模型:J2EE Blueprints。J2EE Blueprints提供了实施J2EE企业级应用的体系架构、设计模式和相关的代码,通过应用J2EE Blueprints所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。J2EE Blueprints是开发人员设计和优化J2EE组件的基本原则,同时为围绕开发工作进行职能分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。

下面我们参照J2EE Blueprints,结合最新版的J2EE规范(J2EE 1.4),从整体上阐述如何使用J2EE架构企业级应用。

图2 使用J2EE架构企业级应用的体系架构

图2给出了使用J2EE架构企业级应用的体系架构。J2EE将组成一个完整企业级应用的不同部分纳入不同的容器(Container),每个容器中都包含若干组件(这些组件是需要部署在相应容器中的),同时各种组件都能使用各种J2EE Service/API。J2EE容器包括:
◆ Web容器 服务器端容器,包括两种组件JSP和Servlet,JSP和Servlet都是Web服务器的功能扩展,接受Web请求,返回动态的Web页面。Web容器中的组件可使用EJB容器中的组件完成复杂的商务逻辑。

◆ EJB容器 服务器端容器,包含的组件为EJB(Enterprise JavaBeans),它是J2EE的核心之一,主要用于服务器端的商业逻辑的实现。EJB规范定义了一个开发和部署分布式商业逻辑的框架,以简化企业级应用的开发,使其较容易地具备可伸缩性、可移植性、分布式事务处理、多用户和安全性等。

◆ Applet容器 客户端容器,包含的组件为Applet。Applet是嵌在浏览器中的一种轻量级客户端,一般而言,仅当使用Web页面无法充分地表现数据或应用界面的时候,才使用它。Applet是一种替代Web页面的手段,我们仅能够使用J2SE开发Applet,Applet无法使用J2EE的各种Service和API,这是为了安全性的考虑。

◆ Application Client容器 客户端容器,包含的组件为Application Client。Application Client相对Applet而言是一种较重量级的客户端,它能够使用J2EE的大多数Service和API。

通过这四个容器,J2EE能够灵活地实现前面描述的企业级应用的架构。

在View部分,J2EE提供了三种手段:Web容器中的JSP(或Servlet)、Applet和Application Client,分别能够实现面向浏览器的数据表现和面向桌面应用的数据表现。Web容器中的Servlet是实现Controller部分业务流程控制的主要手段;而EJB则主要针对Model部分的业务逻辑实现。至于与各种企业资源和企业级应用相连接,则是依靠J2EE的各种服务和API。

在J2EE的各种服务和API中,JDBC和JCA用于企业资源(各种企业信息系统和数据库等)的连接,JAX-RPC、JAXR和SAAJ则是实现Web Services和Web Services连接的基本支持。

J2EE的各种组件

我们就J2EE的各种组件、服务和API,进行更加详细的阐述,看看在开发不同类型的企业级应用时,根据各自需求和目标的不同,应当如何灵活使用并组合不同的组件和服务。

· Servlet

Servlet是Java平台上的CGI技术。Servlet在服务器端运行,动态地生成Web页面。与传统的CGI和许多其它类似CGI的技术相比,Java Servlet具有更高的效率并更容易使用。对于Servlet,重复的请求不会导致同一程序的多次转载,它是依靠线程的方式来支持并发访问的。

· JSP

JSP(Java Server Page)是一种实现普通静态HTML和动态页面输出混合编码的技术。从这一点来看,非常类似Microsoft ASP、PHP等技术。借助形式上的内容和外观表现的分离,Web页面制作的任务可以比较方便地划分给页面设计人员和程序员,并方便地通过JSP来合成。在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。

· EJB

EJB定义了一组可重用的组件:Enterprise Beans。开发人员可以利用这些组件,像搭积木一样建立分布式应用。在装配组件时,所有的Enterprise Beans都需要配置到EJB服务器(一般的Weblogic、WebSphere等J2EE应用服务器都是EJB服务器)中。EJB服务器作为容器和低层平台的桥梁管理着EJB容器,并向该容器提供访问系统服务的能力。所有的EJB实例都运行在EJB容器中。EJB容器提供了系统级的服务,控制了EJB的生命周期。EJB容器为它的开发人员代管了诸如安全性、远程连接、生命周期管理及事务管理等技术环节,简化了商业逻辑的开发。EJB中定义了三种Enterprise Beans:

◆ Session Beans

◆ Entity Beans

◆ Message-driven Beans

· JDBC

JDBC(Java Database Connectivity,Java数据库连接)API是一个标准SQL(Structured Query Language,结构化查询语言)数据库访问接口,它使数据库开发人员能够用标准Java API编写数据库应用程序。JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。Java中的JDBC相当与Microsoft平台中的ODBC(Open Database Connectivity)。

· JMS

JMS(Java Message Service,Java消息服务)是一组Java应用接口,它提供创建、发送、接收、读取消息的服务。JMS API定义了一组公共的应用程序接口和相应语法,使得Java应用能够和各种消息中间件进行通信,这些消息中间件包括IBM MQ-Series、Microsoft MSMQ及纯Java的SonicMQ。通过使用JMS API,开发人员无需掌握不同消息产品的使用方法,也可以使用统一的JMS API来操纵各种消息中间件。通过使用JMS,能够最大限度地提升消息应用的可移植性。 JMS既支持点对点的消息通信,也支持发布/订阅式的消息通信。

· JNDI

由于J2EE应用程序组件一般分布在不同的机器上,所以需要一种机制以便于组件客户使用者查找和引用组件及资源。在J2EE体系中,使用JNDI(Java Naming and Directory Interface)定位各种对象,这些对象包括EJB、数据库驱动、JDBC数据源及消息连接等。JNDI API为应用程序提供了一个统一的接口来完成标准的目录操作,如通过对象属性来查找和定位该对象。由于JNDI是独立于目录协议的,应用还可以使用JNDI访问各种特定的目录服务,如LDAP、NDS和DNS等。

· JTA

JTA(Java Transaction API)提供了J2EE中处理事务的标准接口,它支持事务的开始、回滚和提交。同时在一般的J2EE平台上,总提供一个JTS(Java Transaction Service)作为标准的事务处理服务,开发人员可以使用JTA来使用JTS。

· JCA

JCA(J2EE Connector Architecture)是J2EE体系架构的一部分,为开发人员提供了一套连接各种企业信息系统(EIS,包括ERP、SCM、CRM等)的体系架构,对于EIS开发商而言,它们只需要开发一套基于JCA的EIS连接适配器,开发人员就能够在任何的J2EE应用服务器中连接并使用它。基于JCA的连接适配器的实现,需要涉及J2EE中的事务管理、安全管理及连接管理等服务组件。

· JMX

JMX(Java Management Extensions)的前身是JMAPI。JMX致力于解决分布式系统管理的问题。JMX是一种应用编程接口、可扩展对象和方法的集合体,可以跨越各种异构操作系统平台、系统体系结构和网络传输协议,开发无缝集成的面向系统、网络和服务的管理应用。JMX是一个完整的网络管理应用程序开发环境,它同时提供了厂商需要收集的完整的特性清单、可生成资源清单表格、图形化的用户接口;访问SNMP的网络API;主机间远程过程调用;数据库访问方法等。

· JAAS

JAAS(Java Authentication and Authorization Service)实现了一个Java版本的标准Pluggable Authentication Module(PAM)的框架。JAAS可用来进行用户身份的鉴定,从而能够可靠并安全地确定谁在执行Java代码。同时JAAS还能通过对用户进行授权,实现基于用户的访问控制。

· JACC

JACC(Java Authorization Service Provider Contract for Containers)在J2EE应用服务器和特定的授权认证服务器之间定义了一个连接的协约,以便将各种授权认证服务器插入到J2EE产品中去。

· JAX-RPC

通过使用JAX-RPC(Java API for XML-based RPC),已有的Java类或Java应用都能够被重新包装,并以Web Services的形式发布。JAX-RPC提供了将RPC参数(in/out)编码和解码的API,使开发人员可以方便地使用SOAP消息来完成RPC调用。同样,对于那些使用EJB(Enterprise JavaBeans)的商业应用而言,同样可以使用JAX-RPC来包装成Web服务,而这个Web Servoce的WSDL界面是与原先的EJB的方法是对应一致的。JAX-RPC为用户包装了Web服务的部署和实现,对Web服务的开发人员而言,SOAP/WSDL变得透明,这有利于加速Web服务的开发周期。

· JAXR

JAXR(Java API for XML Registries)提供了与多种类型注册服务进行交互的API。JAXR运行客户端访问与JAXR规范相兼容的Web Servcices,这里的Web Services即为注册服务。一般来说,注册服务总是以Web Services的形式运行的。JAXR支持三种注册服务类型:JAXR Pluggable Provider、Registry-specific JAXR Provider、JAXR Bridge Provider(支持UDDI Registry和ebXML Registry/Repository等)。

· SAAJ

SAAJ(SOAP with Attachemnts API for Java)是JAX-RPC的一个增强,为进行低层次的SOAP消息操纵提供了支持。

企业级应用示例

下面我们通过假设一个企业应用的J2EE实现,来了解各种组件和服务的应用。假设应用对象是计算机产品的生产商/零售商的销售系统,这个销售系统能够通过自己的网站发布产品信息,同时也能将产品目录传送给计算机产品交易市场。销售系统能够在线接受订单(来自自己的Web网站或者来自计算机产品交易市场),并随后转入内部企业管理系统进行相关的后续处理。

参见图3,这个企业应用可以这种方式架构。该企业应用的核心是产品目录管理和产品定购管理这两个业务逻辑,使用EJB加以实现,并部署在EJB容器中。由于产品目录和定购信息都需要持久化,因此使用JDBC连接数据库,并使用JTA来完成数据库存取事务。

图3 J2EE应用示例

然后使用JSP/Servlet来实现应用的Web表现:在线产品目录浏览和在线定购。为了将产品目录发送给特定的交易市场,使用JMS实现异步的基于消息的产品目录传输。为了使得更多的其它外部交易市场能够集成产品目录和定购业务,需要使用Web Services技术包装商业逻辑的实现。由于产品定购管理需要由公司内部雇员进行处理,因此需要集成公司内部的用户系统和访问控制服务以方便雇员的使用,使用JACC集成内部的访问控制服务,使用JNDI集成内部的用户目录,并使用JAAS进行访问控制。由于产品订购事务会触发后续的企业ERP系统的相关操作(包括仓储、财务、生产等),需要使用JCA连接企业ERP。

最后为了将这个应用纳入到企业整体的系统管理体系中去,使用Application Client架构了一个管理客户端(与其它企业应用管理应用部署在一台机器上),并通过JMX管理这个企业应用。

  • 鍏充簬J2EE鐨闂
    绛旓細J2EE骞冲彴涓昏灏辨槸鍒╃敤Java2骞冲彴鐨勬爣鍑嗙増鏉ヤ负褰撳墠鐨勪紒涓氱骇搴旂敤鎻愪緵瑙e喅鏂规鐨勮璁★紝寮鍙戯紝瑁呴厤鍜岄儴缃诧紝骞跺畾涔変簡涓缁勬牳蹇傾PI鏍囧噯鐨勬帴鍙c侸2EE瑙勮寖锛屾湁鐩稿簲鐨勬妧鏈鑼冨苟瀵笰PI杩涜浜嗚В閲婏紱鍙傝冨疄鐜板垯鏄鍏充簬J2EE骞冲彴璇硶鐨勬纭寖渚嬶紱鍏煎鎬ф祴璇曞浠跺彲浠ヤ娇涓嶅悓J2EE鐗堟湰鐨勪骇鍝佸彲浠ヨ繍琛岀殑绋嬪簭锛汮2EE钃濆浘鍒欐槸鎻愪緵浜嗗熀浜...
  • 鎴戣鎻愰棶鍏充簬j2ee鍖呴噷鐨勫熀纭绫绘湁鍝簺?
    绛旓細j2ee J2EE Java2骞冲彴浼佷笟鐗堬紙Java 2 Platform,Enterprise Edition锛塉2EE鏄竴濂楀叏鐒朵笉鍚屼簬浼犵粺搴旂敤寮鍙戠殑鎶鏈灦鏋勶紝鍖呭惈璁稿缁勪欢锛屼富瑕佸彲绠鍖栦笖瑙勮寖搴旂敤绯荤粺鐨勫紑鍙戜笌閮ㄧ讲锛岃繘鑰屾彁楂樺彲绉绘鎬с佸畨鍏ㄤ笌鍐嶇敤浠峰笺侸2EE鏍稿績鏄竴缁勬妧鏈鑼冧笌鎸囧崡锛屽叾涓墍鍖呭惈鐨勫悇绫荤粍浠躲佹湇鍔℃灦鏋勫強鎶鏈眰娆★紝鍧囨湁鍏遍氱殑鏍囧噯鍙婅鏍...
  • 浠ヤ笅鍏充簬.NET鏋舵瀯鍜J2EE鏋舵瀯鐨勫彊杩颁腑,( )鏄纭殑銆
    绛旓細銆愮瓟妗堛戯細C .NET闄ら傜敤浜嶹indows 鎿嶄綔绯荤粺骞冲彴涓婄殑杞欢寮鍙戝锛屾棭鍦2004骞5鏈6鏃ワ紝Novell鍙戝竷浜嗗紑婧愯蒋浠惰鍒掆淢ono鈥濈殑娴嬭瘯鐗堬紝杩欎釜杞欢鑳藉鍦↙inux鍜孶nix骞冲彴涓婇噸鏂板垱寤哄井杞殑.Net妗嗘灦銆傚洜姝わ紝閫夐」A鏄敊璇殑銆J2EE鏄竴涓法骞冲彴鐨勫紑鍙戞灦鏋勶紝涓嶇鏄疻indows鎿嶄綔绯荤粺骞冲彴锛岃繕鏄潪Windows鎿嶄綔绯荤粺骞冲彴锛岄兘閫傜敤...
  • 浠ヤ笅鍏充簬NET鏋舵瀯鍜J2EE鏋舵瀯鍙欒堪涓,()鏄纭
    绛旓細銆愮瓟妗堛戯細A J2EE鏄敱Sun鍏徃涓诲銆佸悇鍘傚晢鍏卞悓鍒跺畾骞跺緱鍒板箍娉涜鍙伐涓氭爣鍑嗐.NET鏄熀浜庝竴缁勫紑鍙戜簰鑱旂綉鍗忚鑰屾帹鍑轰竴绯诲垪浜у搧銆佹妧鏈拰鏈嶅姟銆備紶缁焀indows搴旂敤鏄.NET涓笉鍙垨缂轰竴閮ㄥ垎锛屽洜姝わ紝.NET鏈川涓婃槸鍩轰簬Windows鎿嶄綔绯荤粺骞冲彴銆侫SP.NET鏄.NET涓綉缁滅紪绋嬬粨鏋勶紝鍙互鏂逛究銆侀珮鏁堝湴鏋勫缓銆佽繍琛屽拰鍙戝竷缃戠粶搴旂敤銆傚湪...
  • 鍏充簬J2EE
    绛旓細j2ee鏄痡ava浼佷笟鐗堬紝鍏跺疄灏辨槸涓轰簡瀹炵幇浼佷笟搴旂敤鐨勫钩鍙帮紝璇ュ钩鍙颁腑鍖呭惈浜嗕竴绯诲垪鐨勬妧鏈紝涓昏鐨勬湁锛歫ava銆乯dbc銆乯sp銆乯avabean銆乻sh妗嗘灦鍜宎jax銆傚湪璇ュ钩鍙颁腑鎵浣跨敤鐨勮瑷鏄痡ava璇█锛屽紑鍙戝伐鍏锋湁寰堝锛屽父鐢ㄧ殑姣斿锛欵clipse鍜孨etBeans銆
  • J2EE妗嗘灦(Struts&Hibernate&Spring)鐨勭悊瑙
    绛旓細SSH锛歋truts锛堣〃绀哄眰锛+Spring锛堜笟鍔″眰锛+Hibernate锛堟寔涔呭眰锛塖truts锛歋truts鏄竴涓〃绀哄眰妗嗘灦锛屼富瑕佷綔鐢ㄦ槸鐣岄潰灞曠ず锛屾帴鏀惰姹傦紝鍒嗗彂璇锋眰銆傚湪MVC妗嗘灦涓紝Struts灞炰簬VC灞傛锛岃礋璐g晫闈㈣〃鐜帮紝璐熻矗MVC鍏崇郴鐨勫垎鍙戙傦紙View锛氭部鐢↗SP锛孒TTP锛孎orm锛孴ag锛孯esourse 锛汣ontroller锛欰ctionServlet锛宻truts-config.xml锛孉ction...
  • 鍏充簬J2EE鐨鍑犱釜闂
    绛旓細鍏充簬J2EE鐨鍑犱釜闂 璇风敤涔︽湰鍘熸枃(鎴栨瘮杈冩寮忕殑璇█)鍥炵瓟涓嬪垪闂,璋㈢粷鍙h璇濆洖绛1.HQL鐨勬蹇2.绠杩癕VC鍚勪釜妯″潡鏈夊摢浜涙妧鏈疄鐜,濡備綍瀹炵幇3.Modell鍜孧odell2鐨勬ā寮忓垎鍒噰鐢ㄤ粈涔堟妧鏈疄鐜?绠杩颁袱鑰呯殑鍖哄埆... 璇风敤涔︽湰鍘熸枃(鎴栨瘮杈冩寮忕殑璇█)鍥炵瓟涓嬪垪闂,璋㈢粷鍙h璇濆洖绛1.HQL鐨勬蹇2.绠杩癕VC鍚勪釜妯″潡鏈夊摢浜涙妧鏈疄鐜,濡備綍...
  • J2EE闂(鍏充簬hibernate鍜孞PA)
    绛旓細Hibernate鏄竴涓紑鏀炬簮浠g爜鐨勫璞″叧绯绘槧灏勬鏋讹紝瀹冨JDBC杩涜浜嗛潪甯歌交閲忕骇鐨勫璞″皝瑁咃紝浣垮緱Java绋嬪簭鍛樺彲浠ラ殢蹇冩墍娆茬殑浣跨敤瀵硅薄缂栫▼鎬濈淮鏉ユ搷绾垫暟鎹簱銆 Hibernate鍙互搴旂敤鍦ㄤ换浣曚娇鐢↗DBC鐨勫満鍚堬紝鏃㈠彲浠ュ湪Java鐨勫鎴风绋嬪簭瀹炵敤锛屼篃鍙互鍦⊿ervlet/JSP鐨刉eb搴旂敤涓娇鐢紝鏈鍏烽潻鍛芥剰涔夌殑鏄紝Hibernate鍙互鍦ㄥ簲鐢‥JB鐨J2EE...
  • J2EE璺焥truts2鏄竴鏍风殑鍚?
    绛旓細涓よ呮槸鏈夊樊鍒殑銆J2EE鏄寚鐨勬暣涓殑java鐨刉EB搴旂敤妗嗘灦銆傝繖涓瘮Struts鐨勬墍娑电洊鐨勮寖鍥磋澶у緱澶氥係tructs鍙槸閽堝java鐨凷ervlet閮ㄥ垎杩涜浜嗗皝瑁咃紝涔熷氨鏄祻瑙堝櫒瀹㈡埛绔笌鏈嶅姟鍣ㄦ湇鍔$锛屼袱鑰呰繘琛屼氦浜掔殑閮ㄥ垎锛岃繖涓ぇ浣撹鏉ュ氨鏄細涓鏄綉椤靛彂鍑虹殑璇锋眰锛岃皟鐢ㄦ湇鍔$鐨勫鐞嗕笟鍔¢昏緫鐨刯ava绋嬪簭銆備簩鏄綉椤甸棿鐨勮烦杞佺綉椤电殑...
  • JDK鏄暐?J2EE鏄暐?
    绛旓細鏌愬垵瀛AVA,鍏充簬JDKandJ2EE杩樹笉鏅撳緱鏄暐鐜╂剰,鏈涙煇澶ц櫨鍛婄煡涓涓嬨傝阿璋㈠暒銆... 鏌愬垵瀛AVA,鍏充簬JDK and J2EE 杩樹笉鏅撳緱鏄暐鐜╂剰,鏈涙煇澶ц櫨鍛婄煡涓涓嬨傝阿璋㈠暒銆 灞曞紑  鎴戞潵绛 3涓洖绛 #鐑# 鏅氳垷蹇呭綊鏄潕鐧界殑璇楀悧?鍖垮悕鐢ㄦ埛 2013-11-11 灞曞紑鍏ㄩ儴 JDK(Java Development Kit)鏄疭un Microsystems閽堝Java寮鍙...
  • 扩展阅读:www.sony.com.cn ... xj22.cn ... 日本资生堂色谱柱 ... java是干什么的 ... e人e本a2 ... www.vivo.com ... 17173.com ... j2ee架构图解 ... java j2ee ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网