{"id":31317,"date":"2023-11-05T20:21:36","date_gmt":"2022-09-09T22:20:09","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/"},"modified":"2025-08-12T23:25:06","modified_gmt":"2025-08-12T15:25:06","slug":"java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/","title":{"rendered":"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3"},"content":{"rendered":"<h1>\u603b\u7ed3\u6211\u6574\u7406\u4e86\u4f7f\u7528\u5728http:\/\/java-source.net\/open-source\/web-testing-tools\u4e2d\u63d0\u5230\u7684\u6d4b\u8bd5\u5de5\u5177\u8fdb\u884c\u6d4b\u8bd5\u7684\u65b9\u6cd5\u3002<\/p>\n<h1>HtmlUnit\u662f\u4e00\u4e2aJava\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u6846\u67b6\uff0c\u5b83\u53ef\u4ee5\u6a21\u62df\u6d4f\u89c8\u5668\u884c\u4e3a\u5e76\u4e0e\u7f51\u9875\u8fdb\u884c\u4ea4\u4e92\u3002\u611f\u89c9\u4e0d\u9519<\/p>\n<pre class=\"post-pre\"><code><span class=\"nd\">@Test<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">homePage<\/span><span class=\"o\">()<\/span> <span class=\"kd\">throws<\/span> <span class=\"nc\">Exception<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"kd\">final<\/span> <span class=\"nc\">WebClient<\/span> <span class=\"n\">webClient<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">WebClient<\/span><span class=\"o\">();<\/span>\r\n    <span class=\"kd\">final<\/span> <span class=\"nc\">HtmlPage<\/span> <span class=\"n\">page<\/span> <span class=\"o\">=<\/span> <span class=\"n\">webClient<\/span><span class=\"o\">.<\/span><span class=\"na\">getPage<\/span><span class=\"o\">(<\/span><span class=\"s\">\"http:\/\/htmlunit.sourceforge.net\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"nc\">Assert<\/span><span class=\"o\">.<\/span><span class=\"na\">assertEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"HtmlUnit - Welcome to HtmlUnit\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">page<\/span><span class=\"o\">.<\/span><span class=\"na\">getTitleText<\/span><span class=\"o\">());<\/span>\r\n\r\n    <span class=\"kd\">final<\/span> <span class=\"nc\">String<\/span> <span class=\"n\">pageAsXml<\/span> <span class=\"o\">=<\/span> <span class=\"n\">page<\/span><span class=\"o\">.<\/span><span class=\"na\">asXml<\/span><span class=\"o\">();<\/span>\r\n    <span class=\"nc\">Assert<\/span><span class=\"o\">.<\/span><span class=\"na\">assertTrue<\/span><span class=\"o\">(<\/span><span class=\"n\">pageAsXml<\/span><span class=\"o\">.<\/span><span class=\"na\">contains<\/span><span class=\"o\">(<\/span><span class=\"s\">\"&lt;body class=\\\"composite\\\"&gt;\"<\/span><span class=\"o\">));<\/span>\r\n\r\n    <span class=\"kd\">final<\/span> <span class=\"nc\">String<\/span> <span class=\"n\">pageAsText<\/span> <span class=\"o\">=<\/span> <span class=\"n\">page<\/span><span class=\"o\">.<\/span><span class=\"na\">asText<\/span><span class=\"o\">();<\/span>\r\n    <span class=\"nc\">Assert<\/span><span class=\"o\">.<\/span><span class=\"na\">assertTrue<\/span><span class=\"o\">(<\/span><span class=\"n\">pageAsText<\/span><span class=\"o\">.<\/span><span class=\"na\">contains<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Support for the HTTP and HTTPS protocols\"<\/span><span class=\"o\">));<\/span>\r\n\r\n    <span class=\"n\">webClient<\/span><span class=\"o\">.<\/span><span class=\"na\">closeAllWindows<\/span><span class=\"o\">();<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<h1>\u9a6c\u514b\u65afQ\u7531\u4e8e\u5b83\u662f\u4ee3\u7406\u7c7b\u578b\u7684\uff0c\u6240\u4ee5\u7565\u53bb\u4e0d\u63d0\u3002<\/p>\n<h1>jWebUnit \u662f\u4e00\u4e2a\u7528\u4e8e\u6784\u5efa Web \u5e94\u7528\u7a0b\u5e8f\u81ea\u52a8\u5316\u6d4b\u8bd5\u7684 Java \u6846\u67b6\u3002\u5f88\u6709DSL\u7684\u611f\u89c9\uff0c\u5f88\u4e0d\u9519\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">org.junit.*<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">static<\/span> <span class=\"n\">net<\/span><span class=\"o\">.<\/span><span class=\"na\">sourceforge<\/span><span class=\"o\">.<\/span><span class=\"na\">jwebunit<\/span><span class=\"o\">.<\/span><span class=\"na\">junit<\/span><span class=\"o\">.<\/span><span class=\"na\">JWebUnit<\/span><span class=\"o\">.*;<\/span>\r\n\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">ExampleWebTestCase<\/span> <span class=\"o\">{<\/span>\r\n\r\n    <span class=\"nd\">@Before<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">prepare<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">setBaseUrl<\/span><span class=\"o\">(<\/span><span class=\"s\">\"http:\/\/localhost:8080\/test\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"nd\">@Test<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">testLogin<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">beginAt<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\/home\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">clickLink<\/span><span class=\"o\">(<\/span><span class=\"s\">\"login\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">assertTitleEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Login\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">setTextField<\/span><span class=\"o\">(<\/span><span class=\"s\">\"username\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"test\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">setTextField<\/span><span class=\"o\">(<\/span><span class=\"s\">\"password\"<\/span><span class=\"o\">,<\/span> <span class=\"s\">\"test123\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"n\">submit<\/span><span class=\"o\">();<\/span>\r\n        <span class=\"n\">assertTitleEquals<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Welcome, test!\"<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<h1>HttpUnit<br \/>\n\u611f\u89c9\u4e0d\u9519\u3002<\/p>\n<pre class=\"post-pre\"><code>    <span class=\"nc\">WebConversation<\/span> <span class=\"n\">wc<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">WebConversation<\/span><span class=\"o\">();<\/span>\r\n    <span class=\"nc\">WebResponse<\/span>   <span class=\"n\">resp<\/span> <span class=\"o\">=<\/span> <span class=\"n\">wc<\/span><span class=\"o\">.<\/span><span class=\"na\">getResponse<\/span><span class=\"o\">(<\/span> <span class=\"s\">\"http:\/\/www.httpunit.org\/doc\/cookbook.html\"<\/span> <span class=\"o\">);<\/span> <span class=\"c1\">\/\/ read this page<\/span>\r\n    <span class=\"nc\">WebLink<\/span>       <span class=\"n\">link<\/span> <span class=\"o\">=<\/span> <span class=\"n\">resp<\/span><span class=\"o\">.<\/span><span class=\"na\">getLinkWith<\/span><span class=\"o\">(<\/span> <span class=\"s\">\"response\"<\/span> <span class=\"o\">);<\/span>                                <span class=\"c1\">\/\/ find the link<\/span>\r\n    <span class=\"n\">link<\/span><span class=\"o\">.<\/span><span class=\"na\">click<\/span><span class=\"o\">();<\/span>                                                                       <span class=\"c1\">\/\/ follow it<\/span>\r\n    <span class=\"nc\">WebResponse<\/span>   <span class=\"n\">jdoc<\/span> <span class=\"o\">=<\/span> <span class=\"n\">wc<\/span><span class=\"o\">.<\/span><span class=\"na\">getCurrentPage<\/span><span class=\"o\">();<\/span>                                           <span class=\"c1\">\/\/ retrieve the referenced page<\/span>\r\n<\/code><\/pre>\n<h1>Canoo WebTest\u72ec\u8f6e\u8f66\u7f51\u9875\u6d4b\u8bd5<\/p>\n<p>XML\u662f\u4ec0\u4e48\u554a&#8230;\u542c\u8d77\u6765\u6709\u70b9\u56f0\u96be\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nt\">&lt;project<\/span> <span class=\"na\">default=<\/span><span class=\"s\">\"test\"<\/span><span class=\"nt\">&gt;<\/span>\r\n <span class=\"nt\">&lt;target<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"test\"<\/span><span class=\"nt\">&gt;<\/span>\r\n\r\n  <span class=\"nt\">&lt;webtest<\/span> \r\n       <span class=\"na\">name=<\/span><span class=\"s\">\"check that WebTest is Google's top 'WebTest' result\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    <span class=\"nt\">&lt;invoke<\/span> <span class=\"na\">url=<\/span><span class=\"s\">\"http:\/\/www.google.com\/ncr\"<\/span> \r\n            <span class=\"na\">description=<\/span><span class=\"s\">\"Go to Google (in English)\"<\/span><span class=\"nt\">\/&gt;<\/span>\r\n    <span class=\"nt\">&lt;verifyTitle<\/span> <span class=\"na\">text=<\/span><span class=\"s\">\"Google\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n    <span class=\"nt\">&lt;setInputField<\/span> <span class=\"na\">name=<\/span><span class=\"s\">\"q\"<\/span> <span class=\"na\">value=<\/span><span class=\"s\">\"WebTest\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n    <span class=\"nt\">&lt;clickButton<\/span> <span class=\"na\">label=<\/span><span class=\"s\">\"I'm Feeling Lucky\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n    <span class=\"nt\">&lt;verifyTitle<\/span> <span class=\"na\">text=<\/span><span class=\"s\">\"Canoo WebTest\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n  <span class=\"nt\">&lt;\/webtest&gt;<\/span>\r\n\r\n <span class=\"nt\">&lt;\/target&gt;<\/span>\r\n<span class=\"nt\">&lt;\/project&gt;<\/span>\r\n<\/code><\/pre>\n<h1>JMeter\u8fd9\u662f\u4e00\u4e2a\u8d1f\u8f7d\u6d4b\u8bd5\u3002<\/p>\n<h1>\u8f7d\u5165\u6a21\u62df\u8fdb\u884c\u4e86\u8d1f\u8f7d\u6d4b\u8bd5\u3002<\/p>\n<h1>\u62c9\u514b\u5854\u94fe\u63a5\u5931\u6548\u3002<\/p>\n<h1>\u6545\u4e8b\u6d4b\u8bd5MQ\u4f7f\u7528Selenium\u3002<\/p>\n<h1>It can be paraphrased in Chinese as &#8220;\u7626\u72d7&#8221; .\u94fe\u63a5\u5931\u6548\u3002<\/p>\n<h1>\u51c6\u8bb8\u5370\u5237\u94fe\u63a5\u5931\u6548\u3002<\/p>\n<h1>\u82d7\u6761\u7684\u94fe\u63a5\u5931\u6548\u3002<\/p>\n<h1>\u7852<\/p>\n<pre class=\"post-pre\"><code><span class=\"nc\">WebDriver<\/span> <span class=\"n\">driver<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">InternetExplorerDriver<\/span><span class=\"o\">();<\/span>\r\n<span class=\"n\">driver<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"s\">\"http:\/\/www.google.com\"<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">driver<\/span><span class=\"o\">.<\/span><span class=\"na\">findElement<\/span><span class=\"o\">(<\/span><span class=\"nc\">By<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">(<\/span><span class=\"s\">\"q\"<\/span><span class=\"o\">)).<\/span><span class=\"na\">sendKeys<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Selenium\"<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">driver<\/span><span class=\"o\">.<\/span>\r\n<\/code><\/pre>\n<h1>Watij (\u54c7\u63d0)<br \/>\n\u597d\u50cf\u4e0d\u9519\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"nc\">WebSpec<\/span> <span class=\"n\">spec<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">WebSpec<\/span><span class=\"o\">().<\/span><span class=\"na\">mozilla<\/span><span class=\"o\">();<\/span>\r\n<span class=\"n\">spec<\/span><span class=\"o\">.<\/span><span class=\"na\">open<\/span><span class=\"o\">(<\/span><span class=\"s\">\"http:\/\/www.google.com\"<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">spec<\/span><span class=\"o\">.<\/span><span class=\"na\">find<\/span><span class=\"o\">.<\/span><span class=\"na\">input<\/span><span class=\"o\">().<\/span><span class=\"na\">with<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">(<\/span><span class=\"s\">\"q\"<\/span><span class=\"o\">).<\/span><span class=\"na\">set<\/span><span class=\"o\">.<\/span><span class=\"na\">value<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Watij\"<\/span><span class=\"o\">);<\/span>\r\n<span class=\"n\">spec<\/span><span class=\"o\">.<\/span><span class=\"na\">find<\/span><span class=\"o\">.<\/span><span class=\"na\">input<\/span><span class=\"o\">().<\/span><span class=\"na\">with<\/span><span class=\"o\">.<\/span><span class=\"na\">type<\/span><span class=\"o\">(<\/span><span class=\"s\">\"button\"<\/span><span class=\"o\">).<\/span><span class=\"na\">with<\/span><span class=\"o\">.<\/span><span class=\"na\">value<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Google Search\"<\/span><span class=\"o\">).<\/span><span class=\"na\">click<\/span><span class=\"o\">();<\/span>\r\n<span class=\"c1\">\/\/check results<\/span>\r\n<span class=\"n\">spec<\/span><span class=\"o\">.<\/span><span class=\"na\">find<\/span><span class=\"o\">.<\/span><span class=\"na\">a<\/span><span class=\"o\">().<\/span><span class=\"na\">with<\/span><span class=\"o\">.<\/span><span class=\"na\">href<\/span><span class=\"o\">(<\/span><span class=\"s\">\"http:\/\/watij.com\/\"<\/span><span class=\"o\">).<\/span><span class=\"na\">shouldExist<\/span><span class=\"o\">();<\/span>\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u603b\u7ed3\u6211\u6574\u7406\u4e86\u4f7f\u7528\u5728http:\/\/java-source.net\/open-source\/web-testing [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[227],"class_list":["post-31317","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-227"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3 - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"\u5173\u4e8e[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/java\u6d4b\u8bd5-java-web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\" \/>\n<meta property=\"og:description\" content=\"\u5173\u4e8e[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\u7684\u6280\u672f\u6587\u7ae0\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/java\u6d4b\u8bd5-java-web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-09-09T22:20:09+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-12T15:25:06+00:00\" \/>\n<meta name=\"author\" content=\"\u5b87, \u534e\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u5b87, \u534e\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/\",\"name\":\"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-09-09T22:20:09+00:00\",\"dateModified\":\"2025-08-12T15:25:06+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458\"},\"description\":\"\u5173\u4e8e[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\u7684\u6280\u672f\u6587\u7ae0\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458\",\"name\":\"\u5b87, \u534e\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g\",\"caption\":\"\u5b87, \u534e\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yuhua\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3 - Blog - Silicon Cloud","description":"\u5173\u4e8e[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\u7684\u6280\u672f\u6587\u7ae0","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/java\u6d4b\u8bd5-java-web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\/","og_locale":"zh_CN","og_type":"article","og_title":"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3","og_description":"\u5173\u4e8e[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\u7684\u6280\u672f\u6587\u7ae0","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/java\u6d4b\u8bd5-java-web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-09-09T22:20:09+00:00","article_modified_time":"2025-08-12T15:25:06+00:00","author":"\u5b87, \u534e","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u5b87, \u534e","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"1 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/","name":"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-09-09T22:20:09+00:00","dateModified":"2025-08-12T15:25:06+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458"},"description":"\u5173\u4e8e[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3\u7684\u6280\u672f\u6587\u7ae0","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"[Java][\u6d4b\u8bd5] Java Web\u6d4b\u8bd5\u5de5\u5177\u8bed\u6cd5\u603b\u7ed3"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/513018e4e121d3add1b7c5de8be21458","name":"\u5b87, \u534e","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/63cd45cbc05a35fc4ff7637a163c83c4962ef58d27472726c3a3e0c9c5194f0f?s=96&d=mm&r=g","caption":"\u5b87, \u534e"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yuhua\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/java%e6%b5%8b%e8%af%95-java-web%e6%b5%8b%e8%af%95%e5%b7%a5%e5%85%b7%e8%af%ad%e6%b3%95%e6%80%bb%e7%bb%93\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/31317","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=31317"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/31317\/revisions"}],"predecessor-version":[{"id":111927,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/31317\/revisions\/111927"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=31317"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=31317"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=31317"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}