{"id":1352,"date":"2023-04-18T21:40:07","date_gmt":"2023-04-18T12:40:07","guid":{"rendered":"http:\/\/edu.ujhb.org\/?p=1352"},"modified":"2023-04-18T21:40:07","modified_gmt":"2023-04-18T12:40:07","slug":"struts%e5%85%a5%e9%96%80%ef%bc%88%e6%97%a5%e6%9c%ac%e8%aa%9e%e7%89%88%ef%bc%89","status":"publish","type":"post","link":"https:\/\/edu.ujhb.org\/?p=1352","title":{"rendered":"Struts\u5165\u9580\uff08\u65e5\u672c\u8a9e\u7248\uff09"},"content":{"rendered":"\n<p>IT\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u30d3\u30c7\u30aa\u3092\u3084\u308a\u305f\u3044\u306e\u3067\u3059\u304c\u3001\u30a6\u30a7\u30d6\u30b5\u30a4\u30c8\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306b\u5fdc\u3058\u3066\u30d3\u30c7\u30aa\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u30c6\u30ad\u30b9\u30c8\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u914d\u7f6e\u3057\u3066\u3044\u305f\u3060\u3051\u307e\u3059\u304b\u3002 Struts\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u304b\u3089\u59cb\u3081\u307e\u3057\u3087\u3046\u3001\u305d\u3057\u3066\u3042\u306a\u305f\u306f\u79c1\u306b\u30ab\u30d0\u30fc\u3059\u308b\u3082\u306e\u306e\u30ea\u30b9\u30c8\u3092\u4e0e\u3048\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u3082\u3061\u308d\u3093\u3067\u3059\uff01 \u4ee5\u4e0b\u306f\u3001Struts \u30d9\u30fc\u30b9\u306e IT \u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30d3\u30c7\u30aa\u30b7\u30ea\u30fc\u30ba\u306e\u6982\u8981\u3067\u3059\u3002 \u3053\u306e\u6982\u8981\u306b\u57fa\u3065\u3044\u3066\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30d3\u30c7\u30aa\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b9\u30c8\u30e9\u30c3\u30c8\u5165\u9580 1.1. \u30b9\u30c8\u30e9\u30c3\u30c81.2\u3068\u306f\u4f55\u3067\u3059\u304b\u3002 \u30b9\u30c8\u30e9\u30c3\u30c81.3\u306e\u6b74\u53f2\u3068\u767a\u5c55\u3002 \u30b9\u30c8\u30e9\u30c3\u30c8\u306e\u5229\u70b9\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b7\u30ca\u30ea\u30aa<\/li>\n\n\n\n<li>\u30b9\u30c8\u30e9\u30c3\u30c8\u30b3\u30a2\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8 2.1. \u30a2\u30af\u30b7\u30e7\u30f3\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8 2.2. \u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb (struts-config.xml) 2.3. \u30d5\u30a9\u30fc\u30e0Bean(\u30a2\u30af\u30b7\u30e7\u30f3\u30d5\u30a9\u30fc\u30e0) 2.4. \u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u51e6\u7406(\u30a2\u30af\u30b7\u30e7\u30f3) 2.5. \u30d3\u30e5\u30fc (JSP)<\/li>\n\n\n\n<li>Struts \u958b\u767a\u74b0\u5883\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7 3.1. JDK \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a 3.2. Eclipse IDE \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a 3.3. Tomcat \u30b5\u30fc\u30d0\u30fc\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a 3.4. Struts \u30e9\u30a4\u30d6\u30e9\u30ea\u30d5\u30a1\u30a4\u30eb\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3068\u30a4\u30f3\u30dd\u30fc\u30c8<\/li>\n\n\n\n<li>\u6700\u521d\u306e\u30b9\u30c8\u30e9\u30c3\u30c8\u30d7\u30ed\u30b0\u30e9\u30e0 4.1. \u5358\u7d14\u306a Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b 4.2. \u30af\u30e9\u30b9\u3092\u66f8\u304f 4.3. \u30a2\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u3092\u66f8\u304f 4.4. JSP \u30da\u30fc\u30b8\u306e\u4f5c\u6210 4.5. \u30b9\u30c8\u30e9\u30c3\u30c8\u8a2d\u5b9a\u306e\u8a2d\u5b9a.xml 4.6. \u30b3\u30f3\u30d1\u30a4\u30eb\u3001\u914d\u7f6e\u3001\u304a\u3088\u3073\u30c6\u30b9\u30c8<\/li>\n\n\n\n<li>\u30b9\u30c8\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u306e\u691c\u8a3c 5.1. Struts \u306e\u7d44\u307f\u8fbc\u307f\u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af 5.2 \u306e\u7d39\u4ecb\u3002 \u30d0\u30ea\u30c7\u30fc\u30bf\u3092\u66f8\u304f 5.3. \u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb\u30d5\u30a1\u30a4\u30eb\u306e\u8a2d\u5b9a (\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3.xml) 5.4. \u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u56fd\u969b\u5316<\/li>\n\n\n\n<li>\u30b9\u30c8\u30e9\u30c3\u30c8\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea 6.1. Struts \u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u6982\u8981 6.2. \u4e00\u822c\u7684\u306a\u30b9\u30c8\u30e9\u30c3\u30c8\u30bf\u30b0\u306e\u4f7f\u7528\u4f8b 6.3. \u30b9\u30c8\u30e9\u30c3\u30c8\u30e9\u30d9\u30eb\u306e\u30ab\u30b9\u30bf\u30de\u30a4\u30ba<\/li>\n\n\n\n<li>\u30b9\u30c8\u30e9\u30c3\u30c8\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc 7.1. \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u5165\u9580 7.2. \u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u4f5c\u6210 7.3. \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30c1\u30a7\u30fc\u30f3\u3092\u69cb\u6210\u3059\u308b<\/li>\n\n\n\n<li>\u30b9\u30c8\u30e9\u30c3\u30c8\u3068\u30a8\u30a4\u30b8\u30e3\u30c3\u30af\u30b9 8.1. Ajax 8.2 \u306e\u6982\u8981\u3002 Struts \u3068 Ajax 8.3 \u306e\u7d71\u5408\u3002 Ajax \u306e\u4f8b\u3092\u5b9f\u88c5\u3059\u308b<\/li>\n\n\n\n<li>\u5b9f\u4f8b:\u5358\u7d14\u306aCRUD\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 9.1. \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8981\u4ef6\u5206\u6790 9.2. \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a2d\u8a08\u3068\u69cb\u7bc9 9.3. ActionForm\u3001Action\u3001\u304a\u3088\u3073 JSP \u30da\u30fc\u30b8\u306e\u5b9f\u88c5 9.4. \u30c7\u30fc\u30bf \u30a2\u30af\u30bb\u30b9\u5c64 (DAO) \u306e\u5b9f\u88c5 9.5. \u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u5c64\u3092\u5b9f\u88c5\u3059\u308b (\u30b5\u30fc\u30d3\u30b9)<\/li>\n\n\n\n<li>\u30b9\u30c8\u30e9\u30c3\u30c8\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9 10.1. \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u69cb\u9020\u3068\u547d\u540d\u898f\u5247 10.2. \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u63a8\u5968\u4e8b\u9805 10.3. \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306b\u95a2\u3059\u308b\u63a8\u5968\u4e8b\u9805<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u6982\u8981\u304c\u3001\u9ad8\u54c1\u8cea\u306eStruts\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u30d3\u30c7\u30aa\u306e\u4f5c\u6210\u306b\u5f79\u7acb\u3064\u3053\u3068\u3092\u9858\u3063\u3066\u3044\u307e\u3059\u3002 \u3082\u3057\u3042\u308c\u3070<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30b9\u30c8\u30e9\u30c3\u30c8\u3068\u306f\u4f55\u304b\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u306f\u3001Apache Software Foundation \u306b\u3088\u3063\u3066\u4fdd\u5b88\u304a\u3088\u3073\u958b\u767a\u3055\u308c\u305f\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u306e Java Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3059\u3002 MVC(\u30e2\u30c7\u30eb\u30d3\u30e5\u30fc\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9)\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u3092\u63a1\u7528\u3057\u3066\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3068\u4fdd\u5b88\u3092\u7c21\u7d20\u5316\u3057\u307e\u3059\u3002 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u6a5f\u80fd\u8c4a\u5bcc\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u30bb\u30c3\u30c8\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u304c\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u3067\u4fdd\u5b88\u53ef\u80fd\u306a Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8fc5\u901f\u306b\u69cb\u7bc9\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<p>MVC \u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u306e 3 \u3064\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306f\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u5177\u4f53\u5316\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e2\u30c7\u30eb: \u30e2\u30c7\u30eb\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3068\u30c7\u30fc\u30bf\u3092\u8868\u3057\u307e\u3059\u3002 Struts \u3067\u306f\u3001\u30e2\u30c7\u30eb\u306f\u901a\u5e38\u3001JavaBean\u3001POJO (Plain Old Java Object)\u3001\u304a\u3088\u3073\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30fb\u30a2\u30af\u30bb\u30b9\u30fb\u30ec\u30a4\u30e4\u30fc\u3067\u69cb\u6210\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d3\u30e5\u30fc: \u30d3\u30e5\u30fc\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u306b\u30c7\u30fc\u30bf\u3092\u8868\u793a\u3059\u308b\u5f79\u5272\u3092\u62c5\u3044\u307e\u3059\u3002 Struts \u3067\u306f\u3001\u30d3\u30e5\u30fc\u306f\u901a\u5e38\u3001JSP (JavaServer Pages) \u30da\u30fc\u30b8\u3001HTML\u3001CSS\u3001JavaScript \u306a\u3069\u306e\u30d5\u30ed\u30f3\u30c8\u30a8\u30f3\u30c9\u6280\u8853\u306b\u3088\u3063\u3066\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc: \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u306e\u51e6\u7406\u3068\u30e2\u30c7\u30eb\u306e\u66f4\u65b0\u3092\u62c5\u5f53\u3057\u307e\u3059\u3002 Struts \u3067\u306f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306f ActionServlet \u3068 Action \u30af\u30e9\u30b9\u3067\u69cb\u6210\u3055\u308c\u307e\u3059\u3002 ActionServlet \u306f\u30e6\u30fc\u30b6\u30fc\u306e\u8981\u6c42\u3092\u53d7\u4fe1\u3057\u3001\u8981\u6c42\u3092\u9069\u5207\u306a Action \u30af\u30e9\u30b9\u306b\u914d\u5e03\u3057\u3001\u9069\u5207\u306a Action \u30af\u30e9\u30b9\u306f\u8981\u6c42\u3092\u51e6\u7406\u3057\u3066\u30e2\u30c7\u30eb\u3092\u66f4\u65b0\u3057\u3001\u6700\u5f8c\u306b\u51e6\u7406\u7d50\u679c\u3092\u30d3\u30e5\u30fc\u306b\u8fd4\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u30b9\u30c8\u30e9\u30c3\u30c8\u306e\u4e3b\u306a\u6a5f\u80fd:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>MVC\u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u304c\u63a1\u7528\u3055\u308c\u3066\u304a\u308a\u3001\u30b3\u30fc\u30c9\u306e\u968e\u5c64\u5316\u3068\u30e2\u30b8\u30e5\u30fc\u30eb\u5316\u306b\u5f79\u7acb\u3061\u3001\u30b3\u30fc\u30c9\u306e\u4fdd\u5b88\u6027\u3068\u62e1\u5f35\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>JSP \u30da\u30fc\u30b8\u958b\u767a\u3092\u7c21\u7d20\u5316\u3059\u308b\u8c4a\u5bcc\u306a\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0\u306e\u691c\u8a3c\u3001\u56fd\u969b\u5316\u3001\u30a8\u30e9\u30fc\u51e6\u7406\u3001\u305d\u306e\u4ed6\u306e\u6a5f\u80fd\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3001\u958b\u767a\u8005\u304c\u9ad8\u54c1\u8cea\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u88c5\u3059\u308b\u306e\u306b\u4fbf\u5229\u3067\u3059\u3002<\/li>\n\n\n\n<li>\u512a\u308c\u305f\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30b5\u30dd\u30fc\u30c8\u3068\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u7c21\u5358\u306b\u5b66\u7fd2\u3057\u3066\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u7d04\u3059\u308b\u3068\u3001Struts \u306f\u3001\u3042\u3089\u3086\u308b\u898f\u6a21\u306e Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u69cb\u7bc9\u3059\u308b\u305f\u3081\u306e\u3001\u6a5f\u80fd\u304c\u8c4a\u5bcc\u3067\u4f7f\u3044\u3084\u3059\u3044 Java Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30b9\u30c8\u30e9\u30c3\u30c8\u306e\u6b74\u53f2\u3068\u767a\u5c55\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u6b74\u53f2\u3068\u958b\u767a\u306f\u3001\u6b21\u306e\u6bb5\u968e\u306b\u5206\u3051\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u3082\u3068\u3082\u3068 2000 \u5e74\u306b Craig R. McClanahan \u306b\u3088\u3063\u3066\u4f5c\u6210\u3055\u308c\u307e\u3057\u305f\u3002 \u5f53\u6642\u3001Java Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u958b\u767a\u3068\u4fdd\u5b88\u304c\u6bd4\u8f03\u7684\u8907\u96d1\u3067\u3001\u7d71\u4e00\u3055\u308c\u305f\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3\u3068\u4ed5\u69d8\u304c\u3042\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002 Craig R. McClanahan \u306f\u3001MVC \u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3\u306b\u89e6\u767a\u3055\u308c\u3066\u3001Java Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u30d7\u30ed\u30bb\u30b9\u3092\u7c21\u7d20\u5316\u3059\u308b\u3053\u3068\u3092\u76ee\u7684\u3068\u3057\u305f Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li>\u6210\u9577\u6bb5\u968e:2001\u5e74\u3001Struts\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306fApache Jakarta\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u6b63\u5f0f\u306b\u63a1\u7528\u3055\u308c\u3001\u3088\u308a\u591a\u304f\u306e\u6ce8\u76ee\u3068\u4f7f\u7528\u3092\u53d7\u3051\u59cb\u3081\u307e\u3057\u305f\u3002 2002\u5e74\u3001Apache Struts 1.0\u304c\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u3001\u5f53\u6642\u4eba\u6c17\u306e\u3042\u308bJavaWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u306a\u308a\u307e\u3057\u305f\u3002 \u305d\u306e\u5f8c\u3001Struts \u306f\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u7e70\u308a\u8fd4\u3057\u7d9a\u3051\u3001\u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u3001\u56fd\u969b\u5316\u3001\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306a\u3069\u306e\u65b0\u6a5f\u80fd\u3092\u5c0e\u5165\u3057\u3001\u5f90\u3005\u306b Java Web \u958b\u767a\u306e\u696d\u754c\u6a19\u6e96\u306b\u306a\u308a\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li>\u5909\u9769\u30d5\u30a7\u30fc\u30ba:2004\u5e74\u3001WebWork\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u958b\u767a\u30c1\u30fc\u30e0\u306fStruts\u30c1\u30fc\u30e0\u3068\u5408\u4f75\u3057\u3001\u65b0\u3057\u3044Java EE\u30d9\u30fc\u30b9\u306eWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u958b\u767a\u3057\u307e\u3057\u305f\u3002 Struts 2\u3068\u547c\u3070\u308c\u308b\u3053\u306e\u65b0\u3057\u3044\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001Struts 1\u306e\u30b3\u30a2\u30b3\u30f3\u30bb\u30d7\u30c8\u306e\u4e00\u90e8\u3092\u4fdd\u6301\u3057\u306a\u304c\u3089\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3001OGNL\u5f0f\u306a\u3069\u306eWebWork\u306e\u512a\u308c\u305f\u6a5f\u80fd\u3092\u5c0e\u5165\u3057\u3066\u3044\u307e\u3059\u3002 2007\u5e74\u3001Struts 2.0\u304c\u6b63\u5f0f\u306b\u30ea\u30ea\u30fc\u30b9\u3055\u308c\u3001Struts\u30d5\u30a1\u30df\u30ea\u30fc\u306e\u6b21\u4e16\u4ee3\u3068\u306a\u308a\u307e\u3057\u305f\u3002<\/li>\n\n\n\n<li>\u7740\u5b9f\u306a\u958b\u767a:\u904e\u53bb2\u5e74\u307b\u3069\u306b\u308f\u305f\u3063\u3066\u3001Struts 2\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u7d99\u7d9a\u7684\u306b\u66f4\u65b0\u304a\u3088\u3073\u6700\u9069\u5316\u3055\u308c\u3001\u3088\u308a\u591a\u304f\u306e\u65b0\u6a5f\u80fd\u3068\u6539\u5584\u70b9\u304c\u63d0\u4f9b\u3055\u308c\u3066\u304d\u307e\u3057\u305f\u3002 Spring MVC\u3084JavaServer Faces\u306a\u3069\u306e\u4ed6\u306eJava Web\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u304c\u3053\u306e\u671f\u9593\u4e2d\u306b\u4e0a\u6607\u3057\u3001\u5e02\u5834\u30b7\u30a7\u30a2\u3092\u7372\u5f97\u3057\u307e\u3057\u305f\u304c\u3001Struts &lt;&gt;\u306f\u4f9d\u7136\u3068\u3057\u3066\u591a\u304f\u306e\u4f01\u696d\u3084\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u5e83\u304f\u4f7f\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u6982\u8981: Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u6b74\u53f2\u3068\u767a\u5c55\u306f\u3001\u5275\u9020\u3001\u6210\u9577\u3001\u5909\u9769\u3001\u5b89\u5b9a\u7684\u306a\u767a\u5c55\u306e\u6bb5\u968e\u3092\u7d4c\u3066\u304d\u307e\u3057\u305f\u3002 Struts 1 \u304b\u3089 Struts 2 \u307e\u3067\u3001Java Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u91cd\u8981\u306a\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u306a\u3063\u3066\u3044\u307e\u3059\u3002 \u4eca\u65e5\u306e\u5e02\u5834\u306b\u306f\u4ed6\u306b\u3082\u591a\u304f\u306eJava Web\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u304c\u3042\u308a\u307e\u3059\u304c\u3001Struts\u306b\u306f\u307e\u3060\u3042\u308b\u7a0b\u5ea6\u306e\u7af6\u4e89\u529b\u3068\u5f71\u97ff\u529b\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts\u306e\u5229\u70b9\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b7\u30ca\u30ea\u30aa\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306b\u304a\u3044\u3066\u7279\u5b9a\u306e\u5229\u70b9\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u4e3b\u306a\u5229\u70b9\u306e\u3044\u304f\u3064\u304b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>MVC \u30c7\u30b6\u30a4\u30f3\u30d1\u30bf\u30fc\u30f3: Struts \u306f\u3001\u30b3\u30fc\u30c9\u306e\u968e\u5c64\u5316\u3068\u30e2\u30b8\u30e5\u30fc\u30eb\u6027\u3092\u52a9\u9577\u3059\u308b\u30e2\u30c7\u30eb\u30fb\u30d3\u30e5\u30fc\u30fb\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc (MVC) \u30c7\u30b6\u30a4\u30f3\u30fb\u30d1\u30bf\u30fc\u30f3\u3092\u63a1\u7528\u3057\u3001\u30b3\u30fc\u30c9\u306e\u4fdd\u5b88\u6027\u3068\u62e1\u5f35\u6027\u3092\u5411\u4e0a\u3055\u305b\u307e\u3059\u3002 Struts \u306f\u3001\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u3001\u30c7\u30fc\u30bf\u8868\u793a\u3001\u30e6\u30fc\u30b6\u30fc\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406\u3092\u5206\u96e2\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u8005\u304c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u7c21\u5358\u306b\u4fdd\u5b88\u304a\u3088\u3073\u62e1\u5f35\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30ea\u30c3\u30c1\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea: Struts \u306f\u3001HTML \u30bf\u30b0\u3001Bean \u30bf\u30b0\u3001\u8ad6\u7406\u30bf\u30b0\u306a\u3069\u3092\u542b\u3080\u30ea\u30c3\u30c1\u306a\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u3053\u308c\u3089\u306e\u30bf\u30b0\u306f\u3001JSP \u30da\u30fc\u30b8\u306e\u958b\u767a\u3092\u7c21\u7d20\u5316\u3057\u3001\u958b\u767a\u8005\u304c\u30d3\u30e5\u30fc\u30ec\u30a4\u30e4\u30fc\u30b3\u30fc\u30c9\u3092\u3088\u308a\u52b9\u7387\u7684\u306b\u8a18\u8ff0\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u3068\u56fd\u969b\u5316\u306e\u30b5\u30dd\u30fc\u30c8: Struts \u306b\u306f\u3001\u958b\u767a\u8005\u304c\u30d5\u30a9\u30fc\u30e0\u306b\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u7c21\u5358\u306b\u8ffd\u52a0\u3067\u304d\u308b\u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u304c\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u307e\u3059\u3002 \u3055\u3089\u306b\u3001Struts \u306f\u3001\u591a\u8a00\u8a9e Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3059\u308b\u958b\u767a\u8005\u306b\u56fd\u969b\u5316\u30b5\u30dd\u30fc\u30c8\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u62e1\u5f35\u6027:Struts\u306f\u62e1\u5f35\u6027\u304c\u9ad8\u304f\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u3001\u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3001\u30ab\u30b9\u30bf\u30e0\u30e9\u30d9\u30eb\u306a\u3069\u3067\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u6a5f\u80fd\u3092\u62e1\u5f35\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001Struts \u306f\u3055\u307e\u3056\u307e\u306a\u8907\u96d1\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b7\u30ca\u30ea\u30aa\u306b\u9069\u5fdc\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30b5\u30dd\u30fc\u30c8: Struts \u306b\u306f\u5927\u898f\u6a21\u306a\u958b\u767a\u8005\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3068\u8c4a\u5bcc\u306a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u30ea\u30bd\u30fc\u30b9\u304c\u3042\u308a\u3001\u958b\u767a\u8005\u306f Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u7c21\u5358\u306b\u7fd2\u5f97\u3057\u3066\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u540c\u6642\u306b\u3001Struts\u306f\u6210\u719f\u3057\u305f\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u3042\u308b\u305f\u3081\u3001\u554f\u984c\u304c\u767a\u751f\u3057\u305f\u3068\u304d\u306b\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u3067\u89e3\u6c7a\u7b56\u3092\u898b\u3064\u3051\u308b\u306e\u306f\u7c21\u5358\u3067\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b7\u30ca\u30ea\u30aa:<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u4ee5\u4e0b\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30b7\u30ca\u30ea\u30aa\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30baWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3:Struts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u30c7\u30fc\u30bf\u691c\u8a3c\u3001\u56fd\u969b\u5316\u3001\u30a8\u30e9\u30fc\u51e6\u7406\u306a\u3069\u3001\u6210\u719f\u3057\u305f\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3068\u30c4\u30fc\u30eb\u306e\u30bb\u30c3\u30c8\u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u3001\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30baWeb\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u69cb\u7bc9\u306b\u6700\u9069\u3067\u3059\u3002 \u3055\u3089\u306b\u3001MVC \u30c7\u30b6\u30a4\u30f3 \u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30b3\u30fc\u30c9\u306e\u4fdd\u5b88\u6027\u3068\u62e1\u5f35\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6559\u80b2\u3068\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0: Struts \u306f\u5e83\u7bc4\u306a\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u3068\u30b3\u30df\u30e5\u30cb\u30c6\u30a3\u30b5\u30dd\u30fc\u30c8\u3092\u5099\u3048\u3066\u3044\u308b\u305f\u3081\u3001\u6559\u80b2\u304a\u3088\u3073\u30c8\u30ec\u30fc\u30cb\u30f3\u30b0\u74b0\u5883\u306b\u3082\u9069\u3057\u3066\u3044\u307e\u3059\u3002 \u5b66\u7fd2\u8005\u306f\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u5b66\u3076\u3053\u3068\u3067\u3001Java Web \u958b\u767a\u306e\u57fa\u672c\u539f\u5247\u3068\u30b9\u30ad\u30eb\u3092\u7fd2\u5f97\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u4e2d\u5c0f\u898f\u6a21\u306e Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8: Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u3042\u3089\u3086\u308b\u898f\u6a21\u306e Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u9069\u3057\u3066\u3044\u307e\u3059\u3002 \u4e2d\u5c0f\u898f\u6a21\u306eWeb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u5834\u5408\u3001Struts\u306f\u958b\u767a\u306e\u96e3\u3057\u3055\u3092\u8efd\u6e1b\u3059\u308b\u305f\u3081\u306e\u8fc5\u901f\u306a\u958b\u767a\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>Struts \u306f\u3001\u3044\u304f\u3064\u304b\u306e\u70b9\u3067\u4ed6\u306e\u6700\u65b0\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af (Spring MVC \u306a\u3069) \u307b\u3069\u826f\u304f\u306a\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u3001\u305d\u308c\u3067\u3082\u6a5f\u80fd\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u3042\u308b\u7a0b\u5ea6\u306e\u7af6\u4e89\u529b\u3092\u5099\u3048\u305f\u5f37\u529b\u3067\u6210\u719f\u3057\u305fJava Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3002 \u4ed6\u306e\u30e6\u30fc\u30b9\u30b1\u30fc\u30b9\u3067\u306e Struts \u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u4ed6\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u306e\u7d71\u5408: Struts \u306f\u3001Hibernate\u3001Spring\u3001MyBatis \u306a\u3069\u306e\u4ed6\u306e Java \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3084\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u7d71\u5408\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u3053\u308c\u3089\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u6700\u5927\u9650\u306b\u6d3b\u7528\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u3067\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306e\u9ad8\u3044Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5909\u5316\u3059\u308b\u30cb\u30fc\u30ba\u3078\u306e\u9069\u5fdc:Struts\u306e\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3068\u67d4\u8edf\u6027\u306b\u3088\u308a\u3001\u5909\u5316\u3059\u308b\u30d3\u30b8\u30cd\u30b9\u30cb\u30fc\u30ba\u306b\u9069\u5fdc\u3067\u304d\u307e\u3059\u3002 \u958b\u767a\u8005\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u8981\u4ef6\u306b\u5fdc\u3058\u3066 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u304a\u3088\u3073\u62e1\u5f35\u3057\u3001\u3055\u307e\u3056\u307e\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30b7\u30ca\u30ea\u30aa\u306b\u5bfe\u5fdc\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u5206\u6563\u30b7\u30b9\u30c6\u30e0: Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u5927\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3068\u5206\u6563\u30b7\u30b9\u30c6\u30e0\u306e\u958b\u767a\u3092\u30b5\u30dd\u30fc\u30c8\u3067\u304d\u307e\u3059\u3002 MVC \u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u958b\u767a\u8005\u306f\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3001\u30c7\u30fc\u30bf\u51e6\u7406\u3001\u30e6\u30fc\u30b6\u30fc \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5206\u96e2\u3067\u304d\u308b\u305f\u3081\u3001\u30c1\u30fc\u30e0\u306e\u5171\u540c\u958b\u767a\u3068\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u7ba1\u7406\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002 \u540c\u6642\u306b\u3001Struts\u306e\u4ed6\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u306e\u7d71\u5408\u6a5f\u80fd\u306f\u3001\u9ad8\u6027\u80fd\u3067\u53ef\u7528\u6027\u306e\u9ad8\u3044\u5206\u6563\u30b7\u30b9\u30c6\u30e0\u306e\u69cb\u7bc9\u306b\u3082\u5f79\u7acb\u3061\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u7d04\u3059\u308b\u3068\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u70b9\u3067\u4ed6\u306e\u6700\u65b0\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u307b\u3069\u512a\u308c\u3066\u3044\u306a\u3044\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u304c\u3001\u305d\u308c\u3067\u3082\u591a\u304f\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3 \u30b7\u30ca\u30ea\u30aa\u3067\u7af6\u4e89\u529b\u304c\u3042\u308a\u307e\u3059\u3002 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u958b\u767a\u8005\u304c\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u3067\u4fdd\u5b88\u53ef\u80fd\u306a Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u8fc5\u901f\u306b\u69cb\u7bc9\u3057\u3001\u4ed6\u306e Java \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3084\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u30b7\u30fc\u30e0\u30ec\u30b9\u306b\u7d71\u5408\u3057\u3066\u3001\u5b8c\u5168\u306a Java Web \u958b\u767a\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u63d0\u4f9b\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts \u30b3\u30a2\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9 (ActionServlet ) \u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306f\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u306e\u51e6\u7406\u3068\u30e2\u30c7\u30eb\u3068\u30d3\u30e5\u30fc\u306e\u8abf\u6574\u3092\u62c5\u5f53\u3059\u308b\u30b3\u30a2 \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3059\u3002 ActionServlet \u306f Struts \u306e\u4e3b\u8981\u306a\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3042\u308a\u3001\u30e6\u30fc\u30b6\u30fc\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d7\u4fe1\u3057\u3001\u9069\u5207\u306a Action \u30af\u30e9\u30b9\u306b\u914d\u5e03\u3057\u3001\u51e6\u7406\u7d50\u679c\u3092\u30d3\u30e5\u30fc\u30ec\u30a4\u30e4\u30fc\u306b\u8fd4\u3059\u4e2d\u592e\u30b9\u30b1\u30b8\u30e5\u30fc\u30e9\u3068\u3057\u3066\u6a5f\u80fd\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30a2\u30af\u30b7\u30e7\u30f3\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306e\u4e3b\u306a\u8cac\u4efb\u3068\u30ef\u30fc\u30af\u30d5\u30ed\u30fc\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u521d\u671f\u5316: Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u304c\u8d77\u52d5\u3059\u308b\u3068\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u304c\u81ea\u52d5\u7684\u306b\u521d\u671f\u5316\u3055\u308c\u307e\u3059\u3002 \u521d\u671f\u5316\u4e2d\u306b\u3001Struts \u69cb\u6210\u30d5\u30a1\u30a4\u30eb (\u901a\u5e38\u306f struts-config.xml) \u3092\u8aad\u307f\u53d6\u308a\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30de\u30c3\u30d7\u3001\u30d5\u30a9\u30fc\u30e0 Bean\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u4f8b\u5916\u51e6\u7406\u3001\u304a\u3088\u3073\u305d\u3053\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u305d\u306e\u4ed6\u306e\u60c5\u5831\u3092\u30ed\u30fc\u30c9\u3057\u3001\u3053\u306e\u60c5\u5831\u3092\u5185\u90e8\u30c7\u30fc\u30bf\u69cb\u9020\u306b\u683c\u7d0d\u3057\u3066\u3001\u5f8c\u3067\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u8981\u6c42\u51e6\u7406: \u30e6\u30fc\u30b6\u30fc\u304c\u8981\u6c42\u3092\u958b\u59cb\u3059\u308b\u3068\u3001\u8981\u6c42\u306f\u6700\u521d\u306b\u30a2\u30af\u30b7\u30e7\u30f3\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306b\u5230\u7740\u3057\u307e\u3059\u3002 \u4e2d\u592e\u30c7\u30a3\u30b9\u30d1\u30c3\u30c1\u30e3\u30fc\u3068\u3057\u3066\u3001ActionServlet \u306f\u8981\u6c42\u3092\u89e3\u6790\u3057\u3001\u8981\u6c42\u306e\u30bf\u30fc\u30b2\u30c3\u30c8 Action \u30af\u30e9\u30b9\u3092\u8b58\u5225\u3059\u308b\u5f79\u5272\u3092\u62c5\u3044\u307e\u3059\u3002 \u6b21\u306b\u3001Action \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3001\u5fc5\u8981\u306a\u3059\u3079\u3066\u306e\u8981\u6c42\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068\u30c7\u30fc\u30bf\u3092\u6e96\u5099\u3057\u3001\u51e6\u7406\u306e\u305f\u3081\u306b\u8981\u6c42\u3092 Action \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u59d4\u4efb\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u5b9f\u884c: Action \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u3001\u8981\u6c42\u3092\u53d7\u4fe1\u3059\u308b\u3068\u3001\u5bfe\u5fdc\u3059\u308b\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002 \u3053\u308c\u306b\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30a2\u30af\u30bb\u30b9\u30ec\u30a4\u30e4\u30fc\u306a\u3069\u306e\u30e2\u30c7\u30eb\u30ec\u30a4\u30e4\u30fc\u3068\u5bfe\u8a71\u3057\u3066\u3001\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u307e\u305f\u306f\u66f4\u65b0\u3059\u308b\u3053\u3068\u304c\u542b\u307e\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u8981\u6c42\u3092\u51e6\u7406\u3057\u305f\u5f8c\u3001Action \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u3001&#8221;\u30a2\u30af\u30b7\u30e7\u30f3\u8ee2\u9001&#8221; \u307e\u305f\u306f &#8220;\u30a2\u30af\u30b7\u30e7\u30f3\u7d50\u679c&#8221; \u3068\u547c\u3070\u308c\u308b\u3053\u3068\u304c\u591a\u3044\u3001\u51e6\u7406\u306e\u7d50\u679c\u3092\u8868\u3059\u6587\u5b57\u5217\u3092\u8fd4\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u7d50\u679c\u306e\u5206\u5e03: \u30a2\u30af\u30b7\u30e7\u30f3\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u3088\u3063\u3066\u8fd4\u3055\u308c\u305f\u30a2\u30af\u30b7\u30e7\u30f3\u7d50\u679c\u306b\u57fa\u3065\u3044\u3066\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306f\u5bfe\u5fdc\u3059\u308b\u30d3\u30e5\u30fc\u30da\u30fc\u30b8(JSP\u30d5\u30a1\u30a4\u30eb\u306a\u3069)\u3092\u63a2\u3057\u307e\u3059\u3002 \u6b21\u306b\u3001\u8981\u6c42\u3092\u9069\u5207\u306a\u30d3\u30e5\u30fc \u30da\u30fc\u30b8\u306b\u8ee2\u9001\u3057\u3066\u3001\u30d3\u30e5\u30fc \u30da\u30fc\u30b8\u3067\u51e6\u7406\u7d50\u679c\u3092\u30e6\u30fc\u30b6\u30fc\u306b\u8868\u793a\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u51e6\u7406: \u8981\u6c42\u51e6\u7406\u4e2d\u306b\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\u3068\u3001ActionServlet \u306f\u3001Struts \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u30b0\u30ed\u30fc\u30d0\u30eb\u4f8b\u5916\u51e6\u7406\u898f\u5247\u306b\u5f93\u3063\u3066\u3001\u4f8b\u5916\u3092\u9069\u5207\u306a\u30a8\u30e9\u30fc\u51e6\u7406\u30da\u30fc\u30b8\u307e\u305f\u306f\u51e6\u7406\u30af\u30e9\u30b9\u306b\u8ee2\u9001\u3057\u307e\u3059\u3002 \u3053\u306e\u3088\u3046\u306b\u3057\u3066\u3001\u958b\u767a\u8005\u306f\u30a8\u30e9\u30fc\u3084\u4f8b\u5916\u306e\u51e6\u7406\u306b\u96c6\u4e2d\u3067\u304d\u3001\u30b3\u30fc\u30c9\u306e\u4fdd\u5b88\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u7d04\u3059\u308b\u3068\u3001ActionServlet\u306fStruts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3042\u308a\u3001\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u306e\u53d7\u4fe1\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u306e\u30c7\u30a3\u30b9\u30d1\u30c3\u30c1\u3001\u51e6\u7406\u7d50\u679c\u306e\u914d\u5e03\u3001\u304a\u3088\u3073\u30a8\u30e9\u30fc\u3068\u4f8b\u5916\u306e\u51e6\u7406\u3092\u62c5\u5f53\u3057\u307e\u3059\u3002 ActionServlet \u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u958b\u767a\u8005\u306f Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8981\u6c42\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3057\u3066\u3001\u958b\u767a\u30d7\u30ed\u30bb\u30b9\u3092\u7c21\u7d20\u5316\u3057\u3001\u30b3\u30fc\u30c9\u54c1\u8cea\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts \u30b3\u30a2\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u8a2d\u5b9a\u30d5\u30a1\u30a4\u30eb (struts-config.xml) \u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u69cb\u6210\u30d5\u30a1\u30a4\u30eb (struts-config.xml \u3068\u3044\u3046\u540d\u524d\u304c\u3088\u304f\u3042\u308a\u307e\u3059) \u306f\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30de\u30c3\u30d7\u3001\u30d5\u30a9\u30fc\u30e0 Bean\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u4f8b\u5916\u51e6\u7406\u306a\u3069\u3001Struts \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u3055\u307e\u3056\u307e\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u5b9a\u7fa9\u304a\u3088\u3073\u69cb\u6210\u3059\u308b XML \u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002 \u3053\u306e\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u59cb\u52d5\u6642\u306b\u30ed\u30fc\u30c9\u3055\u308c\u3001\u5b9f\u884c\u306b\u5fc5\u8981\u306a\u60c5\u5831\u304c Struts \u306b\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001struts-config .xml\u30fb\u30d5\u30a1\u30a4\u30eb\u304c\u91cd\u8981\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u3001\u958b\u767a\u8005\u304c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u52d5\u4f5c\u3092\u4e00\u5143\u7684\u306b\u7ba1\u7406\u304a\u3088\u3073\u5236\u5fa1\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>struts-config .xml \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u4e3b\u306a\u8981\u7d20\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a2\u30af\u30b7\u30e7\u30f3 \u30de\u30c3\u30d4\u30f3\u30b0: \u3053\u306e\u8981\u7d20\u306b\u306f\u3001\u8981\u6c42\u30d1\u30b9\u3068 Action \u30af\u30e9\u30b9\u9593\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5b9a\u7fa9\u3059\u308b 1 \u3064\u4ee5\u4e0a\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u8981\u7d20\u304c\u542b\u307e\u308c\u307e\u3059\u3002 \u5404\u30a2\u30af\u30b7\u30e7\u30f3\u8981\u7d20\u306b\u306f\u3001\u30d1\u30b9\u3001Action \u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u8981\u6c42\u306e\u7d50\u679c (\u6210\u529f\u3001\u5931\u6557\u306a\u3069) \u3068\u30d3\u30e5\u30fc \u30da\u30fc\u30b8\u306e\u9593\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5b9a\u7fa9\u3059\u308b 1 \u3064\u4ee5\u4e0a\u306e\u8ee2\u9001\u8981\u7d20\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>form-beans: \u3053\u306e\u30a8\u30ec\u30e1\u30f3\u30c8\u306b\u306f\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u3092\u5b9a\u7fa9\u3059\u308b 1 \u3064\u4ee5\u4e0a\u306e\u30d5\u30a9\u30fc\u30e0 Bean \u30a8\u30ec\u30e1\u30f3\u30c8\u304c\u542b\u307e\u308c\u307e\u3059\u3002 \u30d5\u30a9\u30fc\u30e0 Bean \u306f\u901a\u5e38\u3001\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3059\u308b JavaBean \u3067\u3059\u3002 \u5404\u30d5\u30a9\u30fc\u30e0 Bean \u8981\u7d20\u306b\u306f\u3001\u540d\u524d\u3068\u5bfe\u5fdc\u3059\u308b Java \u30af\u30e9\u30b9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b0\u30ed\u30fc\u30d0\u30eb\u4f8b\u5916: \u3053\u306e\u8981\u7d20\u306b\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u4f8b\u5916\u51e6\u7406\u898f\u5247\u3092\u5b9a\u7fa9\u3059\u308b 1 \u3064\u4ee5\u4e0a\u306e\u4f8b\u5916\u8981\u7d20\u304c\u542b\u307e\u308c\u307e\u3059\u3002 \u5404\u4f8b\u5916\u8981\u7d20\u306b\u306f\u3001\u4f8b\u5916\u306e\u7a2e\u985e\u3068\u3001\u5bfe\u5fdc\u3059\u308b\u30a8\u30e9\u30fc\u51e6\u7406\u30da\u30fc\u30b8 (\u30d1\u30b9) \u307e\u305f\u306f\u30cf\u30f3\u30c9\u30e9\u30fc\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b0\u30ed\u30fc\u30d0\u30eb\u8ee2\u9001: \u3053\u306e\u8981\u7d20\u306b\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb \u30d3\u30e5\u30fc \u30b8\u30e3\u30f3\u30d7 \u30eb\u30fc\u30eb\u3092\u5b9a\u7fa9\u3059\u308b 1 \u3064\u4ee5\u4e0a\u306e\u524d\u65b9\u8981\u7d20\u304c\u542b\u307e\u308c\u307e\u3059\u3002 \u5404 forward \u8981\u7d20\u306b\u306f\u3001\u540d\u524d\u3068\u5bfe\u5fdc\u3059\u308b\u30d3\u30e5\u30fc \u30da\u30fc\u30b8 (\u30d1\u30b9) \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30e1\u30c3\u30bb\u30fc\u30b8\u30ea\u30bd\u30fc\u30b9: \u3053\u306e\u8981\u7d20\u306f\u3001\u56fd\u969b\u5316\u3055\u308c\u305f\u30ea\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u306e\u5834\u6240\u3092\u5b9a\u7fa9\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 \u7570\u306a\u308b\u8a00\u8a9e\u306e\u30ea\u30bd\u30fc\u30b9\u30fb\u30d5\u30a1\u30a4\u30eb\u3092\u53c2\u7167\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u591a\u8a00\u8a9e\u30b5\u30dd\u30fc\u30c8\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d7\u30e9\u30b0\u30a4\u30f3: \u3053\u306e\u30a8\u30ec\u30e1\u30f3\u30c8\u306b\u306f\u3001Struts \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u5fc5\u8981\u306a\u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u5b9a\u7fa9\u3059\u308b 1 \u3064\u4ee5\u4e0a\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u30fb\u30a8\u30ec\u30e1\u30f3\u30c8\u304c\u542b\u307e\u308c\u307e\u3059\u3002 \u5404\u30d7\u30e9\u30b0\u30a4\u30f3\u30fb\u30a8\u30ec\u30e1\u30f3\u30c8\u306b\u306f\u3001\u5bfe\u5fdc\u3059\u308b Java \u30af\u30e9\u30b9 (className) \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u7d04\u3059\u308b\u3068\u3001struts-config.xml \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306f\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308a\u3001Struts \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u3055\u307e\u3056\u307e\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u5b9a\u7fa9\u304a\u3088\u3073\u69cb\u6210\u3057\u307e\u3059\u3002 \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u5909\u66f4\u304a\u3088\u3073\u8abf\u6574\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u52d5\u4f5c\u3092\u7c21\u5358\u306b\u4e00\u5143\u7684\u306b\u7ba1\u7406\u304a\u3088\u3073\u5236\u5fa1\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts \u30b3\u30a2\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u30d5\u30a9\u30fc\u30e0 Bean (ActionForm) \u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30d5\u30a9\u30fc\u30e0 Bean (\u901a\u5e38\u306f ActionForm \u30af\u30e9\u30b9\u304b\u3089\u7d99\u627f) \u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304b\u3089\u9001\u4fe1\u3055\u308c\u305f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u304a\u3088\u3073\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b Java \u30af\u30e9\u30b9\u3067\u3059\u3002 \u30d5\u30a9\u30fc\u30e0Bean\u306f\u901a\u5e38\u3001\u4e00\u9023\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u5bfe\u5fdc\u3059\u308b\u30b2\u30c3\u30bf\u30fc\u30e1\u30bd\u30c3\u30c9\u3068\u30bb\u30c3\u30bf\u30fc\u30e1\u30bd\u30c3\u30c9\u3092\u6301\u3064\u5358\u7d14\u306aJavaBean\u3067\u3059\u3002 \u30d5\u30a9\u30fc\u30e0 Bean \u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u958b\u767a\u8005\u306f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u7279\u5b9a\u306e\u51e6\u7406\u30ed\u30b8\u30c3\u30af (Action \u30af\u30e9\u30b9\u306a\u3069) \u304b\u3089\u5207\u308a\u96e2\u3057\u3066\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u4e3b\u306a\u6a5f\u80fd\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf\u306e\u30ab\u30d7\u30bb\u30eb\u5316: \u30d5\u30a9\u30fc\u30e0 Bean \u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u9001\u4fe1\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u306e\u30ab\u30d7\u30bb\u30eb\u5316\u3092\u62c5\u5f53\u3057\u307e\u3059\u3002 \u5404\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306f\u3001\u901a\u5e38\u3001\u30d5\u30a9\u30fc\u30e0\u5185\u306e\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5bfe\u5fdc\u3057\u307e\u3059\u3002 \u30e6\u30fc\u30b6\u30fc\u304c\u30d5\u30a9\u30fc\u30e0\u3092\u9001\u4fe1\u3059\u308b\u3068\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u5bfe\u5fdc\u3059\u308b\u30d5\u30a9\u30fc\u30e0 Bean \u306b\u81ea\u52d5\u7684\u306b\u53d6\u308a\u8fbc\u307f\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u5909\u63db: \u30d5\u30a9\u30fc\u30e0 Bean \u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u9001\u4fe1\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u9069\u5207\u306a Java \u30c7\u30fc\u30bf\u578b\u306b\u5909\u63db\u3067\u304d\u307e\u3059\u3002 \u4f8b\u3048\u3070\u3001\u6587\u5b57\u5217\u578b\u306e\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u6574\u6570\u3084\u65e5\u4ed8\u306a\u3069\u306b\u5909\u63db\u3057\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u306e\u51e6\u7406\u3068\u691c\u8a3c\u304c\u5bb9\u6613\u306b\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u691c\u8a3c: \u30d5\u30a9\u30fc\u30e0 Bean \u306b\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u9001\u4fe1\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u304c\u4e88\u671f\u3055\u308c\u308b\u5f62\u5f0f\u3068\u5236\u7d04\u306b\u6e96\u62e0\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u30c1\u30a7\u30c3\u30af\u3059\u308b\u691c\u8a3c\u30ed\u30b8\u30c3\u30af\u3092\u542b\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u7a7a\u304b\u3069\u3046\u304b\u3001\u307e\u305f\u306f\u6570\u5024\u304c\u6307\u5b9a\u3055\u308c\u305f\u7bc4\u56f2\u5185\u306b\u3042\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002 \u958b\u767a\u8005\u306f\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u306e validate() \u30e1\u30bd\u30c3\u30c9\u3067\u3053\u308c\u3089\u306e\u691c\u8a3c\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002 \u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u304c\u691c\u8a3c\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u30e6\u30fc\u30b6\u30fc\u306b\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8fd4\u3057\u3001\u9069\u5207\u306a\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Action \u30af\u30e9\u30b9\u304b\u3089\u306e\u5206\u96e2: \u30d5\u30a9\u30fc\u30e0 Bean \u306f\u3001\u5177\u4f53\u7684\u306a\u51e6\u7406\u30ed\u30b8\u30c3\u30af (Action \u30af\u30e9\u30b9\u306a\u3069) \u304b\u3089\u5207\u308a\u96e2\u3055\u308c\u307e\u3059\u3002 \u3064\u307e\u308a\u3001\u958b\u767a\u8005\u306f\u30d5\u30a9\u30fc\u30e0 Bean \u3092\u5909\u66f4\u305b\u305a\u306b Action \u30af\u30e9\u30b9\u3092\u5909\u66f4\u307e\u305f\u306f\u7f6e\u63db\u3067\u304d\u307e\u3059\u3002 \u3053\u306e\u5206\u96e2\u306b\u3088\u308a\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u518d\u5229\u7528\u3068\u5171\u6709: \u30d5\u30a9\u30fc\u30e0 Bean \u306f\u72ec\u7acb\u3057\u305f Java \u30af\u30e9\u30b9\u3067\u3042\u308b\u305f\u3081\u3001\u8907\u6570\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u9593\u3067\u518d\u5229\u7528\u304a\u3088\u3073\u5171\u6709\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u958b\u767a\u8005\u306f\u985e\u4f3c\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u3088\u308a\u52b9\u7387\u7684\u306b\u64cd\u4f5c\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u7d04\u3059\u308b\u3068\u3001\u30d5\u30a9\u30fc\u30e0 Bean (\u901a\u5e38\u306f ActionForm \u30af\u30e9\u30b9\u304b\u3089\u7d99\u627f) \u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u9001\u4fe1\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u304a\u3088\u3073\u51e6\u7406\u3059\u308b\u305f\u3081\u306e Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3059\u3002 \u30d5\u30a9\u30fc\u30e0 Bean \u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u958b\u767a\u8005\u306f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u7279\u5b9a\u306e\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u304b\u3089\u5207\u308a\u96e2\u3057\u3001\u30b3\u30fc\u30c9\u306e\u53ef\u8aad\u6027\u3068\u4fdd\u5b88\u6027\u3092\u5411\u4e0a\u3055\u305b\u3001\u30c7\u30fc\u30bf\u691c\u8a3c\u304a\u3088\u3073\u5909\u63db\u95a2\u6570\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts\u306e\u30b3\u30a2\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3042\u308b\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u51e6\u7406(\u30a2\u30af\u30b7\u30e7\u30f3)\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u51e6\u7406\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306f\u901a\u5e38\u3001Action \u30af\u30e9\u30b9\u306b\u3088\u3063\u3066\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002 Action \u30af\u30e9\u30b9\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u3092\u51e6\u7406\u3057\u3001\u30d3\u30b8\u30cd\u30b9\u30fb\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3057\u3001\u51e6\u7406\u7d50\u679c\u3092\u8fd4\u3059 Struts \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059\u3002 Action \u30af\u30e9\u30b9\u306f\u901a\u5e38\u3001org.apache.struts.action.Action \u57fa\u672c\u30af\u30e9\u30b9\u304b\u3089\u7d99\u627f\u3057\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u304c\u5230\u7740\u3057\u305f\u3068\u304d\u306b\u9069\u5207\u306a\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u3059\u308bexecute() \u30e1\u30bd\u30c3\u30c9\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>Action \u30af\u30e9\u30b9\u306e\u4e3b\u306a\u5f79\u5272\u3068\u6a5f\u80fd\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u306e\u51e6\u7406: \u30e6\u30fc\u30b6\u30fc\u304c\u8981\u6c42\u3092\u958b\u59cb\u3059\u308b\u3068\u3001\u8981\u6c42\u306f\u6700\u521d\u306b ActionServlet \u306b\u5230\u7740\u3057\u3001\u6b21\u306b\u8981\u6c42\u306e\u30d1\u30b9\u306b\u57fa\u3065\u3044\u3066\u5bfe\u5fdc\u3059\u308b Action \u30af\u30e9\u30b9\u306b\u30de\u30c3\u30d7\u3055\u308c\u307e\u3059\u3002 Action \u30af\u30e9\u30b9\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u3092\u51e6\u7406\u3057\u3001\u8981\u6c42\u306e\u7a2e\u985e\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u64cd\u4f5c: Action \u30af\u30e9\u30b9\u306f\u901a\u5e38\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u9001\u4fe1\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u306f\u30d5\u30a9\u30fc\u30e0 Bean \u306b\u30ab\u30d7\u30bb\u30eb\u5316\u3055\u308c\u307e\u3059\u3002 Action \u30af\u30e9\u30b9\u306f\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u304a\u3088\u3073\u30e1\u30bd\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u3001\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u304a\u3088\u3073\u64cd\u4f5c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30e2\u30c7\u30eb\u5c64\u3068\u306e\u5bfe\u8a71: Action \u30af\u30e9\u30b9\u306f\u3001\u901a\u5e38\u3001\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u307e\u305f\u306f\u66f4\u65b0\u3059\u308b\u305f\u3081\u306b\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30e2\u30c7\u30eb\u5c64 (\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30a2\u30af\u30bb\u30b9\u5c64\u3001\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u5c64\u306a\u3069) \u3068\u5bfe\u8a71\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u30e2\u30c7\u30eb\u5c64\u3068\u5bfe\u8a71\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001Action \u30af\u30e9\u30b9\u306f\u5177\u4f53\u7684\u306a\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u51e6\u7406\u7d50\u679c\u3092\u8fd4\u3059: \u8981\u6c42\u3092\u51e6\u7406\u3057\u305f\u5f8c\u3001Action \u30af\u30e9\u30b9\u306f\u3001\u51e6\u7406\u306e\u7d50\u679c\u3092\u8868\u3059\u6587\u5b57\u5217 (&#8220;\u30a2\u30af\u30b7\u30e7\u30f3\u8ee2\u9001&#8221; \u307e\u305f\u306f &#8220;\u30a2\u30af\u30b7\u30e7\u30f3\u7d50\u679c&#8221; \u3068\u3082\u547c\u3070\u308c\u307e\u3059) \u3092\u8fd4\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u3053\u306e\u30b9\u30c8\u30ea\u30f3\u30b0\u306f\u3001Struts \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3067\u5b9a\u7fa9\u3055\u308c\u305f\u30d3\u30e5\u30fc\u30fb\u30da\u30fc\u30b8\u306b\u30de\u30c3\u30d7\u3055\u308c\u3001\u8981\u6c42\u306e\u8ee2\u9001\u5148\u30d3\u30e5\u30fc\u30fb\u30da\u30fc\u30b8\u3092 ActionServlet \u306b\u6307\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u51e6\u7406: \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406\u4e2d\u306b\u4f8b\u5916\u304c\u767a\u751f\u3057\u305f\u5834\u5408\u3001Action \u30af\u30e9\u30b9\u306f org.apache.struts.action.ActionError \u307e\u305f\u306f org.apache.struts.action.ActionErrors \u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3092\u30b9\u30ed\u30fc\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u3089\u306e\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u306f Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u3088\u3063\u3066\u30ad\u30e3\u30d7\u30c1\u30e3\u30fc\u3055\u308c\u3001\u9069\u5207\u306a\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u30e6\u30fc\u30b6\u30fc\u306b\u8fd4\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u7d04\u3059\u308b\u3068\u3001Action \u30af\u30e9\u30b9\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u3092\u51e6\u7406\u3057\u3001\u30d3\u30b8\u30cd\u30b9\u30fb\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3057\u3001\u51e6\u7406\u7d50\u679c\u3092\u8fd4\u3059 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3059\u3002 Action \u30af\u30e9\u30b9\u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u8005\u306f Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u8981\u6c42\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3057\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u304a\u3088\u3073\u30e2\u30c7\u30eb\u5c64\u3068\u5bfe\u8a71\u3057\u3001\u30a8\u30e9\u30fc\u3068\u4f8b\u5916\u3092\u51e6\u7406\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts \u30b3\u30a2\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u30d3\u30e5\u30fc(JSP)\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30d3\u30e5\u30fc\u5c64\u304c\u30c7\u30fc\u30bf\u3068\u30e6\u30fc\u30b6\u30fc \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3092\u62c5\u5f53\u3057\u3001\u901a\u5e38\u306f JavaServer Pages (JSP) \u30c6\u30af\u30ce\u30ed\u30b8\u3092\u4f7f\u7528\u3057\u3066\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002 JSP \u306f Java \u30d9\u30fc\u30b9\u306e\u30b5\u30fc\u30d0\u30fc\u30b5\u30a4\u30c9\u30b9\u30af\u30ea\u30d7\u30c8\u8a00\u8a9e\u3067\u3042\u308a\u3001\u958b\u767a\u8005\u306f HTML \u307e\u305f\u306f XML \u30da\u30fc\u30b8\u306b Java \u30b3\u30fc\u30c9\u3092\u57cb\u3081\u8fbc\u3093\u3067\u52d5\u7684\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u751f\u6210\u304a\u3088\u3073\u8868\u793a\u3067\u304d\u307e\u3059\u3002 JSP \u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u306b\u3088\u308a\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u30ea\u30c3\u30c1\u3067\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u306a\u30e6\u30fc\u30b6\u30fc\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u63d0\u4f9b\u3057\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30af\u30e9\u30b9\u304a\u3088\u3073\u30d5\u30a9\u30fc\u30e0 Bean \u3068\u5bfe\u8a71\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067 JSP \u3092\u30d3\u30e5\u30fc\u5c64\u3068\u3057\u3066\u4f7f\u7528\u3059\u308b\u4e3b\u306a\u6a5f\u80fd\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u52d5\u7684\u30b3\u30f3\u30c6\u30f3\u30c4\u751f\u6210: Java \u30b3\u30fc\u30c9\u3001\u5f0f\u3001\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u306a\u3069\u306e\u8981\u7d20\u3092 JSP \u30da\u30fc\u30b8\u306b\u57cb\u3081\u8fbc\u3080\u3053\u3068\u3067\u3001\u958b\u767a\u8005\u306f\u52d5\u7684\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u751f\u6210\u3057\u3066\u8868\u793a\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u30d3\u30e5\u30fc\u30ec\u30a4\u30e4\u30fc\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u8981\u6c42\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u72b6\u614b\u306e\u5909\u66f4\u306b\u57fa\u3065\u3044\u3066\u3001\u3055\u307e\u3056\u307e\u306a\u30b3\u30f3\u30c6\u30f3\u30c4\u3068\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a2\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u3068\u30d5\u30a9\u30fc\u30e0Bean\u3068\u306e\u5bfe\u8a71: JSP\u30da\u30fc\u30b8\u306f\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u306e\u30c7\u30fc\u30bf\u3068\u30e1\u30bd\u30c3\u30c9\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066Bean\u3092\u30d5\u30a9\u30fc\u30e0\u3067\u304d\u307e\u3059\u3002 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u304c\u63d0\u4f9b\u3059\u308b\u30ab\u30b9\u30bf\u30e0\u30fb\u30bf\u30b0 (struts-tags \u306a\u3069) \u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u8005\u306f\u3053\u306e\u30c7\u30fc\u30bf\u3092\u7c21\u5358\u306b\u30d5\u30a7\u30c3\u30c1\u3057\u3066 JSP \u30da\u30fc\u30b8\u306b\u8868\u793a\u3057\u3001\u5bfe\u5fdc\u3059\u308b\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u3092\u30c8\u30ea\u30ac\u30fc\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0\u51e6\u7406: JSP \u30da\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u3066\u3001\u30e6\u30fc\u30b6\u30fc\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u6210\u304a\u3088\u3073\u51e6\u7406\u3067\u304d\u307e\u3059\u3002 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u304c\u63d0\u4f9b\u3059\u308b\u30d5\u30a9\u30fc\u30e0\u30fb\u30bf\u30b0 (&lt;form&gt;\u3001&lt;input&gt; \u306a\u3069) \u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u8005\u306f\u7c21\u5358\u306b\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u3001\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u9069\u5207\u306a\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30af\u30e9\u30b9\u306b\u9001\u4fe1\u3057\u3001\u51e6\u7406\u306e\u305f\u3081\u306b Bean \u3092\u5f62\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u56fd\u969b\u5316: JSP \u30da\u30fc\u30b8\u3067\u306f\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u304c\u63d0\u4f9b\u3059\u308b\u30ab\u30b9\u30bf\u30e0\u30fb\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u56fd\u969b\u5316\u60c5\u5831\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001Action \u30af\u30e9\u30b9\u306b\u3088\u3063\u3066\u30b9\u30ed\u30fc\u3055\u308c\u305f\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u306b\u306f struts:errors \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3001\u56fd\u969b\u5316\u3055\u308c\u305f\u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u304b\u3089\u6587\u5b57\u5217\u3092\u8868\u793a\u3059\u308b\u306b\u306f&nbsp;<a href=\"javascript:void(0)\">struts:text \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u307e\u3059<\/a>\u3002<a href=\"javascript:void(0)\"><\/a><\/li>\n\n\n\n<li>\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u30ec\u30a4\u30a2\u30a6\u30c8: \u958b\u767a\u8005\u306f\u3001JSP \u30c6\u30af\u30ce\u30ed\u30b8\u3092\u4f7f\u7528\u3057\u3066\u3001\u30da\u30fc\u30b8\u306e\u30c7\u30b6\u30a4\u30f3\u3068\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3092\u7c21\u7d20\u5316\u3059\u308b\u518d\u5229\u7528\u53ef\u80fd\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u30ec\u30a4\u30a2\u30a6\u30c8\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001JSP \u306e include \u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3068\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u8005\u306f\u5171\u901a\u306e\u30da\u30fc\u30b8\u8981\u7d20 (\u30d8\u30c3\u30c0\u30fc\u3001\u30d5\u30c3\u30bf\u30fc\u306a\u3069) \u3092\u500b\u5225\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u306b\u62bd\u8c61\u5316\u3057\u3001\u4ed6\u306e\u30da\u30fc\u30b8\u3067\u53c2\u7167\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u8981\u7d04\u3059\u308b\u3068\u3001JSP \u306f\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30d3\u30e5\u30fc\u5c64\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u3057\u3066\u3001\u30c7\u30fc\u30bf\u3068\u30e6\u30fc\u30b6\u30fc\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u30ec\u30f3\u30c0\u30ea\u30f3\u30b0\u3001\u304a\u3088\u3073\u30a2\u30af\u30b7\u30e7\u30f3\u30fb\u30af\u30e9\u30b9\u3068\u30d5\u30a9\u30fc\u30e0 Bean \u3068\u306e\u5bfe\u8a71\u3092\u62c5\u5f53\u3057\u307e\u3059\u3002 JSP \u30c6\u30af\u30ce\u30ed\u30b8\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u958b\u767a\u8005\u306f\u52d5\u7684\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u751f\u6210\u3057\u3066\u8868\u793a\u3057\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u51e6\u7406\u3068\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u7c21\u7d20\u5316\u3057\u3001\u518d\u5229\u7528\u53ef\u80fd\u306a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u30ec\u30a4\u30a2\u30a6\u30c8\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts\u958b\u767a\u74b0\u5883\u3078\u306eJDK\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u8a2d\u5b9a\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u958b\u767a\u74b0\u5883\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3059\u308b\u306b\u306f\u3001\u307e\u305a Java \u958b\u767a\u30ad\u30c3\u30c8 (JDK) \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 JDK \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u69cb\u6210\u3059\u308b\u305f\u3081\u306e\u8a73\u7d30\u306a\u624b\u9806\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>JDK\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9: \u30aa\u30e9\u30af\u30eb\u306e\u516c\u5f0fWeb\u30b5\u30a4\u30c8(<a href=\"https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html%EF%BC%89%E4%BB%A5%E4%B8%8B%E8%BD%BD%E6%9C%80%E6%96%B0%E7%89%88%E7%9A%84JDK%E5%AE%89%E8%A3%85%E5%8C%85%E3%80%82%E6%A0%B9%E6%8D%AE%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%EF%BC%88%E5%A6%82Windows%E3%80%81macOS%E6%88%96Linux%EF%BC%89%E9%80%89%E6%8B%A9%E5%90%88%E9%80%82%E7%9A%84%E5%AE%89%E8%A3%85%E5%8C%85%E3%80%82%E8%AF%B7%E6%B3%A8%E6%84%8F%EF%BC%8CStruts%E6%A1%86%E6%9E%B6%E8%A6%81%E6%B1%82Java%E7%89%88%E6%9C%AC%E4%B8%BA1.8%E6%88%96%E6%9B%B4%E9%AB%98%E7%89%88%E6%9C%AC%E3%80%82\">https:\/\/www.oracle.com\/java\/technologies\/javase-downloads.html)\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3001JDK\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002 \u3054\u4f7f\u7528\u306e\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0\u30fb\u30b7\u30b9\u30c6\u30e0(Windows\u3001macOS\u3001Linux \u306a\u3069)\u306b\u57fa\u3065\u3044\u3066\u9069\u5207\u306a\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30fb\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u9078\u629e\u3057\u307e\u3059\u3002 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u306f Java \u30d0\u30fc\u30b8\u30e7\u30f3 1.8 \u4ee5\u964d\u304c\u5fc5\u8981\u3067\u3042\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/a><\/li>\n\n\n\n<li>JDK \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb: \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3001\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u5f93\u3063\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6642\u306b\u3001JDK \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d1\u30b9\u3092\u9078\u629e\u3059\u308b\u304b\u3001\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30d1\u30b9\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5b8c\u4e86\u3059\u308b\u3068\u3001JDK \u306f &#8220;jdk \u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7&#8221; \u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u74b0\u5883\u5909\u6570\u306e\u69cb\u6210: \u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b7\u30b9\u30c6\u30e0\u304c JDK \u306e\u5b9f\u884c\u53ef\u80fd\u30d5\u30a1\u30a4\u30eb (javac \u3084 java \u306a\u3069) \u3092\u898b\u3064\u3051\u308b\u306b\u306f\u3001\u74b0\u5883\u5909\u6570\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u3055\u307e\u3056\u307e\u306a\u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0 \u30b7\u30b9\u30c6\u30e0\u306e\u69cb\u6210\u65b9\u6cd5\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002\n<ul class=\"wp-block-list\">\n<li>\u30a6\u30a3\u30f3\u30c9\u30a6\u30ba\uff1a\n<ol class=\"wp-block-list\">\n<li>JDK \u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30d1\u30b9\u3092\u898b\u3064\u3051\u307e\u3059 (\u4f8b: C:\\Program Files\\Java\\jdk \u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7)\u3002<\/li>\n\n\n\n<li>[\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf\u30fc] (\u307e\u305f\u306f [PC] ) \u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001[\u30d7\u30ed\u30d1\u30c6\u30a3] \u3092\u9078\u629e\u3057\u3066\u3001[\u30b7\u30b9\u30c6\u30e0\u306e\u8a73\u7d30\u8a2d\u5b9a] \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>[\u30b7\u30b9\u30c6\u30e0\u306e\u30d7\u30ed\u30d1\u30c6\u30a3] \u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001[\u74b0\u5883\u5909\u6570] \u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300c\u30b7\u30b9\u30c6\u30e0\u5909\u6570\u300d\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u3001\u300c\u30d1\u30b9\u300d\u3068\u3044\u3046\u540d\u524d\u306e\u5909\u6570\u3092\u898b\u3064\u3051\u3066\u3001\u300c\u7de8\u96c6\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>&#8220;Path&#8221; \u5909\u6570\u306e\u5024\u306b\u3001JDK \u306e bin \u30d5\u30a9\u30eb\u30c0\u30fc\u3078\u306e\u30d1\u30b9\u3092\u8ffd\u52a0\u3057\u307e\u3059 (\u4f8b: C:\\Program Files\\Java\\jdk-\u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\\bin)\u3002 \u5fc5\u305a\u30bb\u30df\u30b3\u30ed\u30f3 (; )\u5206\u96e2\u3002<\/li>\n\n\n\n<li>[OK] \u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>\u30de\u30c3\u30afOS:\n<ol class=\"wp-block-list\">\n<li>\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3057\u3066\u3001bash\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304d\u307e\u3059\u3002<code>nano ~\/.bash_profile<\/code><\/li>\n\n\n\n<li>\u30d5\u30a1\u30a4\u30eb\u306e\u6700\u5f8c\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0\u3057\u307e\u3059(\u300cyour_path_to_jdk\u300d\u3092\u5b9f\u969b\u306eJDK\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d1\u30b9\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059)\u3002 bashCopy \u30b3\u30fc\u30c9<code>export JAVA_HOME=your_path_to_jdk export PATH=$JAVA_HOME\/bin:$PATH<\/code><\/li>\n\n\n\n<li>\u300cCtrl + X\u300d\u3092\u62bc\u3057\u3066\u7d42\u4e86\u3057\u3001\u300cY\u300d\u3092\u62bc\u3057\u3066\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002 \u6700\u5f8c\u306b\u3001\u5909\u66f4\u3092\u6709\u52b9\u306b\u3059\u308b\u305f\u3081\u306b\u5165\u529b\u3057\u307e\u3059\u3002<code>source ~\/.bash_profile<\/code><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>\u30ea\u30ca\u30c3\u30af\u30b9:\n<ol class=\"wp-block-list\">\n<li>\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5165\u529b\u3057\u3066\u3001bash\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304d\u307e\u3059\u3002<code>nano ~\/.bashrc<\/code><\/li>\n\n\n\n<li>\u30d5\u30a1\u30a4\u30eb\u306e\u6700\u5f8c\u306b\u4ee5\u4e0b\u3092\u8ffd\u52a0\u3057\u307e\u3059(\u300cyour_path_to_jdk\u300d\u3092\u5b9f\u969b\u306eJDK\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d1\u30b9\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059)\u3002 bashCopy \u30b3\u30fc\u30c9<code>export JAVA_HOME=your_path_to_jdk export PATH=$JAVA_HOME\/bin:$PATH<\/code><\/li>\n\n\n\n<li>\u300cCtrl + X\u300d\u3092\u62bc\u3057\u3066\u7d42\u4e86\u3057\u3001\u300cY\u300d\u3092\u62bc\u3057\u3066\u5909\u66f4\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002 \u6700\u5f8c\u306b\u3001\u5909\u66f4\u3092\u6709\u52b9\u306b\u3059\u308b\u305f\u3081\u306b\u5165\u529b\u3057\u307e\u3059\u3002<code>source ~\/.bashrc<\/code><\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>JDK \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u306e\u78ba\u8a8d: JDK \u304c\u6b63\u3057\u304f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304a\u3088\u3073\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u306b\u306f\u3001\u30b3\u30de\u30f3\u30c9\u30fb\u30d7\u30ed\u30f3\u30d7\u30c8\u307e\u305f\u306f\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u6b21\u306e\u3088\u3046\u306b\u5165\u529b\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u547d\u4ee4\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>java -version\n<\/code><\/pre>\n\n\n\n<p>\u305d\u3057\u3066\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>javac -version\n<\/code><\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30b3\u30de\u30f3\u30c9\u304c Java \u304a\u3088\u3073 Javac \u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831\u3092\u6b63\u3057\u304f\u8868\u793a\u3059\u308b\u5834\u5408\u3001JDK \u306f\u6b63\u5e38\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304a\u3088\u3073\u69cb\u6210\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u51fa\u529b\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">scssCopy code<code>java version \"1.8.0_301\"\nJava(TM) SE Runtime Environment (build 1.8.0_301-b09)\nJava HotSpot(TM) 64-Bit Server VM (build 25.301-b09, mixed mode)\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\">Copy code<code>javac 1.8.0_301\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u3092\u5b8c\u4e86\u3059\u308b\u3068\u3001JDK \u304c\u6b63\u5e38\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304a\u3088\u3073\u69cb\u6210\u3055\u308c\u307e\u3059\u3002 \u6b21\u306b\u3001Struts \u958b\u767a\u74b0\u5883\u3092\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3057\u3001\u5fc5\u8981\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3068\u30c4\u30fc\u30eb (Apache Tomcat \u30b5\u30fc\u30d0\u30fc\u3001IDE \u306a\u3069) \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u57fa\u3065\u304f Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3092\u958b\u59cb\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts \u958b\u767a\u74b0\u5883\u7528\u306e Eclipse IDE \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u69cb\u6210\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Eclipse IDE\u306f\u3001Java\u3084\u305d\u306e\u4ed6\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u5e83\u304f\u4f7f\u7528\u3055\u308c\u3066\u3044\u308b\u4eba\u6c17\u306e\u3042\u308b\u5f37\u529b\u306a\u7d71\u5408\u958b\u767a\u74b0\u5883\u3067\u3059\u3002 Struts \u958b\u767a\u74b0\u5883\u306b Eclipse IDE \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u69cb\u6210\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u5f93\u3063\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Eclipse IDE\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9:Eclipse\u306e\u516c\u5f0fWeb\u30b5\u30a4\u30c8(<a href=\"https:\/\/www.eclipse.org\/downloads\/%EF%BC%89%E4%BB%A5%E4%B8%8B%E8%BD%BD%E6%9C%80%E6%96%B0%E7%89%88%E7%9A%84Eclipse\">https:\/\/www.eclipse.org\/downloads\/)\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3001\u6700\u65b0\u30d0\u30fc\u30b8\u30e7\u30f3\u306eEclipse<\/a>&nbsp;IDE\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u30aa\u30da\u30ec\u30fc\u30c6\u30a3\u30f3\u30b0\u30b7\u30b9\u30c6\u30e0(Windows\u3001macOS\u3001Linux\u306a\u3069)\u3068\u30b7\u30b9\u30c6\u30e0\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3(32\u30d3\u30c3\u30c8\u307e\u305f\u306f64\u30d3\u30c3\u30c8)\u306b\u4e00\u81f4\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Eclipse IDE \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u3057\u307e\u3059\u3002\n<ul class=\"wp-block-list\">\n<li>Windows \u304a\u3088\u3073 Linux: \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u9069\u5207\u306a\u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u62bd\u51fa\u3057\u307e\u3059\u3002 \u62bd\u51fa\u3057\u305f\u30d5\u30a9\u30eb\u30c0\u5185\u306e &#8220;eclipse.exe&#8221; (Windows) \u307e\u305f\u306f &#8220;eclipse&#8221; (Linux) \u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066 Eclipse \u3092\u8d77\u52d5\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>macOS:\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u89e3\u51cd\u3057\u3001Eclipse.app \u3092\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30d5\u30a9\u30eb\u30c0\u306b\u30c9\u30e9\u30c3\u30b0\u30a2\u30f3\u30c9\u30c9\u30ed\u30c3\u30d7\u3057\u307e\u3059\u3002 Eclipse.app \u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u3066 Eclipse \u3092\u8d77\u52d5\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Eclipse IDE \u3092\u69cb\u6210\u3059\u308b: Eclipse \u3092\u521d\u3081\u3066\u8d77\u52d5\u3059\u308b\u3068\u3001\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u3092\u9078\u629e\u3059\u308b\u3088\u3046\u306b\u6c42\u3081\u3089\u308c\u307e\u3059\u3002 \u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30d5\u30a1\u30a4\u30eb\u3068\u69cb\u6210\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u30d5\u30a9\u30eb\u30c0\u30fc\u3067\u3059\u3002 \u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u306b\u9069\u3057\u305f\u5834\u6240\u3092\u9078\u629e\u3057\u3001[\u958b\u59cb] \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Web Tools Platform (WTP) \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb: Eclipse \u3067 Struts \u30d9\u30fc\u30b9\u306e Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u767a\u3059\u308b\u306b\u306f\u3001Web Tools Platform (WTP) \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 WTP\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3092\u30b5\u30dd\u30fc\u30c8\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u30c4\u30fc\u30eb\u3068\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30bb\u30c3\u30c8\u3067\u3059\u3002 WTP \u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u624b\u9806\u306b\u5f93\u3044\u307e\u3059\u3002\n<ol class=\"wp-block-list\">\n<li>Eclipse \u30e1\u30cb\u30e5\u30fc\u30d0\u30fc\u3067\u3001[\u30d8\u30eb\u30d7] &gt; [\u65b0\u3057\u3044\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb] \u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300c\u4f7f\u7528\u53ef\u80fd\u306a\u30bd\u30d5\u30c8\u30a6\u30a7\u30a2\u300d\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001\u300c<a href=\"http:\/\/download.eclipse.org\/releases\/%E7%89%88%E6%9C%AC%E5%8F%B7%22%E7%9A%84URL%EF%BC%89%E3%80%82\">\u64cd\u4f5c\u300d\u30c9\u30ed\u30c3\u30d7\u30c0\u30a6\u30f3\u30fb\u30ea\u30b9\u30c8\u304b\u3089\u300c\u516c\u5f0f Eclipse \u66f4\u65b0\u30b5\u30a4\u30c8 (\u901a\u5e38\u306f http:\/\/download.eclipse.org\/releases\/ \u30d0\u30fc\u30b8\u30e7\u30f3\u756a\u53f7\u306b\u4f3c\u305f URL)\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/a><\/li>\n\n\n\n<li>\u4ee5\u4e0b\u306e\u30ea\u30b9\u30c8\u3067\u3001Web\u3001XML\u3001Java EE\u3001\u304a\u3088\u3073 OSGi Enterprise Development \u30ab\u30c6\u30b4\u30ea\u3092\u5c55\u958b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300cEclipse Java EE \u958b\u767a\u8005\u30c4\u30fc\u30eb\u300d\u30c1\u30a7\u30c3\u30af\u30fb\u30dc\u30c3\u30af\u30b9\u304a\u3088\u3073\u300cEclipse Java Web \u958b\u767a\u8005\u30c4\u30fc\u30eb\u300d\u30c1\u30a7\u30c3\u30af\u30fb\u30dc\u30c3\u30af\u30b9\u3092\u9078\u629e\u3057\u3001\u300c\u6b21\u3078\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u5f93\u3063\u3066\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30d7\u30ed\u30bb\u30b9\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304c\u5b8c\u4e86\u3057\u305f\u3089\u3001Eclipse \u3092\u518d\u8d77\u52d5\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Apache Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u69cb\u6210\u3059\u308b: Eclipse \u3067 Struts \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u884c\u304a\u3088\u3073\u30c7\u30d0\u30c3\u30b0\u3059\u308b\u306b\u306f\u3001Apache Tomcat \u306a\u3069\u306e Web \u30b5\u30fc\u30d0\u30fc\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u516c\u5f0f\u30b5\u30a4\u30c8<a href=\"https:\/\/tomcat.apache.org\/%EF%BC%89%E4%B8%8B%E8%BD%BD%E5%B9%B6%E5%AE%89%E8%A3%85Apache\">(https:\/\/tomcat.apache.org\/<\/a>)\u304b\u3089Apache Tomcat\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u6b21\u306b\u3001\u4ee5\u4e0b\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u5f93\u3063\u3066\u3001Eclipse \u3067 Tomcat \u3092\u69cb\u6210\u3057\u307e\u3059\u3002\n<ol class=\"wp-block-list\">\n<li>Eclipse \u30e1\u30cb\u30e5\u30fc\u30d0\u30fc\u3067\u3001\u300c\u30a6\u30a3\u30f3\u30c9\u30a6&gt; \u74b0\u5883\u8a2d\u5b9a\u300d(macOS \u3067\u306f Eclipse&gt; \u74b0\u5883\u8a2d\u5b9a)\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300c\u8a2d\u5b9a\u300d\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001\u300c\u30b5\u30fc\u30d0\u30fc&gt;\u30e9\u30f3\u30bf\u30a4\u30e0\u74b0\u5883\u300d\u3092\u5c55\u958b\u3057\u3001\u300c\u8ffd\u52a0\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002 3<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u300c\u30b5\u30fc\u30d0\u30fc\u30fb\u30e9\u30f3\u30bf\u30a4\u30e0\u74b0\u5883\u306e\u8ffd\u52a0\u300d\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001Apache Tomcat \u306e\u30d0\u30fc\u30b8\u30e7\u30f3 (\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u305f\u30d0\u30fc\u30b8\u30e7\u30f3\u3068\u4e00\u81f4\u3059\u308b) \u3092\u9078\u629e\u3057\u3001\u300c\u6b21\u3078\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Apache Tomcat \u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30fc\u3092\u53c2\u7167\u3057\u3001\u300c\u5b8c\u4e86\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>[\u8a2d\u5b9a]\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001[\u9069\u7528]\u30dc\u30bf\u30f3\u3068[OK]\u30dc\u30bf\u30f3\u3092\u30bf\u30c3\u30d7\u3057\u3066\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210: Eclipse IDE \u3092\u69cb\u6210\u3057\u305f\u306e\u3067\u3001Struts \u30d9\u30fc\u30b9\u306e Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u3092\u958b\u59cb\u3067\u304d\u307e\u3059\u3002 \u4ee5\u4e0b\u306e\u624b\u9806\u306b\u5f93\u3044\u307e\u3059\u3002\n<ol class=\"wp-block-list\">\n<li>Eclipse \u30e1\u30cb\u30e5\u30fc\u30d0\u30fc\u3067\u3001[\u30d5\u30a1\u30a4\u30eb]\u3001[\u65b0\u898f\u4f5c\u6210&gt; \u305d\u306e\u4ed6] &gt; \u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>[\u65b0\u898f\u4f5c\u6210] \u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001[Web] \u30ab\u30c6\u30b4\u30ea\u3092\u5c55\u958b\u3057\u3001[\u52d5\u7684 Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8] \u3092\u9078\u629e\u3057\u3066\u3001[\u6b21\u3078] \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u3092\u5165\u529b\u3057\u3001\u30bf\u30fc\u30b2\u30c3\u30c8\u30e9\u30f3\u30bf\u30a4\u30e0(\u3064\u307e\u308a\u3001\u4ee5\u524d\u306b\u69cb\u6210\u3057\u305fApache Tomcat\u30b5\u30fc\u30d0\u30fc)\u3092\u9078\u629e\u3057\u3001\u52d5\u7684Web\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304cStruts\u30d0\u30fc\u30b8\u30e7\u30f3\u3068\u4e92\u63db\u6027\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059(\u901a\u5e38\u306f2.5\u4ee5\u964d\u3092\u9078\u629e\u3057\u307e\u3059)\u3002<\/li>\n\n\n\n<li>\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u5f93\u3063\u3066\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u30d7\u30ed\u30bb\u30b9\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n<\/li>\n\n\n\n<li>Struts \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e\u8ffd\u52a0: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067 Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001Struts \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc (JAR \u30d5\u30a1\u30a4\u30eb) \u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u5fc5\u8981\u306aJAR\u30d5\u30a1\u30a4\u30eb\u306f\u3001Struts\u306e\u516c\u5f0fWeb\u30b5\u30a4\u30c8(https:\/\/struts.apache.org\/download.html)\u304b\u3089\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<a href=\"https:\/\/struts.apache.org\/download.html%EF%BC%89%E4%B8%8B%E8%BD%BD%E6%89%80%E9%9C%80%E7%9A%84JAR%E6%96%87%E4%BB%B6%EF%BC%8C%E6%88%96%E4%BD%BF%E7%94%A8Maven%E6%88%96Gradle%E7%AD%89%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7%E7%AE%A1%E7%90%86%E4%BE%9D%E8%B5%96%E3%80%82\">\u3059\u308b\u304b\u3001Maven\u3084Gradle\u306a\u3069\u306e\u30d3\u30eb\u30c9\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u4f9d\u5b58\u95a2\u4fc2\u3092\u7ba1\u7406\u3067\u304d\u307e\u3059\u3002<\/a>\n<ol class=\"wp-block-list\">\n<li>Eclipse \u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u300c\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300c\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u300d\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001\u300cJava \u30d3\u30eb\u30c9\u30d1\u30b9\u300d\u3092\u9078\u629e\u3057\u3001\u300c\u30e9\u30a4\u30d6\u30e9\u30ea\u300d\u30bf\u30d6\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300c\u5916\u90e8 JAR \u306e\u8ffd\u52a0\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001Struts \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u542b\u3080\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u53c2\u7167\u3057\u3001\u3059\u3079\u3066\u306e JAR \u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066\u300c\u958b\u304f\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>[\u30d7\u30ed\u30d1\u30c6\u30a3]\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001[\u9069\u7528]\u30dc\u30bf\u30f3\u3068[OK]\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3067\u3001Eclipse IDE \u304c\u6b63\u5e38\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304a\u3088\u3073\u69cb\u6210\u3055\u308c\u305f\u306e\u3067\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u57fa\u3065\u304f Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3092\u958b\u59cb\u3059\u308b\u6e96\u5099\u304c\u6574\u3044\u307e\u3057\u305f\u3002 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\u3068\u304d\u306f\u3001Struts \u306e\u6a5f\u80fd\u3092\u4f7f\u7528\u3059\u308b\u305f\u3081\u306b\u3001\u5fc5\u305a Struts \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u8ffd\u52a0\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u540c\u6642\u306b\u3001Apache Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u69cb\u6210\u3057\u3066\u3001Eclipse \u3067\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u7c21\u5358\u306b\u5b9f\u884c\u304a\u3088\u3073\u30c7\u30d0\u30c3\u30b0\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30b9\u30c8\u30e9\u30c3\u30c8\u958b\u767a\u74b0\u5883\u7528\u306eTomcat\u30b5\u30fc\u30d0\u30fc\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3068\u69cb\u6210\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Apache Tomcat Server \u306f\u3001Java Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u305f\u3081\u306e\u4eba\u6c17\u306e\u3042\u308b\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9 Web \u30b5\u30fc\u30d0\u30fc\u3067\u3059\u3002 \u4ee5\u4e0b\u306f\u3001Apache Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u69cb\u6210\u3059\u308b\u305f\u3081\u306e\u624b\u9806\u306e\u8a73\u7d30\u306a\u8aac\u660e\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Apache Tomcat\u306e\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9:Apache Tomcat\u306e\u516c\u5f0fWeb\u30b5\u30a4\u30c8(<a href=\"https:\/\/tomcat.apache.org\/%EF%BC%89%EF%BC%8C%E9%80%89%E6%8B%A9%E4%B8%8E%E6%82%A8%E7%9A%84%E9%9C%80%E6%B1%82%E5%92%8C%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E7%9B%B8%E5%8C%B9%E9%85%8D%E7%9A%84Tomcat%E7%89%88%E6%9C%AC%E3%80%82%E9%80%9A%E5%B8%B8%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E9%80%89%E6%8B%A9%E6%9C%80%E6%96%B0%E7%9A%84%E7%A8%B3%E5%AE%9A%E7%89%88%E6%9C%AC%EF%BC%88%E5%A6%82Tomcat\">https:\/\/tomcat.apache.org\/)\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3066\u3001\u30cb\u30fc\u30ba\u3068\u958b\u767a\u74b0\u5883\u306b\u4e00\u81f4\u3059\u308bTomcat\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u9078\u629e\u3057\u3066\u304f\u3060\u3055\u3044\u3002 \u901a\u5e38\u306f\u3001\u6700\u65b0\u306e\u5b89\u5b9a\u30d0\u30fc\u30b8\u30e7\u30f3 (<\/a>Tomcat 9 \u3084 Tomcat 10 \u306a\u3069) \u3092\u9078\u629e\u3057\u307e\u3059\u3002 zip (Windows) \u30d5\u30a1\u30a4\u30eb\u3084 tar.gz (macOS \u304a\u3088\u3073 Linux) \u30d5\u30a1\u30a4\u30eb\u306a\u3069\u3001\u5bfe\u5fdc\u3059\u308b\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30d0\u30a4\u30ca\u30ea \u30c7\u30a3\u30b9\u30c8\u30ea\u30d3\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Apache Tomcat \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb: \u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u9069\u5207\u306a\u5834\u6240\u306b\u89e3\u51cd\u3057\u307e\u3059\u3002 \u62bd\u51fa\u3055\u308c\u305f\u30d5\u30a9\u30eb\u30c0\u306f\u3001Tomcat \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u3059\u3002 \u3053\u306e\u30d1\u30b9\u306f\u3001\u5f8c\u7d9a\u306e\u69cb\u6210\u306b\u4f7f\u7528\u3055\u308c\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/li>\n\n\n\n<li>\u74b0\u5883\u5909\u6570\u306e\u69cb\u6210 (\u30aa\u30d7\u30b7\u30e7\u30f3): \u30b3\u30de\u30f3\u30c9 \u30e9\u30a4\u30f3\u304b\u3089 Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u4fbf\u5229\u306b\u8d77\u52d5\u304a\u3088\u3073\u505c\u6b62\u3059\u308b\u305f\u3081\u306b\u3001Tomcat \u306e bin \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u30b7\u30b9\u30c6\u30e0\u306e PATH \u74b0\u5883\u5909\u6570\u306b\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002 \u8a73\u7d30\u306b\u3064\u3044\u3066\u306f\u3001JDK \u3067\u306e\u74b0\u5883\u5909\u6570\u306e\u69cb\u6210\u306b\u95a2\u3059\u308b\u524d\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002 Tomcat \u306e\u5834\u5408\u3001\u305d\u306e\u30d3\u30f3\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30d1\u30b9\u3092\u30b7\u30b9\u30c6\u30e0\u306e PATH \u74b0\u5883\u5909\u6570\u306b\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u30c6\u30b9\u30c8\u3059\u308b: Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u8d77\u52d5\u3057\u3066\u3001\u6b63\u3057\u304f\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u30c6\u30b9\u30c8\u3057\u307e\u3059\u3002<ul><li>Windows:\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306ebin\u30d5\u30a9\u30eb\u30c0\u306b\u3042\u308b\u300cstartup.bat\u300d\u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30d6\u30eb\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li><li>macOS\u304a\u3088\u3073Linux:\u30bf\u30fc\u30df\u30ca\u30eb\u3067\u3001\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306ebin\u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u79fb\u52d5\u3057\u3001\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<code>.\/startup.sh<\/code><\/li><\/ul>\u8d77\u52d5\u304c\u6210\u529f\u3059\u308b\u3068\u3001Web \u30d6\u30e9\u30a6\u30b6\u30fc\u3092\u4f7f\u7528\u3057\u3066\u3001Apache Tomcat \u306e\u30a6\u30a7\u30eb\u30ab\u30e0 \u30da\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002 Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u505c\u6b62\u3059\u308b\u306b\u306f\u3001\u9069\u5207\u306a &#8220;shutdown.bat&#8221; (Windows) \u307e\u305f\u306f (macOS \u304a\u3088\u3073 Linux) \u30b9\u30af\u30ea\u30d7\u30c8\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<code>http:\/\/localhost:8080<\/code><code>.\/shutdown.sh<\/code><\/li>\n\n\n\n<li>Eclipse \u3067 Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u69cb\u6210\u3059\u308b: Eclipse IDE \u3067 Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u69cb\u6210\u3059\u308b\u306b\u306f\u3001\u524d\u306e\u56de\u7b54\u306e\u300cApache Tomcat \u30b5\u30fc\u30d0\u30fc\u306e\u69cb\u6210\u300d\u30bb\u30af\u30b7\u30e7\u30f3\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u3092\u5b8c\u4e86\u3059\u308b\u3068\u3001Apache Tomcat\u30b5\u30fc\u30d0\u30fc\u304c\u6b63\u5e38\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u304a\u3088\u3073\u69cb\u6210\u3055\u308c\u307e\u3057\u305f\u3002 \u6b21\u306b\u3001Eclipse IDE \u3092\u4f7f\u7528\u3057\u3066\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u57fa\u3065\u304f Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u767a\u3001\u30c7\u30d7\u30ed\u30a4\u3001\u304a\u3088\u3073\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7c21\u5358\u306aStruts\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u5358\u7d14\u306a Struts \u30d9\u30fc\u30b9\u306e Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u5f93\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u958b\u767a\u74b0\u5883\u3092\u69cb\u6210\u3059\u308b: JDK\u3001Eclipse IDE\u3001\u304a\u3088\u3073 Apache Tomcat \u30b5\u30fc\u30d0\u30fc\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3001\u69cb\u6210\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002 \u3053\u308c\u3089\u306e\u624b\u9806\u306f\u3001\u4ee5\u524d\u306e\u56de\u7b54\u3067\u8a73\u3057\u304f\u8aac\u660e\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u52d5\u7684 Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002\n<ul class=\"wp-block-list\">\n<li>Eclipse IDE \u3092\u958b\u304d&gt; \u65b0\u898f&gt;\u305d\u306e\u4ed6&#8230;\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>[\u65b0\u898f\u4f5c\u6210] \u30c0\u30a4\u30a2\u30ed\u30b0 \u30dc\u30c3\u30af\u30b9\u3067\u3001[Web] \u30ab\u30c6\u30b4\u30ea\u3092\u5c55\u958b\u3057\u3001[\u30c0\u30a4\u30ca\u30df\u30c3\u30af Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8] \u3092\u9078\u629e\u3057\u3066\u3001[\u6b21\u3078] \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u540d\u524d\u3092\u5165\u529b\u3057\u3001\u4ee5\u524d\u306b\u69cb\u6210\u3057\u305f\u30bf\u30fc\u30b2\u30c3\u30c8\u30fb\u30e9\u30f3\u30bf\u30a4\u30e0 (Apache Tomcat \u30b5\u30fc\u30d0\u30fc) \u3092\u9078\u629e\u3057\u3001\u52d5\u7684 Web \u30e2\u30b8\u30e5\u30fc\u30eb\u30fb\u30d0\u30fc\u30b8\u30e7\u30f3\u304c Struts \u30d0\u30fc\u30b8\u30e7\u30f3 (\u901a\u5e38\u306f 2.5 \u4ee5\u964d\u3092\u9078\u629e) \u3068\u4e92\u63db\u6027\u304c\u3042\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d7\u30ed\u30f3\u30d7\u30c8\u306b\u5f93\u3063\u3066\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u30d7\u30ed\u30bb\u30b9\u3092\u5b8c\u4e86\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Struts \u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u8ffd\u52a0: Struts \u306e\u516c\u5f0f Web \u30b5\u30a4\u30c8 (https:\/\/struts.apache.org\/download.html) \u304b\u3089\u5fc5\u8981\u306a JAR \u30d5\u30a1\u30a4\u30eb\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9<a href=\"https:\/\/struts.apache.org\/download.html%EF%BC%89%E4%B8%8B%E8%BD%BD%E6%89%80%E9%9C%80%E7%9A%84JAR%E6%96%87%E4%BB%B6%EF%BC%8C%E6%88%96%E4%BD%BF%E7%94%A8Maven%E6%88%96Gradle%E7%AD%89%E6%9E%84%E5%BB%BA%E5%B7%A5%E5%85%B7%E7%AE%A1%E7%90%86%E4%BE%9D%E8%B5%96%E3%80%82%E5%B0%86%E8%BF%99%E4%BA%9BJAR%E6%96%87%E4%BB%B6%E6%B7%BB%E5%8A%A0%E5%88%B0%E9%A1%B9%E7%9B%AE%E7%9A%84%E7%B1%BB%E8%B7%AF%E5%BE%84%E4%B8%AD%EF%BC%9A\">\u3059\u308b\u304b\u3001Maven \u3084 Gradle \u306a\u3069\u306e\u30d3\u30eb\u30c9\u30c4\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u4f9d\u5b58\u95a2\u4fc2\u3092\u7ba1\u7406\u3057\u307e\u3059\u3002 \u6b21\u306e JAR \u30d5\u30a1\u30a4\u30eb\u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002<\/a>\n<ul class=\"wp-block-list\">\n<li>Eclipse \u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u540d\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u300c\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300c\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u300d\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001\u300cJava \u30d3\u30eb\u30c9\u30d1\u30b9\u300d\u3092\u9078\u629e\u3057\u3001\u300c\u30e9\u30a4\u30d6\u30e9\u30ea\u300d\u30bf\u30d6\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u300c\u5916\u90e8 JAR \u306e\u8ffd\u52a0\u300d\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3001Struts \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u542b\u3080\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u53c2\u7167\u3057\u3001\u3059\u3079\u3066\u306e JAR \u30d5\u30a1\u30a4\u30eb\u3092\u9078\u629e\u3057\u3066\u300c\u958b\u304f\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>[\u30d7\u30ed\u30d1\u30c6\u30a3]\u30a6\u30a3\u30f3\u30c9\u30a6\u3067\u3001[\u9069\u7528]\u30dc\u30bf\u30f3\u3068[OK]\u30dc\u30bf\u30f3\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u8a2d\u5b9a\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Struts \u30b3\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u307e\u3059\u3002\n<ul class=\"wp-block-list\">\n<li>ActionForm: src \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b Java \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3001org.apache.struts.action.ActionForm \u3092\u7d99\u627f\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a2\u30af\u30b7\u30e7\u30f3: src \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b Java \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3001org.apache.struts.action.Action \u3092\u7d99\u627f\u3057\u307e\u3059\u3002 execute() \u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u3001\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>JSP \u30d3\u30e5\u30fc: \u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u3001WebContent \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u65b0\u3057\u3044 JSP \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>struts-config .xml\u306e\u69cb\u6210: struts-config.xml \u3068\u3044\u3046\u30d5\u30a1\u30a4\u30eb\u3092 WEB-INF \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30fc\u306b\u4f5c\u6210\u3057\u3066\u3001Struts \u306e\u30b3\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u69cb\u6210\u3057\u307e\u3059\u3002 \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u3001ActionForms\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u3001\u304a\u3088\u3073\u305d\u308c\u3089\u306e\u9593\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u95a2\u4fc2\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Web.xml\u306e\u69cb\u6210: WEB-INF \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30fc\u5185\u306e web.xml \u30d5\u30a1\u30a4\u30eb\u3067\u3001\u30b9\u30c8\u30e9\u30c3\u30c8\u30fb\u30b3\u30a2\u30fb\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e ActionServlet \u304a\u3088\u3073\u30b9\u30c8\u30e9\u30c3\u30c8\u69cb\u6210.xml\u3078\u306e\u30d1\u30b9\u3092\u69cb\u6210\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30c7\u30d7\u30ed\u30a4\u3057\u3066\u5b9f\u884c\u3059\u308b\u306b\u306f:\n<ul class=\"wp-block-list\">\n<li>Eclipse \u3067\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u300c\u5225\u306e\u30e6\u30fc\u30b6\u30fc\u3068\u3057\u3066\u5b9f\u884c&gt; \u30b5\u30fc\u30d0\u30fc\u4e0a\u3067\u5b9f\u884c\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u8868\u793a\u3055\u308c\u308b\u30c0\u30a4\u30a2\u30ed\u30b0\u30dc\u30c3\u30af\u30b9\u3067\u3001\u524d\u306b\u69cb\u6210\u3057\u305f Apache Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u9078\u629e\u3057\u3001\u300c\u5b8c\u4e86\u300d\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Eclipse \u304c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30c7\u30d7\u30ed\u30a4\u3057\u3066\u8d77\u52d5\u3057\u3001Web \u30d6\u30e9\u30a6\u30b6\u30fc\u304c\u81ea\u52d5\u7684\u306b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u958b\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u3092\u5b9f\u884c\u3059\u308b\u3068\u3001\u5358\u7d14\u306a Struts \u30d9\u30fc\u30b9\u306e Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30fb\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u6b63\u5e38\u306b\u4f5c\u6210\u3055\u308c\u3001\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u30d7\u30ed\u30bb\u30b9\u3067\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30cb\u30fc\u30ba\u306b\u5fdc\u3058\u3066\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u304a\u3088\u3073\u62e1\u5f35\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30a2\u30af\u30b7\u30e7\u30f3\u30d5\u30a9\u30fc\u30e0\u30af\u30e9\u30b9\u306e\u66f8\u304d\u65b9\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p><code>ActionForm<\/code>Struts \u30af\u30e9\u30b9\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u304b\u3089\u306e\u30c7\u30fc\u30bf\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u3066\u51e6\u7406\u3059\u308b Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3059\u3002 \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3059\u308b\u3068\u304d\u306f\u3001\u30af\u30e9\u30b9\u3092\u7d99\u627f\u3057\u3001\u30d5\u30a9\u30fc\u30e0\u5185\u306e\u5404\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u5bfe\u5fdc\u3059\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30b2\u30c3\u30bf\u30fc\/\u30bb\u30c3\u30bf\u30fc\u30e1\u30bd\u30c3\u30c9\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<code>ActionForm<\/code><code>org.apache.struts.action.ActionForm<\/code><\/p>\n\n\n\n<p>\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<code>ActionForm<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Eclipse IDE \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u65b0\u3057\u3044 Java \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u3068\u3044\u3046\u540d\u524d\u306e\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<code>src<\/code><code>MyForm<\/code><\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u3092\u7d99\u627f\u3059\u308b\u3088\u3046\u306b\u30af\u30e9\u30b9\u3092\u5909\u66f4\u3057\u307e\u3059\u3002 \u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8 () \u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u3001\u30af\u30e9\u30b9\u540d\u53c2\u7167\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3057\u307e\u3059\u3002<code>MyForm<\/code><code>org.apache.struts.action.ActionForm<\/code><code>org.apache.struts.action.ActionForm<\/code><\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0\u306e\u5404\u30d5\u30a3\u30fc\u30eb\u30c9\u306b\u9069\u5207\u306a\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30d5\u30a9\u30fc\u30e0\u306b Enterbox \u3068\u3044\u3046\u540d\u524d\u306e\u5165\u529b\u30dc\u30c3\u30af\u30b9\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5834\u5408\u306f\u3001\u30af\u30e9\u30b9\u306b One \u3068\u3044\u3046\u540d\u524d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<code>username<\/code><code>MyForm<\/code><code>username<\/code><\/li>\n\n\n\n<li>getter \u30e1\u30bd\u30c3\u30c9\u3068 setter \u30e1\u30bd\u30c3\u30c9\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u3054\u3068\u306b\u751f\u6210\u3055\u308c\u307e\u3059\u3002 Eclipse \u3067\u306f\u3001\u30b3\u30fc\u30c9\u30fb\u30a8\u30c7\u30a3\u30bf\u30fc\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u300c\u30bd\u30fc\u30b9\u300d&gt;\u300c\u30b2\u30c3\u30bf\u30fc\u3068\u30bb\u30c3\u30bf\u30fc\u306e\u751f\u6210&#8230;\u300d\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3001\u3053\u308c\u3089\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u81ea\u52d5\u7684\u306b\u751f\u6210\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u3089\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u3068 Java \u30af\u30e9\u30b9\u306e\u9593\u3067\u30c7\u30fc\u30bf\u3092\u6e21\u3059\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u3001\u30ab\u30b9\u30bf\u30e0 \u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 Validate \u30e1\u30bd\u30c3\u30c9\u306f\u3001\u691c\u8a3c\u4e2d\u306b\u691c\u51fa\u3055\u308c\u305f\u3059\u3079\u3066\u306e\u30a8\u30e9\u30fc\u3092\u542b\u3080\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002 \u30a8\u30e9\u30fc\u304c\u898b\u3064\u304b\u3089\u306a\u3044\u5834\u5408\u306f\u3001\u7a7a\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u8fd4\u3055\u308c\u307e\u3059\u3002 \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ab\u30b9\u30bf\u30e0 \u30a8\u30e9\u30fc\u60c5\u5831\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<code>validate()<\/code><code>validate()<\/code><code>org.apache.struts.action.ActionErrors<\/code><code>ActionErrors<\/code><code>addError()<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u7c21\u5358\u306a\u30af\u30e9\u30b9\u306e\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<code>ActionForm<\/code><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>import org.apache.struts.action.ActionForm;\nimport org.apache.struts.action.ActionErrors;\nimport org.apache.struts.action.ActionError;\n\npublic class MyForm extends ActionForm {\n    private String username;\n    private String email;\n\n    public String getUsername() {\n        return username;\n    }\n\n    public void setUsername(String username) {\n        this.username = username;\n    }\n\n    public String getEmail() {\n        return email;\n    }\n\n    public void setEmail(String email) {\n        this.email = email;\n    }\n\n    @Override\n    public ActionErrors validate(org.apache.struts.action.ActionMapping mapping, javax.servlet.http.HttpServletRequest request) {\n        ActionErrors errors = new ActionErrors();\n        if (username == null || username.trim().isEmpty()) {\n            errors.add(\"username\", new ActionError(\"error.username.required\"));\n        }\n        if (email == null || email.trim().isEmpty()) {\n            errors.add(\"email\", new ActionError(\"error.email.required\"));\n        }\n        return errors;\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u4f8b\u3067\u306f\u30012\u3064\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u5b9a\u7fa9\u3057\u3001\u3053\u308c\u30892\u3064\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306e\u30b2\u30c3\u30bf\u30fc\u30e1\u30bd\u30c3\u30c9\u3068\u30bb\u30c3\u30bf\u30fc\u30e1\u30bd\u30c3\u30c9\u3092\u751f\u6210\u3057\u307e\u3059\u3002 \u307e\u305f\u3001AND \u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u7a7a\u3067\u306a\u3044\u3053\u3068\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306b\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3057\u305f\u3002 \u30a8\u30e9\u30fc\u304c\u898b\u3064\u304b\u3063\u305f\u5834\u5408\u306f\u3001\u9069\u5207\u306a\u30a8\u30e9\u30fc\u60c5\u5831\u304c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002<code>username<\/code><code>email<\/code><code>validate()<\/code><code>username<\/code><code>email<\/code><code>ActionErrors<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u6b21\u306b\u3001\u5148\u307b\u3069\u4f5c\u6210\u3057\u305f\u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u4ed6\u306e Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u5bfe\u8a71\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u8aac\u660e\u3057\u307e\u3059\u3002<code>ActionForm<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>JSP \u30d5\u30a9\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3059\u308b:\u6b21\u306e\u3088\u3046\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306b\u65b0\u3057\u3044 JSP \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u3053\u306e\u30da\u30fc\u30b8\u3067\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u3001\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30af\u30e9\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u307e\u3059\u3002 \u30bf\u30b0\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001Struts \u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3001JSP \u30da\u30fc\u30b8\u306e\u5148\u982d\u306b\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 jspCopy \u30b3\u30fc\u30c9\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 jspCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30d5\u30a9\u30fc\u30e0\u3092\u4f5c\u6210\u3057\u3001\u305d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u306b\u8a2d\u5b9a\u3057\u307e\u3059\u3002 \u307e\u305f\u3001\u30e9\u30d9\u30eb\u4ed8\u304d\u306e 2 \u3064\u306e\u5165\u529b\u30dc\u30c3\u30af\u30b9\u3092\u4f5c\u6210\u3057\u3001\u305d\u308c\u3089\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u305d\u308c\u305e\u308c \u3068 \u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002 \u3053\u308c\u3089\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u3001\u30af\u30e9\u30b9\u5185\u306e\u5bfe\u5fdc\u3059\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u30d0\u30a4\u30f3\u30c9\u3055\u308c\u307e\u3059\u3002<code>WebContent<\/code><code>index.jsp<\/code><code>&lt;html:form&gt;<\/code><code>ActionForm<\/code><code>&lt;html:form&gt;<\/code><code>&lt;%@ taglib uri=\"http:\/\/struts.apache.org\/tags-html\" prefix=\"html\" %&gt;&nbsp;<\/code><code>&lt;html:form action=\"\/submitForm\"&gt; &lt;table&gt; &lt;tr&gt; &lt;td&gt;Username:&lt;\/td&gt; &lt;td&gt;&lt;html:text property=\"username\" \/&gt;&lt;\/td&gt; &lt;\/tr&gt; &lt;tr&gt; &lt;td&gt;Email:&lt;\/td&gt; &lt;td&gt;&lt;html:text property=\"email\" \/&gt;&lt;\/td&gt; &lt;\/tr&gt; &lt;tr&gt; &lt;td colspan=\"2\" align=\"center\"&gt; &lt;html:submit value=\"Submit\" \/&gt; &lt;\/td&gt; &lt;\/tr&gt; &lt;\/table&gt; &lt;\/html:form&gt;&nbsp;<\/code><code>&lt;html:form&gt;<\/code><code>action<\/code><code>\/submitForm<\/code><code>&lt;html:text&gt;<\/code><code>property<\/code><code>username<\/code><code>email<\/code><code>ActionForm<\/code><\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u306e\u4f5c\u6210: \u6b21\u306e\u3088\u3046\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u65b0\u3057\u3044 Java \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u30af\u30e9\u30b9\u3092\u7d99\u627f\u3057\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3059\u3002 \u3053\u306e\u30e1\u30bd\u30c3\u30c9\u3067\u306f\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3057\u3066\u30d5\u30a9\u30fc\u30e0\u306b\u3088\u3063\u3066\u9001\u4fe1\u3055\u308c\u305f\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3001\u5bfe\u5fdc\u3059\u308b\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3067\u304d\u307e\u3059\u3002 \u4f8b: \u30b8\u30e3\u30d0\u30b3\u30d4\u30fc\u30b3\u30fc\u30c9<code>Action<\/code><code>src<\/code><code>MyAction<\/code><code>org.apache.struts.action.Action<\/code><code>execute()<\/code><code>execute()<\/code><code>ActionForm<\/code><code>import org.apache.struts.action.Action; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; public class MyAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { MyForm myForm = (MyForm) form; String username = myForm.getUsername(); String email = myForm.getEmail(); \/\/ \u5904\u7406\u4e1a\u52a1\u903b\u8f91\uff0c\u5982\u5c06\u6570\u636e\u5b58\u50a8\u5230\u6570\u636e\u5e93\u6216\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\u7b49\u3002 return mapping.findForward(\"success\"); } }<\/code><\/li>\n\n\n\n<li>\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb: \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u4e0b\u306b\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u307e\u305f\u306f\u7de8\u96c6\u3057\u307e\u3059\u3002 \u30af\u30e9\u30b9\u3092\u9069\u5207\u306a\u30d1\u30b9\u306b\u30de\u30c3\u30d7\u3057\u307e\u3059\u3002 \u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9<code>struts-config.xml<\/code><code>WEB-INF<\/code><code>struts-config.xml<\/code><code>ActionForm<\/code><code>Action<\/code><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;!DOCTYPE struts-config PUBLIC \"-\/\/Apache Software Foundation\/\/DTD Struts Configuration 1.3\/\/EN\" \"http:\/\/struts.apache.org\/dtds\/struts-config_1_3.dtd\"&gt; &lt;struts-config&gt; &lt;form-beans&gt; &lt;form-bean name=\"myForm\" type=\"com.example.MyForm\" \/&gt;<\/code><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>   &lt;\/form-beans&gt;\n   &lt;action-mappings&gt;\n       &lt;action path=\"\/submitForm\" type=\"com.example.MyAction\" name=\"myForm\" scope=\"request\" validate=\"true\" input=\"\/index.jsp\"&gt;\n           &lt;forward name=\"success\" path=\"\/success.jsp\" \/&gt;\n       &lt;\/action&gt;\n   &lt;\/action-mappings&gt;\n<\/code><\/pre>\n\n\n\n<p>&lt;\/struts-config&gt; &#8220;&#8216;<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u6700\u521d\u306b\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3057\u3001\u6b21\u306b\u30bb\u30af\u30b7\u30e7\u30f3\u5185\u306e\u30d1\u30b9\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u3092\u5b9a\u7fa9\u3057\u307e\u3057\u305f\u3002 \u3053\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u306f\u3001\u30af\u30e9\u30b9\u3092\u30af\u30e9\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u691c\u8a3c\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002 \u691c\u8a3c\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u3067\u6307\u5b9a\u3055\u308c\u305f\u30da\u30fc\u30b8\u306b\u8fd4\u3055\u308c\u307e\u3059\u3002 \u30e1\u30bd\u30c3\u30c9\u304c\u6210\u529f\u3092\u8fd4\u3059\u5834\u5408\u306f\u3001\u30da\u30fc\u30b8\u306b\u8ee2\u9001\u3055\u308c\u307e\u3059\u3002<code>&lt;form-beans&gt;<\/code><code>MyForm<\/code><code>&lt;action-mappings&gt;<\/code><code>\/submitForm<\/code><code>Action<\/code><code>MyAction<\/code><code>MyForm<\/code><code>true<\/code><code>input<\/code><code>\/index.jsp<\/code><code>execute()<\/code><code>\/success.jsp<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u69cb\u6210\u30d5\u30a1\u30a4\u30eb: \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u30fc\u5185\u306e\u30d5\u30a1\u30a4\u30eb\u3067\u3001Struts \u30b3\u30a2\u30fb\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3068\u305d\u306e\u30d1\u30b9\u3092\u69cb\u6210\u3057\u307e\u3059\u3002 \u4f8b: xmlCopy \u30b3\u30fc\u30c9 \u3053\u306e\u4f8b\u3067\u306f\u3001Struts \u30b3\u30a2\u30fb\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u3092\u5b9a\u7fa9\u3057\u3001\u305d\u308c\u3092 URL \u30d1\u30bf\u30fc\u30f3\u306b\u95a2\u9023\u4ed8\u3051\u307e\u3059\u3002 \u307e\u305f\u3001\u30d5\u30a1\u30a4\u30eb\u306e\u5834\u6240\u3082\u6307\u5b9a\u3057\u307e\u3059\u3002<code>web.xml<\/code><code>WEB-INF<\/code><code>web.xml<\/code><code>ActionServlet<\/code><code>struts-config.xml<\/code><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;web-app xmlns=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\" xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\" xsi:schemaLocation=\"http:\/\/xmlns.jcp.org\/xml\/ns\/javaee http:\/\/xmlns.jcp.org\/xml\/ns\/javaee\/web-app_4_0.xsd\" version=\"4.0\"&gt; &lt;display-name&gt;StrutsExample&lt;\/display-name&gt; &lt;servlet&gt; &lt;servlet-name&gt;action&lt;\/servlet-name&gt; &lt;servlet-class&gt;org.apache.struts.action.ActionServlet&lt;\/servlet-class&gt; &lt;init-param&gt; &lt;param-name&gt;config&lt;\/param-name&gt; &lt;param-value&gt;\/WEB-INF\/struts-config.xml&lt;\/param-value&gt; &lt;\/init-param&gt; &lt;load-on-startup&gt;1&lt;\/load-on-startup&gt; &lt;\/servlet&gt; &lt;servlet-mapping&gt; &lt;servlet-name&gt;action&lt;\/servlet-name&gt; &lt;url-pattern&gt;*.do&lt;\/url-pattern&gt; &lt;\/servlet-mapping&gt; &lt;welcome-file-list&gt; &lt;welcome-file&gt;index.jsp&lt;\/welcome-file&gt; &lt;\/welcome-file-list&gt; &lt;\/web-app&gt;&nbsp;<\/code><code>ActionServlet<\/code><code>*.do<\/code><code>struts-config.xml<\/code><\/li>\n\n\n\n<li>\u6210\u529f\u30da\u30fc\u30b8\u306e\u4f5c\u6210: \u64cd\u4f5c\u306e\u6210\u529f\u3092\u793a\u3059\u30e1\u30c3\u30bb\u30fc\u30b8\u306a\u3069\u3001\u65b0\u3057\u3044 JSP \u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001jspCopy \u30b3\u30fc\u30c9<code>success.jsp<\/code><code>&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;Success&lt;\/title&gt; &lt;\/head&gt; &lt;body&gt; &lt;h1&gt;Form submitted successfully!&lt;\/h1&gt; &lt;\/body&gt; &lt;\/html&gt;<\/code><\/li>\n\n\n\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30c7\u30d7\u30ed\u30a4\u3057\u3066\u5b9f\u884c\u3059\u308b: Eclipse \u3067\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u53f3\u30af\u30ea\u30c3\u30af\u3057\u3001\u300c\u5225\u306e\u30e6\u30fc\u30b6\u30fc\u3068\u3057\u3066\u5b9f\u884c&gt; \u30b5\u30fc\u30d0\u30fc\u4e0a\u3067\u5b9f\u884c\u300d\u3092\u9078\u629e\u3057\u307e\u3059\u3002 \u524d\u306b\u69cb\u6210\u3057\u305f Apache Tomcat \u30b5\u30fc\u30d0\u30fc\u3092\u9078\u629e\u3057\u3001[\u5b8c\u4e86] \u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\u3002 Eclipse \u304c\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u30c7\u30d7\u30ed\u30a4\u3057\u3066\u8d77\u52d5\u3057\u3001Web \u30d6\u30e9\u30a6\u30b6\u30fc\u304c\u81ea\u52d5\u7684\u306b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30db\u30fc\u30e0\u30da\u30fc\u30b8\u3092\u958b\u304d\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306e\u5f8c\u3001\u6b21\u306e\u3088\u3046\u306a\u5358\u7d14\u306a Struts \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u30d5\u30a9\u30fc\u30e0\u3092\u9001\u4fe1\u3059\u308b JSP \u30da\u30fc\u30b8\u3001\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u51e6\u7406\u3059\u308b\u30af\u30e9\u30b9\u3001\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3059\u308b\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073\u6210\u529f\u30da\u30fc\u30b8\u304c\u542b\u307e\u308c\u307e\u3059\u3002 \u30e6\u30fc\u30b6\u30fc\u304c\u30da\u30fc\u30b8\u306b\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u30d5\u30a9\u30fc\u30e0\u3092\u9001\u4fe1\u3059\u308b\u3068\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u3092\u30af\u30e9\u30b9\u306b\u30ab\u30d7\u30bb\u30eb\u5316\u3057\u3001\u30af\u30e9\u30b9\u306b\u6e21\u3057\u307e\u3059\u3002 \u305d\u306e\u5f8c\u3001\u30af\u30e9\u30b9\u306f\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3057\u3001\u9069\u5207\u306a\u30d3\u30e5\u30fc\u3092\u8fd4\u3057\u307e\u3059\u3002<code>ActionForm<\/code><code>Action<\/code><code>index.jsp<\/code><code>ActionForm<\/code><code>Action<\/code><code>Action<\/code><\/p>\n\n\n\n<p>\u6b21\u306b\u3001\u6b21\u306e\u3088\u3046\u306a Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u305d\u306e\u4ed6\u306e\u6a5f\u80fd\u3092\u8abf\u3079\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30e9\u30d9\u30eb\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u307e\u3059\u3002<code>&lt;html:errors&gt;<\/code><\/li>\n\n\n\n<li>\u56fd\u969b\u5316\u30b5\u30dd\u30fc\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3001\u591a\u8a00\u8a9e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Struts \u30ec\u30a4\u30a2\u30a6\u30c8\u30fb\u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc (, , \u306a\u3069) \u3092\u4f7f\u7528\u3057\u3066\u3001\u8907\u96d1\u306a\u30da\u30fc\u30b8\u30fb\u30ec\u30a4\u30a2\u30a6\u30c8\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<code>&lt;html:table&gt;<\/code><code>&lt;html:row&gt;<\/code><code>&lt;html:cell&gt;<\/code><\/li>\n\n\n\n<li>Struts \u30ed\u30b8\u30c3\u30af\u30fb\u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc (, \u306a\u3069) \u3092\u4f7f\u7528\u3057\u3066\u3001\u6761\u4ef6\u4ed8\u304d\u30ed\u30b8\u30c3\u30af\u3068\u5faa\u74b0\u30ed\u30b8\u30c3\u30af\u3092 JSP \u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002<code>&lt;logic:iterate&gt;<\/code><code>&lt;logic:equal&gt;<\/code><\/li>\n\n\n\n<li>Struts \u30d7\u30e9\u30b0\u30a4\u30f3 (\u30bf\u30a4\u30eb\u30d7\u30e9\u30b0\u30a4\u30f3\u3001\u30d0\u30ea\u30c7\u30fc\u30bf\u30fc\u30d7\u30e9\u30b0\u30a4\u30f3\u306a\u3069) \u3092\u4f7f\u7528\u3057\u3066\u3001\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u6a5f\u80fd\u3092\u62e1\u5f35\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>Struts \u3092\u4f7f\u7528\u3057\u3066\u3001JDBC\u3001JPA\u3001EJB\u3001Spring \u306a\u3069\u306e\u4ed6\u306e Java EE \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3068\u7d71\u5408\u3057\u3001\u3088\u308a\u8907\u96d1\u306a Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u69cb\u7bc9\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u9ad8\u5ea6\u306a\u6a5f\u80fd\u3092\u5b66\u3073\u3001\u5b9f\u8df5\u3059\u308b\u3053\u3068\u3067\u3001Struts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u3088\u308a\u3088\u304f\u7406\u89e3\u3057\u3001\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u305d\u306e\u5f37\u307f\u3092\u4f7f\u7528\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30a2\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u306e\u66f8\u304d\u65b9\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p><code>Action<\/code>\u30af\u30e9\u30b9\u306f Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e 1 \u3064\u3067\u3042\u308a\u3001\u30e6\u30fc\u30b6\u30fc\u8981\u6c42\u304b\u3089\u306e\u30d3\u30b8\u30cd\u30b9\u30fb\u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 \u30af\u30e9\u30b9\u3092\u8a18\u8ff0\u3059\u308b\u3068\u304d\u306f\u3001\u30af\u30e9\u30b9\u3092\u7d99\u627f\u3057\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u6b21\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002<code>Action<\/code><code>org.apache.struts.action.Action<\/code><code>execute()<\/code><code>execute()<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>ActionMapping<\/code>: \u30d1\u30b9\u3001\u540d\u524d\u306a\u3069\u3092\u542b\u3080\u73fe\u5728\u306e\u30de\u30c3\u30d4\u30f3\u30b0\u60c5\u5831\u3002<code>Action<\/code><code>Action<\/code><\/li>\n\n\n\n<li><code>ActionForm<\/code>: \u30d5\u30a9\u30fc\u30e0\u9001\u4fe1\u304b\u3089\u306e\u30c7\u30fc\u30bf\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3059\u308b\u30d5\u30a9\u30fc\u30e0 Bean\u3002<\/li>\n\n\n\n<li><code>HttpServletRequest<\/code>: \u30e6\u30fc\u30b6\u30fc\u304c\u8981\u6c42\u3057\u305f HTTP \u60c5\u5831\u3092\u8868\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>HttpServletResponse<\/code>: \u30e6\u30fc\u30b6\u30fc\u306e\u8981\u6c42\u306b\u5bfe\u3059\u308b\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e HTTP \u5fdc\u7b54\u3092\u8868\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<code>Action<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Eclipse IDE \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u65b0\u3057\u3044 Java \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u3068\u3044\u3046\u540d\u524d\u306e\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<code>src<\/code><code>MyAction<\/code><\/li>\n\n\n\n<li>\u30af\u30e9\u30b9\u3092\u7d99\u627f\u3059\u308b\u3088\u3046\u306b\u30af\u30e9\u30b9\u3092\u5909\u66f4\u3057\u307e\u3059\u3002 \u5fc5\u8981\u306a\u30d1\u30c3\u30b1\u30fc\u30b8 () \u3092\u30a4\u30f3\u30dd\u30fc\u30c8\u3057\u3066\u3001\u30af\u30e9\u30b9\u540d\u53c2\u7167\u306e\u554f\u984c\u3092\u89e3\u6c7a\u3057\u307e\u3059\u3002<code>MyAction<\/code><code>org.apache.struts.action.Action<\/code><code>org.apache.struts.action.Action<\/code><\/li>\n\n\n\n<li>\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3059\u3002 \u3053\u306e\u30e1\u30bd\u30c3\u30c9\u5185\u3067\u306f\u3001\u30d5\u30a9\u30fc\u30e0 \u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u3001\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3057\u3001\u9069\u5207\u306a\u30d3\u30e5\u30fc\u3092\u8fd4\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u4f8b\u3048\u3070\uff1a<code>execute()<\/code><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>import org.apache.struts.action.Action;\nimport org.apache.struts.action.ActionForm;\nimport org.apache.struts.action.ActionForward;\nimport org.apache.struts.action.ActionMapping;\n\npublic class MyAction extends Action {\n    @Override\n    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {\n        MyForm myForm = (MyForm) form;\n        String username = myForm.getUsername();\n        String email = myForm.getEmail();\n\n        \/\/ \u5904\u7406\u4e1a\u52a1\u903b\u8f91\uff0c\u5982\u5c06\u6570\u636e\u5b58\u50a8\u5230\u6570\u636e\u5e93\u6216\u53d1\u9001\u7535\u5b50\u90ae\u4ef6\u7b49\u3002\n\n        return mapping.findForward(\"success\");\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u6700\u521d\u306b\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u30ab\u30b9\u30bf\u30e0\u578b\u306b\u5909\u63db\u3057\u307e\u3059\u3002 \u6b21\u306b\u3001\u30d5\u30a9\u30fc\u30e0\u306b\u3088\u3063\u3066\u9001\u4fe1\u3055\u308c\u305f\u30c7\u30fc\u30bf (\u30d5\u30a3\u30fc\u30eb\u30c9\u306a\u3069) \u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304b\u3089\u53d6\u5f97\u3057\u307e\u3059\u3002 \u305d\u306e\u5f8c\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u30c7\u30fc\u30bf\u306e\u4fdd\u5b58\u3084\u96fb\u5b50\u30e1\u30fc\u30eb\u306e\u9001\u4fe1\u306a\u3069\u3001\u5b9f\u969b\u306e\u30cb\u30fc\u30ba\u306b\u57fa\u3065\u3044\u3066\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3067\u304d\u307e\u3059\u3002 \u6700\u5f8c\u306b\u3001\u51e6\u7406\u7d50\u679c\u306b\u57fa\u3065\u3044\u3066\u9069\u5207\u306a\u30d3\u30e5\u30fc (\u6210\u529f\u30da\u30fc\u30b8\u3084\u30a8\u30e9\u30fc \u30da\u30fc\u30b8\u306a\u3069) \u304c\u8fd4\u3055\u308c\u307e\u3059\u3002<code>ActionForm<\/code><code>MyForm<\/code><code>MyForm<\/code><code>username<\/code><code>email<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30af\u30e9\u30b9\u3092\u69cb\u6210\u3057\u307e\u3059\u3002 \u30af\u30e9\u30b9\u3092\u9069\u5207\u306a\u30d1\u30b9\u306b\u30de\u30c3\u30d7\u3057\u3001\u9069\u5207\u306a\u30d5\u30a9\u30fc\u30e0 Bean \u3092\u95a2\u9023\u4ed8\u3051\u307e\u3059\u3002 \u4f8b\u3048\u3070\uff1a<code>struts-config.xml<\/code><code>Action<\/code><code>Action<\/code><\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;action-mappings&gt;\n    &lt;action path=\"\/submitForm\" type=\"com.example.MyAction\" name=\"myForm\" scope=\"request\" validate=\"true\" input=\"\/index.jsp\"&gt;\n        &lt;forward name=\"success\" path=\"\/success.jsp\" \/&gt;\n    &lt;\/action&gt;\n&lt;\/action-mappings&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30d1\u30b9\u3092\u30af\u30e9\u30b9\u306b\u30de\u30c3\u30d7\u3057\u3001\u305d\u308c\u3092\u30d5\u30a9\u30fc\u30e0Bean\u306b\u95a2\u9023\u4ed8\u3051\u307e\u3057\u305f\u3002 \u307e\u305f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u691c\u8a3c\u3092\u8a2d\u5b9a\u3057\u3001\u691c\u8a3c\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u306b\u8fd4\u3055\u308c\u308b\u5165\u529b\u30da\u30fc\u30b8\u3068\u3001\u30e1\u30bd\u30c3\u30c9\u304c\u6b63\u5e38\u306b\u8fd4\u3055\u308c\u305f\u5834\u5408\u306e\u30d3\u30e5\u30fc\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>\/submitForm<\/code><code>MyAction<\/code><code>MyForm<\/code><code>execute()<\/code><\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u3067\u3001\u7c21\u5358\u306a\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3001\u4ed6\u306eStruts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u5bfe\u8a71\u3059\u308b\u65b9\u6cd5\u3092\u5b66\u7fd2\u3057\u307e\u3057\u305f\u3002<code>Action<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u6b21\u306b\u3001\u30af\u30e9\u30b9\u95a2\u9023\u306e\u9ad8\u5ea6\u306a\u30c8\u30d4\u30c3\u30af\u3092\u3044\u304f\u3064\u304b\u8abf\u3079\u3066\u3001\u305d\u308c\u3089\u306e\u4f7f\u7528\u65b9\u6cd5\u3092\u3088\u308a\u3088\u304f\u7406\u89e3\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<code>Action<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u52d5\u7684\u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057: \u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u3001Struts \u306f\u30af\u30e9\u30b9\u5185\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u8981\u6c42\u3092\u51e6\u7406\u3057\u307e\u3059\u3002 \u305f\u3060\u3057\u3001\u52d5\u7684\u30e1\u30bd\u30c3\u30c9\u547c\u3073\u51fa\u3057\u6a5f\u80fd\u3092\u4f7f\u7528\u3057\u3066\u3001Struts \u306b\u30af\u30e9\u30b9\u5185\u306e\u4ed6\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3055\u305b\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u3092\u5b9f\u73fe\u3059\u308b\u306b\u306f\u3001\u3067\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u69cb\u6210\u3057\u3001\u30af\u30e9\u30b9\u306b\u9069\u5207\u306a\u30e1\u30bd\u30c3\u30c9\u3092\u5b9f\u88c5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001xmlCopy \u30b3\u30fc\u30c9\u3092\u4f7f\u7528\u3057\u3066\u304b\u3089\u3001\u6b21\u306e\u30af\u30e9\u30b9\u306b\u30e1\u30bd\u30c3\u30c9\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<code>Action<\/code><code>execute()<\/code><code>Action<\/code><code>struts-config.xml<\/code><code>Action<\/code><code>method<\/code><code>Action<\/code><code>&lt;action path=\"\/submitForm\" type=\"com.example.MyAction\" method=\"myCustomMethod\" name=\"myForm\" scope=\"request\" validate=\"true\" input=\"\/index.jsp\"&gt; &lt;forward name=\"success\" path=\"\/success.jsp\" \/&gt; &lt;\/action&gt;&nbsp;<\/code><code>MyAction<\/code><code>myCustomMethod()<\/code><code>public class MyAction extends Action { public ActionForward myCustomMethod(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { \/\/ ... } }<\/code><\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u30a8\u30e9\u30fc\u306e\u51e6\u7406: \u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u304c\u6709\u52b9\u306b\u306a\u3063\u3066\u3044\u308b\u5834\u5408\u3001Struts \u306f\u30af\u30e9\u30b9\u3092\u547c\u3073\u51fa\u3059\u524d\u306b\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u691c\u8a3c\u3057\u307e\u3059\u3002 \u691c\u8a3c\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u3001Struts \u306f\u5165\u529b\u30da\u30fc\u30b8\u306b\u623b\u308a\u3001\u30a8\u30e9\u30fc\u60c5\u5831\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u4fdd\u5b58\u3057\u307e\u3059\u3002 JSP \u30da\u30fc\u30b8\u3067\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30af\u30e9\u30b9\u5185\u306e jspCopy \u30b3\u30fc\u30c9\u3092\u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3057\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30ab\u30b9\u30bf\u30e0 \u30a8\u30e9\u30fc\u60c5\u5831\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u4fdd\u5b58\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u4f8b: \u30b8\u30e3\u30d0\u30b3\u30d4\u30fc\u30b3\u30fc\u30c9<code>Action<\/code><code>ActionErrors<\/code><code>&lt;html:errors&gt;<\/code><code>index.jsp<\/code><code>&lt;html:errors\/&gt;&nbsp;<\/code><code>Action<\/code><code>saveErrors(request, errors)<\/code><code>ActionErrors<\/code><code>public class MyAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { MyForm myForm = (MyForm) form; \/\/ \u68c0\u67e5\u7528\u6237\u540d\u548c\u7535\u5b50\u90ae\u4ef6 if (myForm.getUsername().isEmpty() || myForm.getEmail().isEmpty()) { ActionErrors errors = new ActionErrors(); errors.add(\"emptyFields\", new ActionMessage(\"error.empty.fields\")); saveErrors(request, errors); return mapping.getInputForward(); } \/\/ ... } }<\/code><\/li>\n\n\n\n<li>\u4f7f\u7528: \u30af\u30e9\u30b9\u3067\u306f\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3057\u3066\u3001\u8ee2\u9001\u307e\u305f\u306f\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u5148\u306e\u30d3\u30e5\u30fc\u3092\u5b9a\u7fa9\u3067\u304d\u307e\u3059\u3002 \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u53d6\u5f97\u3059\u308b\u3053\u3068\u3082\u3001\u65b0\u3057\u3044\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u76f4\u63a5\u4f5c\u6210\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001(\u8ee2\u9001\u3067\u306f\u306a\u304f)\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306ejavaCopy\u30b3\u30fc\u30c9\u3067\u306f\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210\u6642\u306b\u305d\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u6b21\u306e\u3088\u3046\u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<code>ActionForward<\/code><code>Action<\/code><code>ActionForward<\/code><code>ActionForward<\/code><code>ActionMapping<\/code><code>findForward()<\/code><code>ActionForward<\/code><code>public class MyAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { \/\/ ... ActionForward successForward = mapping.findForward(\"success\"); \/\/ \u6216 ActionForward successForward = new ActionForward(\"\/success.jsp\"); return successForward; } }&nbsp;<\/code><code>ActionForward<\/code><code>redirect<\/code><code>true<\/code><code>ActionForward redirectForward = new ActionForward(\"\/success.jsp\", true);<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u30af\u30e9\u30b9\u3068\u305d\u306e\u95a2\u9023\u6a5f\u80fd\u306b\u3064\u3044\u3066\u306e\u6d1e\u5bdf\u3092\u5f97\u308b\u3053\u3068\u3067\u3001\u3088\u308a\u52b9\u679c\u7684\u306b\u306a\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059<code>Action<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d3\u30b8\u30cd\u30b9\u30fb\u30ed\u30b8\u30c3\u30af\u3092\u51e6\u7406\u3057\u307e\u3059\u3002 \u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u9069\u7528\u3067\u304d\u308b\u305d\u306e\u4ed6\u306e\u9ad8\u5ea6\u306a\u6982\u5ff5\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u4f7f\u7528\u304a\u3088\u3073: [\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u4fdd\u5b58] \u3092\u4f7f\u7528\u3059\u308b\u3060\u3051\u3067\u306a\u304f\u3001[\u6210\u529f\u306e\u4fdd\u5b58] \u307e\u305f\u306f\u901a\u77e5\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u540c\u69d8\u306b\u3001\u30af\u30e9\u30b9\u5185\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u4fdd\u5b58\u3067\u304d\u307e\u3059\u3002 \u300cJSP\u300d\u30da\u30fc\u30b8\u3067\u3001\u30e9\u30d9\u30eb\u3092\u4f7f\u7528\u3057\u3066\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u30da\u30fc\u30b8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002<code>ActionMessages<\/code><code>ActionErrors<\/code><code>ActionErrors<\/code><code>ActionMessages<\/code><code>ActionErrors<\/code><code>Action<\/code><code>saveMessages(request, messages)<\/code><code>ActionMessages<\/code><code>&lt;html:messages&gt;<\/code><code>success.jsp<\/code><code>&lt;html:messages\/&gt;<\/code><\/li>\n\n\n\n<li>\u4ed6\u306eJava EE\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3068\u306e\u7d71\u5408:\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u4ed6\u306eJava EE\u30c6\u30af\u30ce\u30ed\u30b8\u30fc(JDBC\u3001JPA\u3001EJB\u3001Spring\u306a\u3069)\u3092\u4f7f\u7528\u3057\u3066Struts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3068\u7d71\u5408\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30af\u30e9\u30b9\u3067\u30c7\u30fc\u30bf\u30a2\u30af\u30bb\u30b9\u30aa\u30d6\u30b8\u30a7\u30af\u30c8 (DAO) \u3092\u547c\u3073\u51fa\u3057\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u3057\u305f\u308a\u3001Spring Bean \u3092\u547c\u3073\u51fa\u3057\u3066\u305d\u306e\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3057\u305f\u308a\u3067\u304d\u307e\u3059\u3002 \u30af\u30e9\u30b9\u306e\u8cac\u4efb\u3092\u5358\u4e00\u306b\u4fdd\u3061\u3001\u8907\u96d1\u306a\u30d3\u30b8\u30cd\u30b9\u30fb\u30ed\u30b8\u30c3\u30af\u3092\u30af\u30e9\u30b9\u5185\u3067\u76f4\u63a5\u5b9f\u884c\u3057\u306a\u3044\u3088\u3046\u306b\u3059\u308b\u306b\u306f\u3001\u30d3\u30b8\u30cd\u30b9\u30fb\u30ed\u30b8\u30c3\u30af\u3092\u4ed6\u306e\u7279\u6b8a\u306a\u30b5\u30fc\u30d3\u30b9\u30fb\u30af\u30e9\u30b9\u306b\u59d4\u4efb\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<code>Action<\/code><code>Action<\/code><code>Action<\/code><\/li>\n\n\n\n<li>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u4f7f\u7528: Struts 2 \u3067\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u524d\u51e6\u7406\u3068\u5f8c\u51e6\u7406\u3092\u884c\u3046\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u3001\u8981\u6c42\u304c\u30af\u30e9\u30b9\u306b\u5230\u9054\u3059\u308b\u524d\u3001\u307e\u305f\u306f\u30af\u30e9\u30b9\u304c\u7d50\u679c\u3092\u8fd4\u3057\u305f\u5f8c\u306b\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3059\u308b\u305f\u3081\u306e\u30e1\u30ab\u30cb\u30ba\u30e0\u3067\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30af\u30e9\u30b9\u3092\u5909\u66f4\u3059\u308b\u3053\u3068\u306a\u304f\u3001\u6a2a\u65ad\u7684\u306a\u554f\u984c (\u30ed\u30b0\u8a18\u9332\u3001\u8a8d\u8a3c\u3001\u627f\u8a8d\u306a\u3069) \u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002 Struts 2 \u3067\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3057\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<code>Action<\/code><code>Action<\/code><code>Action<\/code><code>Interceptor<\/code><code>struts.xml<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u9ad8\u5ea6\u306a\u6982\u5ff5\u3092\u5b66\u3073\u3001\u5b9f\u8df5\u3059\u308b\u3053\u3068\u3067\u3001Struts\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u3088\u308a\u3088\u304f\u7406\u89e3\u3057\u3001\u5b9f\u969b\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u305d\u306e\u6a5f\u80fd\u3092\u6700\u5927\u9650\u306b\u6d3b\u7528\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u3088\u308a\u5f37\u529b\u306aJava Web\u958b\u767a\u8005\u306b\u306a\u308b\u305f\u3081\u306b\u3001\u30b9\u30ad\u30eb\u3092\u7d99\u7d9a\u7684\u306b\u5411\u4e0a\u3055\u305b\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30b9\u30c8\u30e9\u30c3\u30c8\u30b3\u30f3\u30d5\u30a3\u30b0.xml\u306e\u8a2d\u5b9a\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p><code>struts-config.xml<\/code>\u30d5\u30a1\u30a4\u30eb\u306f Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u4e3b\u8981\u306a\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u3067\u3042\u308a\u3001\u30af\u30e9\u30b9\u9593\u306e\u95a2\u4fc2\u3092\u5b9a\u7fa9\u3057\u3001Bean\u3001\u30d3\u30e5\u30fc\u3001\u304a\u3088\u3073\u305d\u306e\u4ed6\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u5f62\u6210\u3057\u307e\u3059\u3002 \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u4e00\u822c\u7684\u306a\u8981\u7d20\u3068\u4f7f\u7528\u6cd5\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<code>Action<\/code><code>struts-config.xml<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b \u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u5358\u7d14\u306a\u30d5\u30a1\u30a4\u30eb\u306e\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9<code>struts-config.xml<\/code><code>WEB-INF<\/code><code>struts-config.xml<\/code><code>struts-config.xml<\/code><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;!DOCTYPE struts-config PUBLIC \"-\/\/Apache Software Foundation\/\/DTD Struts Configuration 1.3\/\/EN\" \"http:\/\/struts.apache.org\/dtds\/struts-config_1_3.dtd\"&gt; &lt;struts-config&gt; &lt;!-- \u914d\u7f6e\u5143\u7d20\u5c06\u5728\u4e0b\u9762\u8be6\u7ec6\u89e3\u91ca --&gt; &lt;\/struts-config&gt;<\/code><\/li>\n\n\n\n<li>\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u69cb\u6210: \u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4f7f\u7528\u3059\u308b\u30d5\u30a9\u30fc\u30e0 Bean \u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u5404\u8981\u7d20\u306b\u306f\u3001\u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30d5\u30a9\u30fc\u30e0 Bean \u3092\u53c2\u7167\u3059\u308b\u5c5e\u6027\u3068\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3059\u308b\u5c5e\u6027\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9<code>&lt;form-beans&gt;<\/code><code>&lt;form-bean&gt;<\/code><code>name<\/code><code>struts-config.xml<\/code><code>type<\/code><code>&lt;form-beans&gt; &lt;form-bean name=\"myForm\" type=\"com.example.MyForm\"\/&gt; &lt;\/form-beans&gt;<\/code><\/li>\n\n\n\n<li>\u69cb\u6210\u30de\u30c3\u30d4\u30f3\u30b0: \u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4f7f\u7528\u3055\u308c\u308b\u30af\u30e9\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u5404\u8981\u7d20\u306b\u306f\u3001\u6b21\u306e\u5c5e\u6027\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<code>Action<\/code><code>&lt;action-mappings&gt;<\/code><code>Action<\/code><code>&lt;action&gt;<\/code><ul><li><code>path<\/code>: URL \u3067\u30af\u30e9\u30b9\u3092\u53c2\u7167\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u30d1\u30b9\u3002<code>Action<\/code><\/li><li><code>type<\/code>: \u30af\u30e9\u30b9\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>Action<\/code><\/li><li><code>name<\/code>: \u30af\u30e9\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u540d\u524d\u3092\u6307\u5b9a\u3057\u307e\u3059 (\u30aa\u30d7\u30b7\u30e7\u30f3)\u3002<code>Action<\/code><\/li><li><code>scope<\/code>: \u30d5\u30a9\u30fc\u30e0 Bean \u306e\u6709\u52b9\u7bc4\u56f2 (\u307e\u305f\u306f\u30aa\u30d7\u30b7\u30e7\u30f3\u3067) \u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>request<\/code><code>session<\/code><\/li><li><code>validate<\/code>: \u30d5\u30a9\u30fc\u30e0 Bean \u3092\u691c\u8a3c\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u6307\u5b9a\u3057\u307e\u3059 (\u30aa\u30d7\u30b7\u30e7\u30f3\u3001\u30c7\u30d5\u30a9\u30eb\u30c8)\u3002<code>true<\/code><\/li><li><code>input<\/code>: \u30d5\u30a9\u30fc\u30e0\u306e\u691c\u8a3c\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u306b\u8fd4\u3055\u308c\u308b\u5165\u529b\u30da\u30fc\u30b8\u3092\u6307\u5b9a\u3057\u307e\u3059 (\u30aa\u30d7\u30b7\u30e7\u30f3)\u3002<\/li><\/ul>\u8981\u7d20\u5185\u3067\u306f\u3001\u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u3001\u30af\u30e9\u30b9\u306e\u5b9f\u884c\u5f8c\u306b\u30d3\u30e5\u30fc\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u5404\u8981\u7d20\u306b\u306f\u3001\u5c5e\u6027 (\u30af\u30e9\u30b9\u5185\u306e\u30d3\u30e5\u30fc\u3092\u53c2\u7167\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528) \u3068\u5c5e\u6027 (\u30d3\u30e5\u30fc\u306e JSP \u30d5\u30a1\u30a4\u30eb\u30d1\u30b9\u3092\u6307\u5b9a) \u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9<code>&lt;action&gt;<\/code><code>&lt;forward&gt;<\/code><code>Action<\/code><code>&lt;forward&gt;<\/code><code>name<\/code><code>Action<\/code><code>path<\/code><code>&lt;action-mappings&gt; &lt;action path=\"\/submitForm\" type=\"com.example.MyAction\" name=\"myForm\" scope=\"request\" validate=\"true\" input=\"\/index.jsp\"&gt; &lt;forward name=\"success\" path=\"\/success.jsp\"\/&gt; &lt;\/action&gt; &lt;\/action-mappings&gt;<\/code><\/li>\n\n\n\n<li>\u30e1\u30c3\u30bb\u30fc\u30b8 \u30ea\u30bd\u30fc\u30b9\u306e\u69cb\u6210: \u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4f7f\u7528\u3055\u308c\u308b\u30e1\u30c3\u30bb\u30fc\u30b8 \u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u30e1\u30c3\u30bb\u30fc\u30b8\u30fb\u30ea\u30bd\u30fc\u30b9\u30fb\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3001\u30d7\u30ed\u30f3\u30d7\u30c8\u306a\u3069\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u56fd\u969b\u5316\u30c6\u30ad\u30b9\u30c8\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 \u4f8b: xmlCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u3053\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30e1\u30c3\u30bb\u30fc\u30b8 \u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u306e\u57fa\u672c\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059 (\u8a00\u8a9e\u30b3\u30fc\u30c9\u3068<code>&lt;message-resources&gt;<\/code><code>&lt;message-resources parameter=\"com.example.messages\"\/&gt;&nbsp;<\/code><code>parameter<\/code><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u30d5\u30a1\u30a4\u30eb\u540d\u62e1\u5f35\u5b50)\u3002 \u30e1\u30c3\u30bb\u30fc\u30b8\u30fb\u30ea\u30bd\u30fc\u30b9\u30fb\u30d5\u30a1\u30a4\u30eb\u304c\u30d9\u30fc\u30b9\u540d\u3092\u6301\u3064\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e0b\u306b\u3042\u308b\u3068\u4eee\u5b9a\u3059\u308b\u3068\u3001\u82f1\u8a9e\u74b0\u5883\u7528\u306e\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u304a\u3088\u3073\u4e2d\u56fd\u8a9e\u74b0\u5883\u7528\u306e\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<code>com.example<\/code><code>messages<\/code><code>messages_en.properties<\/code><code>messages_zh.properties<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u69cb\u6210: \u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u4f7f\u7528\u3055\u308c\u308b Struts \u30d7\u30e9\u30b0\u30a4\u30f3\u3092\u69cb\u6210\u3057\u307e\u3059\u3002 \u30d7\u30e9\u30b0\u30a4\u30f3\u306f\u3001\u8ffd\u52a0\u306e\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u63d0\u4f9b\u3084\u4ed6\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u7d71\u5408\u306a\u3069\u3001Struts \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u6a5f\u80fd\u3092\u62e1\u5f35\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001Tiles \u30d7\u30e9\u30b0\u30a4\u30f3 (\u30da\u30fc\u30b8 \u30ec\u30a4\u30a2\u30a6\u30c8\u7528) \u3092\u69cb\u6210\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30d7\u30e9\u30b0\u30a4\u30f3\u30af\u30e9\u30b9\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u8981\u7d20\u306f\u3001\u30d7\u30e9\u30b0\u30a4\u30f3\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059(\u3053\u306e\u5834\u5408\u3001Tiles\u5b9a\u7fa9\u30d5\u30a1\u30a4\u30eb\u3078\u306e\u30d1\u30b9\u304c\u6307\u5b9a\u3055\u308c\u307e\u3059)\u3002<code>&lt;plug-in&gt;<\/code><code>struts-config.xml<\/code><code>&lt;plug-in className=\"org.apache.struts.tiles.TilesPlugin\"&gt; &lt;set-property property=\"definitions-config\" value=\"\/WEB-INF\/tiles-defs.xml\"\/&gt; &lt;\/plug-in&gt;&nbsp;<\/code><code>className<\/code><code>&lt;set-property&gt;<\/code><\/li>\n\n\n\n<li>\u4ed6\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u69cb\u6210\u3059\u308b: \u30d5\u30a1\u30a4\u30eb\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u4f8b\u5916\u30cf\u30f3\u30c9\u30e9\u30fc\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u8ee2\u9001\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306a\u3069\u306e\u4ed6\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u30b0\u30ed\u30fc\u30d0\u30eb\u4f8b\u5916\u30cf\u30f3\u30c9\u30e9\u30fc\u3092\u69cb\u6210\u3059\u308b\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u3053\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u3001\u30ad\u30e3\u30c3\u30c1\u3059\u308b\u4f8b\u5916\u306e\u7a2e\u985e\u3001\u30e1\u30c3\u30bb\u30fc\u30b8 \u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8 \u30ad\u30fc\u3001\u304a\u3088\u3073\u4f8b\u5916\u304c\u51e6\u7406\u3055\u308c\u305f\u3068\u304d\u306b\u8868\u793a\u3059\u308b\u30da\u30fc\u30b8\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>struts-config.xml<\/code><code>&lt;global-exceptions&gt; &lt;exception type=\"java.lang.Exception\" key=\"error.global\" path=\"\/error.jsp\"\/&gt; &lt;\/global-exceptions&gt;&nbsp;<\/code><code>type<\/code><code>key<\/code><code>path<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u9069\u5207\u306a\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001Struts \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u52d5\u4f5c\u3092\u7ba1\u7406\u304a\u3088\u3073\u5236\u5fa1\u3067\u304d\u307e\u3059\u3002 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u3088\u308a\u9069\u5207\u306b\u6574\u7406\u304a\u3088\u3073\u7ba1\u7406\u3059\u308b\u305f\u3081\u306b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u958b\u767a\u4e2d\u306b\u3053\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u614e\u91cd\u306b\u7ba1\u7406\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<code>struts-config.xml<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts\u306e\u7d44\u307f\u8fbc\u307f\u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u7d39\u4ecb\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u7d44\u307f\u8fbc\u307f\u306e\u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u9001\u4fe1\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30fb\u30c7\u30fc\u30bf\u306e\u691c\u8a3c\u306b\u4f7f\u7528\u3067\u304d\u308b\u5f37\u529b\u306a\u691c\u8a3c\u30e1\u30ab\u30cb\u30ba\u30e0\u3067\u3059\u3002 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u306f\u3001null \u4ee5\u5916\u306e\u30c1\u30a7\u30c3\u30af\u3001\u30c7\u30fc\u30bf\u578b\u306e\u30c1\u30a7\u30c3\u30af\u3001\u9577\u3055\u306e\u5236\u9650\u306a\u3069\u306e\u4e00\u822c\u7684\u306a\u691c\u8a3c\u30cb\u30fc\u30ba\u3092\u7c21\u5358\u306b\u5b9f\u88c5\u3067\u304d\u308b\u5b9a\u7fa9\u6e08\u307f\u306e\u691c\u8a3c\u898f\u5247\u306e\u30bb\u30c3\u30c8\u304c\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u3055\u3089\u306b\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u306b\u5408\u308f\u305b\u3066\u5165\u529b\u898f\u5247\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>Struts \u306e\u7d44\u307f\u8fbc\u307f\u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u4e3b\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u4f7f\u7528\u6cd5\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u691c\u8a3c\u898f\u5247\u30d5\u30a1\u30a4\u30eb (): \u691c\u8a3c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u30d5\u30a9\u30fc\u30e0 Bean \u3054\u3068\u306b\u3001\u5bfe\u5fdc\u3059\u308b\u691c\u8a3c\u898f\u5247\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u691c\u8a3c\u898f\u5247\u30d5\u30a1\u30a4\u30eb\u306e\u547d\u540d\u898f\u5247\u306f\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u30af\u30e9\u30b9\u540d + \u3067\u3059\u3002 \u305f\u3068\u3048\u3070\u3001 \u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u5834\u5408\u3001\u691c\u8a3c\u898f\u5247\u30d5\u30a1\u30a4\u30eb\u306e\u540d\u524d\u306f \u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u691c\u8a3c\u898f\u5247\u30d5\u30a1\u30a4\u30eb\u306f\u3001\u901a\u5e38\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u30af\u30e9\u30b9\u3068\u540c\u3058\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4e0b\u306b\u3042\u308a\u307e\u3059\u3002 \u691c\u8a3c\u898f\u5247\u30d5\u30a1\u30a4\u30eb\u306e\u57fa\u672c\u69cb\u9020\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9<code>*_validation.xml<\/code><code>_validation.xml<\/code><code>LoginForm<\/code><code>LoginForm_validation.xml<\/code><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt; &lt;!DOCTYPE form-validation PUBLIC \"-\/\/Apache Software Foundation\/\/DTD Commons Validator Rules Configuration 1.3.0\/\/EN\" \"http:\/\/jakarta.apache.org\/commons\/dtds\/validator_1_3_0.dtd\"&gt; &lt;form-validation&gt; &lt;formset&gt; &lt;!-- \u9a8c\u8bc1\u89c4\u5219\u5c06\u5728\u4e0b\u9762\u8be6\u7ec6\u89e3\u91ca --&gt; &lt;\/formset&gt; &lt;\/form-validation&gt;<\/code><\/li>\n\n\n\n<li>\u691c\u8a3c\u898f\u5247\u3092\u69cb\u6210\u3059\u308b: \u8981\u7d20\u5185\u3067\u3001\u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u5404\u5c5e\u6027\u306e\u691c\u8a3c\u898f\u5247\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u3053\u306e\u30a8\u30ec\u30e1\u30f3\u30c8\u306b\u306f\u3001\u691c\u8a3c\u3059\u308b\u30d5\u30a9\u30fc\u30e0 Bean \u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306e\u540d\u524d\u3092\u6307\u5b9a\u3059\u308b\u5c5e\u6027\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u8981\u7d20\u5185\u3067\u3001\u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u7279\u5b9a\u306e\u691c\u8a3c\u898f\u5247\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001null \u4ee5\u5916\u306e\u691c\u8a3c\u3092\u30af\u30e9\u30b9\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 xmlCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u5c5e\u6027\u306f\u691c\u8a3c\u898f\u5247\u306e\u7a2e\u985e (null \u4ee5\u5916\u306e\u691c\u8a3c\u3092\u793a\u3059) \u3092\u6307\u5b9a\u3057\u3001\u8981\u7d20\u306e\u5c5e\u6027\u306f\u30e1\u30c3\u30bb\u30fc\u30b8 \u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8 \u30ad\u30fc\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;formset&gt;<\/code><code>&lt;field&gt;<\/code><code>&lt;field&gt;<\/code><code>property<\/code><code>&lt;field&gt;<\/code><code>&lt;field-validator&gt;<\/code><code>LoginForm<\/code><code>username<\/code><code>&lt;field property=\"username\"&gt; &lt;field-validator type=\"required\"&gt; &lt;message key=\"error.username.required\"\/&gt; &lt;\/field-validator&gt; &lt;\/field&gt;&nbsp;<\/code><code>type<\/code><code>required<\/code><code>&lt;message&gt;<\/code><code>key<\/code><\/li>\n\n\n\n<li>\u4e8b\u524d\u5b9a\u7fa9\u3055\u308c\u305f\u691c\u8a3c\u30eb\u30fc\u30eb: Struts \u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306f\u3001\u691c\u8a3c\u30eb\u30fc\u30eb\u30fb\u30d5\u30a1\u30a4\u30eb\u3067\u76f4\u63a5\u4f7f\u7528\u3067\u304d\u308b\u4e8b\u524d\u5b9a\u7fa9\u3055\u308c\u305f\u691c\u8a3c\u30eb\u30fc\u30eb\u306e\u30bb\u30c3\u30c8\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002 \u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b\u5b9a\u7fa9\u6e08\u307f\u306e\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002\n<ul class=\"wp-block-list\">\n<li><code>required<\/code>: null \u4ee5\u5916\u306e\u691c\u8a3c<\/li>\n\n\n\n<li><code>minlength<\/code>: \u6700\u5c0f\u9577\u306e\u691c\u8a3c<\/li>\n\n\n\n<li><code>maxlength<\/code>: \u6700\u5927\u9577\u306e\u691c\u8a3c<\/li>\n\n\n\n<li><code>email<\/code>: \u30e1\u30fc\u30eb\u5f62\u5f0f\u306e\u691c\u8a3c<\/li>\n\n\n\n<li><code>integer<\/code>: \u6574\u6570\u691c\u8a3c<\/li>\n\n\n\n<li><code>double<\/code>: \u6d6e\u52d5\u5c0f\u6570\u70b9\u6570\u306e\u691c\u8a3c<\/li>\n\n\n\n<li><code>date<\/code>: \u65e5\u4ed8\u306e\u691c\u8a3c<\/li>\n\n\n\n<li><code>url<\/code>: URL \u306e\u691c\u8a3c<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u30eb\u30fc\u30eb: \u5b9a\u7fa9\u6e08\u307f\u306e\u691c\u8a3c\u30eb\u30fc\u30eb\u304c\u30cb\u30fc\u30ba\u306b\u5408\u308f\u306a\u3044\u5834\u5408\u306f\u3001\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002 \u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u624b\u9806\u3092\u5b9f\u884c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002\n<ul class=\"wp-block-list\">\n<li>\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3059\u308b Java \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<code>org.apache.struts.validator.Validator<\/code><\/li>\n\n\n\n<li>\u30b3\u30e2\u30f3\u30ba\u3067<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u3053\u306e\u4f1a\u8a71\u3067\u4f7f\u7528\u3055\u308c\u305f\u4ee5\u524d\u306e\u30e2\u30c7\u30eb\u306f\u4f7f\u7528\u3067\u304d\u307e\u305b\u3093\u3002\u6700\u65b0\u306e\u30c7\u30d5\u30a9\u30eb\u30c8\u30e2\u30c7\u30eb\u306b\u5207\u308a\u66ff\u3048\u307e\u3057\u305f<\/p>\n\n\n\n<p>-validator.xml \u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u30eb\u30fc\u30eb\u306e\u69cb\u6210\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u3053\u306e\u30d5\u30a1\u30a4\u30eb\u306f\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30af\u30e9\u30b9\u30d1\u30b9\u306e\u4e0b\u306b\u3042\u308a\u3001Struts \u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b0\u30ed\u30fc\u30d0\u30eb\u8a2d\u5b9a\u3068\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u898f\u5247\u3092\u69cb\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 \u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u8ffd\u52a0\u3059\u308b\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;!DOCTYPE validators PUBLIC \"-\/\/Apache Struts\/\/XWork Validator Config 1.0\/\/EN\" \"http:\/\/struts.apache.org\/dtds\/xwork-validator-config-1.0.dtd\"&gt;\n&lt;validators&gt;\n    &lt;validator name=\"myValidator\" class=\"com.example.MyValidator\"\/&gt;\n&lt;\/validators&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u8981\u7d20\u306e\u5c5e\u6027\u306f\u691c\u8a3c\u898f\u5247\u540d\u3092\u6307\u5b9a\u3057\u3001\u5c5e\u6027\u306f\u691c\u8a3c\u898f\u5247\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;validator&gt;<\/code><code>name<\/code><code>class<\/code><\/p>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u898f\u5247\u30af\u30e9\u30b9\u3092\u8a18\u8ff0\u3059\u308b\u5834\u5408\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3059\u308b\u30e1\u30bd\u30c3\u30c9\u304c\u5fc5\u8981\u3067\u3059\u3002 \u3053\u306e\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u691c\u8a3c\u3059\u308b\u5024\u3092\u8868\u3059\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u578b\u3092\u53d7\u3051\u53d6\u308a\u307e\u3059\u3002 \u3053\u306e\u30e1\u30bd\u30c3\u30c9\u3067\u306f\u3001\u30ab\u30b9\u30bf\u30e0 \u30ed\u30b8\u30c3\u30af\u3092\u4f7f\u7528\u3057\u3066\u5024\u3092\u691c\u8a3c\u3057\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u3067\u691c\u8a3c\u7d50\u679c\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u304c\u65e2\u306b\u5b58\u5728\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u898f\u5247\u306e\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<code>org.apache.struts.validator.Validator<\/code><code>validate()<\/code><code>Object<\/code><code>addValidatorResult()<\/code><code>ValidatorActionForm<\/code><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public class UsernameExistsValidator implements Validator {\n    public void validate(Object object) throws ValidatorException {\n        String username = (String) object;\n        boolean exists = checkUsernameExists(username);\n        if (exists) {\n            throw new ValidatorException(new ActionMessage(\"error.username.exists\"));\n        }\n    }\n\n    private boolean checkUsernameExists(String username) {\n        \/\/ \u68c0\u67e5\u7528\u6237\u540d\u662f\u5426\u5df2\u5b58\u5728\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30e6\u30fc\u30b6\u30fc\u540d\u304c\u65e2\u306b\u5b58\u5728\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3057\u3001\u30c1\u30a7\u30c3\u30af\u306e\u7d50\u679c\u306b\u57fa\u3065\u3044\u3066\u4f8b\u5916\u3092\u30b9\u30ed\u30fc\u3057\u307e\u3059 (\u4f8b\u5916\u306b\u306f\u3001\u30e1\u30c3\u30bb\u30fc\u30b8 \u30ea\u30bd\u30fc\u30b9 \u30d5\u30a1\u30a4\u30eb\u3067\u691c\u7d22\u3067\u304d\u308b\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8 \u30ad\u30fc\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059)\u3002<code>validate()<\/code><code>checkUsernameExists()<\/code><code>ValidatorException<\/code><\/p>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u898f\u5247\u3092\u4f7f\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u691c\u8a3c\u898f\u5247\u30d5\u30a1\u30a4\u30eb\u3067\u53c2\u7167\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u898f\u5247\u306e\u4f7f\u7528\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;field property=\"username\"&gt;\n    &lt;field-validator type=\"myValidator\"&gt;\n        &lt;message key=\"error.username.invalid\"\/&gt;\n    &lt;\/field-validator&gt;\n&lt;\/field&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u5c5e\u6027\u306f\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u30eb\u30fc\u30eb\u306e\u540d\u524d\u3092\u6307\u5b9a\u3057\u3001\u8981\u7d20\u306e\u5c5e\u6027\u306f\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u30ad\u30fc\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>type<\/code><code>&lt;message&gt;<\/code><code>key<\/code><\/p>\n\n\n\n<p>\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u306f\u3001Struts\u306e\u7d44\u307f\u8fbc\u307f\u691c\u8a3c\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u4f7f\u7528\u3057\u3066\u7c21\u5358\u306b\u691c\u8a3c\u3067\u304d\u308b\u305f\u3081\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u4fe1\u983c\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002 \u691c\u8a3c\u898f\u5247\u3092\u9069\u5207\u306b\u69cb\u6210\u3059\u308b\u3053\u3068\u3067\u3001\u91cd\u8907\u3059\u308b\u30b3\u30fc\u30c9\u3068\u30a8\u30e9\u30fc\u3092\u6e1b\u3089\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u7ba1\u7406\u3068\u4fdd\u5b88\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u30eb\u30fc\u30eb(\u30d0\u30ea\u30c7\u30fc\u30bf\u30fc)\u306e\u66f8\u304d\u65b9\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u3067\u306f\u3001\u30c7\u30fc\u30bf\u306e\u6b63\u5f53\u6027\u3068\u6b63\u78ba\u6027\u3092\u4fdd\u8a3c\u3059\u308b\u305f\u3081\u306b\u3001\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u691c\u8a3c\u3067\u304d\u307e\u3059\u3002 Struts \u306b\u306f\u3001\u975e\u30cc\u30eb\u691c\u8a3c\u3001\u9577\u3055\u691c\u8a3c\u3001\u30c7\u30fc\u30bf\u578b\u691c\u8a3c\u306a\u3069\u3001\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b\u691c\u8a3c\u30eb\u30fc\u30eb\u304c\u7d44\u307f\u8fbc\u307e\u308c\u3066\u304a\u308a\u3001\u30ab\u30b9\u30bf\u30e0\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>Struts \u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u8a18\u8ff0\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u691c\u8a3c\u30eb\u30fc\u30eb\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3059\u308b: \u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001\u307e\u305aJava\u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306b\u306f\u3001\u691c\u8a3c\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3057\u3066\u691c\u8a3c\u7d50\u679c\u3092\u8fd4\u3059\u30e1\u30bd\u30c3\u30c9\u304c 10 \u3064\u3060\u3051\u3042\u308a\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u5165\u529b\u3057\u305f\u6570\u5024\u304c 10 \u4ee5\u4e0b\u3067\u3042\u308b\u3053\u3068\u3092\u691c\u8a3c\u3059\u308b\u5358\u7d14\u306a\u691c\u8a3c\u30eb\u30fc\u30eb \u30af\u30e9\u30b9\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u306f\u6700\u521d\u306b\u30ea\u30af\u30a8\u30b9\u30c8\u30d1\u30e9\u30e1\u30fc\u30bf\u304b\u3089\u5165\u529b\u756a\u53f7\u3092\u53d6\u5f97\u3057\u3001\u6b21\u306b\u305d\u308c\u3092\u6574\u6570\u306b\u5909\u63db\u3057\u3066\u3001\u305d\u308c\u304c10\u3088\u308a\u5927\u304d\u3044\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002 &lt;&gt; \u3088\u308a\u5927\u304d\u3044\u5834\u5408\u3001\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068\u5171\u306b\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002 \u30a8\u30e9\u30fc\u304c\u306a\u3044\u5834\u5408\u306f\u3001\u7a7a\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u8fd4\u3055\u308c\u307e\u3059\u3002<code>org.apache.struts.action.Validator<\/code><code>validate(ActionMapping, ActionForm, HttpServletRequest)<\/code><code>public class LessThanTenValidator implements Validator { public ActionErrors validate(ActionMapping mapping, ActionForm form, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); String numberString = request.getParameter(\"number\"); int number = Integer.parseInt(numberString); if (number &gt; 10) { errors.add(\"number\", new ActionMessage(\"error.number.greaterThanTen\")); } return errors; } }&nbsp;<\/code><code>validate()<\/code><code>ActionErrors<\/code><code>ActionErrors<\/code><\/li>\n\n\n\n<li>\u5165\u529b\u898f\u5247\u3092\u69cb\u6210\u3059\u308b: \u30d5\u30a1\u30a4\u30eb\u3067\u3001\u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u5165\u529b\u898f\u5247\u3092\u69cb\u6210\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u4e0a\u8a18\u3067\u4f5c\u6210\u3057\u305f\u30af\u30e9\u30b9\u3092\u69cb\u6210\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u30d5\u30a1\u30a4\u30eb\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 xml\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u8981\u7d20\u306e\u5c5e\u6027\u306f\u691c\u8a3c\u898f\u5247\u30af\u30e9\u30b9\u306e\u5b8c\u5168\u306a\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3057\u3001\u5c5e\u6027\u306f\u691c\u8a3c\u898f\u5247\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u8981\u7d20\u306f\u691c\u8a3c\u898f\u5247\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6e21\u3059\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u8981\u7d20\u306f\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059(\u30e1\u30c3\u30bb\u30fc\u30b8\u30ea\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3067\u306e\u691c\u7d22\u307e\u305f\u306f\u30cf\u30fc\u30c9\u30b3\u30fc\u30c7\u30a3\u30f3\u30b0\u3055\u308c\u305f\u6587\u5b57\u5217\u306e\u4f7f\u7528)\u3002<code>struts-config.xml<\/code><code>&lt;validator&gt;<\/code><code>LessThanTenValidator<\/code><code>struts-config.xml<\/code><code>&lt;form-beans&gt; &lt;form-bean name=\"myForm\" type=\"com.example.MyForm\"\/&gt; &lt;\/form-beans&gt; &lt;global-exceptions&gt; &lt;exception key=\"error.exception\" type=\"java.lang.Exception\"\/&gt; &lt;\/global-exceptions&gt; &lt;global-forwards&gt; &lt;forward name=\"error\" path=\"\/error.jsp\"\/&gt; &lt;\/global-forwards&gt; &lt;action-mappings&gt; &lt;action path=\"\/myAction\" name=\"myForm\" type=\"com.example.MyAction\"&gt; &lt;set-property property=\"property1\" value=\"value1\"\/&gt; &lt;set-property property=\"property2\" value=\"value2\"\/&gt; &lt;forward name=\"success\" path=\"\/success.jsp\"\/&gt; &lt;forward name=\"failure\" path=\"\/failure.jsp\"\/&gt; &lt;forward name=\"error\" path=\"\/error.jsp\"\/&gt; &lt;validator type=\"com.example.LessThanTenValidator\" name=\"myValidator\"&gt; &lt;param name=\"fieldName\"&gt;number&lt;\/param&gt; &lt;message key=\"error.number.greaterThanTen\" resource=\"false\"\/&gt; &lt;\/validator&gt; &lt;\/action&gt; &lt;\/action-mappings&gt;&nbsp;<\/code><code>&lt;validator&gt;<\/code><code>type<\/code><code>name<\/code><code>&lt;param&gt;<\/code><code>&lt;message&gt;<\/code><\/li>\n\n\n\n<li>\u691c\u8a3c\u30c7\u30fc\u30bf: \u30e6\u30fc\u30b6\u30fc\u304c\u30d5\u30a9\u30fc\u30e0\u3092\u9001\u4fe1\u3059\u308b\u3068\u3001\u691c\u8a3c\u30eb\u30fc\u30eb\u304c\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002 \u5b58\u5728\u3059\u308b\u5834\u5408<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u691c\u8a3c\u30a8\u30e9\u30fc\u306f\u3001\u6307\u5b9a\u3055\u308c\u305f\u30a8\u30e9\u30fc\u30d1\u30b9(\u8981\u7d20\u306b\u3088\u3063\u3066\u6307\u5b9a)\u306b\u81ea\u52d5\u7684\u306b\u79fb\u52d5\u3057\u307e\u3059\u3002 Action \u30af\u30e9\u30b9\u3067\u306f\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u691c\u8a3c\u30a8\u30e9\u30fc\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002 \u691c\u8a3c\u30a8\u30e9\u30fc\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8981\u6c42\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u4fdd\u5b58\u3057\u3001\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u30da\u30fc\u30b8\u306b\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001Action \u30af\u30e9\u30b9\u306e\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<code>&lt;forward&gt;<\/code><code>ActionErrors<\/code><code>isEmpty()<\/code><code>ActionErrors<\/code><code>saveErrors(HttpServletRequest)<\/code><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public class MyAction extends Action {\n    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {\n        ActionErrors errors = form.validate(mapping, request);\n        if (errors.isEmpty()) {\n            \/\/ \u5904\u7406\u8868\u5355\u6570\u636e\uff0c\u6267\u884c\u4e1a\u52a1\u903b\u8f91\n            return mapping.findForward(\"success\");\n        } else {\n            errors.saveErrors(request);\n            return mapping.findForward(\"failure\");\n        }\n    }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u306e\u691c\u8a3c\u3092\u5b9f\u884c\u3057\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u8fd4\u3057\u307e\u3059\u3002 \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u304c\u7a7a\u306e\u5834\u5408\u3001\u691c\u8a3c\u30a8\u30e9\u30fc\u306f\u306a\u304f\u3001\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3057\u3066\u3001\u6210\u529f\u30d1\u30b9 (\u8981\u7d20\u306b\u3088\u3063\u3066\u6307\u5b9a) \u3092\u8fd4\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u691c\u8a3c\u30a8\u30e9\u30fc\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8981\u6c42\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u4fdd\u5b58\u3057\u3001\u30a8\u30e9\u30fc \u30d1\u30b9\u3092\u8fd4\u3057\u307e\u3059\u3002<code>form.validate(mapping, request)<\/code><code>ActionErrors<\/code><code>&lt;forward&gt;<\/code><code>errors.saveErrors(request)<\/code><\/p>\n\n\n\n<p>Struts \u306e\u691c\u8a3c\u30eb\u30fc\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u7c21\u5358\u306b\u691c\u8a3c\u3057\u3066\u3001\u30c7\u30fc\u30bf\u306e\u6b63\u5f53\u6027\u3068\u6b63\u78ba\u6027\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002 \u691c\u8a3c\u898f\u5247\u3092\u9069\u5207\u306b\u69cb\u6210\u3059\u308b\u3053\u3068\u3067\u3001\u91cd\u8907\u3059\u308b\u30b3\u30fc\u30c9\u3068\u30a8\u30e9\u30fc\u3092\u6e1b\u3089\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u7ba1\u7406\u3068\u4fdd\u5b88\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u56fd\u969b\u5316\u3059\u308b\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u3067\u306f\u3001\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u30fb\u30d5\u30a1\u30a4\u30eb\u306b\u4fdd\u7ba1\u3057\u3001\u30ea\u30bd\u30fc\u30b9\u30fb\u30d0\u30f3\u30c9\u30eb\u30fb\u30e1\u30ab\u30cb\u30ba\u30e0\u3092\u4f7f\u7528\u3057\u3066\u305d\u308c\u3089\u3092\u56fd\u969b\u5316\u3057\u3001\u7570\u306a\u308b\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u7570\u306a\u308b\u30ed\u30b1\u30fc\u30eb\u3067\u8868\u793a\u3055\u308c\u308b\u3088\u3046\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 Struts \u3067\u56fd\u969b\u5316\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u5b9f\u88c5\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30ea\u30bd\u30fc\u30b9 \u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u4f5c\u6210\u3059\u308b: \u30d7\u30ed\u30b8\u30a7\u30af\u30c8 \u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b \u3068\u3044\u3046\u540d\u524d\u306e\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u4f5c\u6210\u3057\u3001\u3053\u306e\u30d5\u30a9\u30eb\u30c0\u30fc\u306b\u540d\u524d\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3001\u82f1\u8a9e\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u4fdd\u5b58\u3057\u307e\u3059\u3002 \u4f8b: vbnetCopy code \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u30013 \u3064\u306e\u82f1\u8a9e\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u30ad\u30fc\u3068\u5024\u306e\u30da\u30a2\u306e\u5f62\u5f0f\u3067\u4fdd\u5b58\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u4ed6\u306e\u8a00\u8a9e\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308b\u306b\u306f\u3001\u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u4e0b\u306b\u8a00\u8a9e\u95a2\u9023\u306e\u30b5\u30d6\u30d5\u30a9\u30eb\u30c0\u30fc (\u7c21\u4f53\u5b57\u4e2d\u56fd\u8a9e) \u3084 (\u30d5\u30e9\u30f3\u30b9\u8a9e) \u306a\u3069) \u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u6b21\u306b\u3001\u3053\u306e\u30b5\u30d6\u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u4e0b\u306b\u540d\u524d\u306e\u4ed8\u3044\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3001\u5bfe\u5fdc\u3059\u308b\u8a00\u8a9e\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30d5\u30a9\u30eb\u30c0\u30fc\u306e\u4e0b\u306b\u4f5c\u6210\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u306b\u3001\u4ee5\u4e0b\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002 go\u30b3\u30fc\u30c9\u3092\u30b3\u30d4\u30fc\u3059\u308b \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u82f1\u8a9e\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u540c\u3058\u4e2d\u56fd\u8a9e\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u4fdd\u5b58\u3055\u308c\u307e\u3059\u3002<code>src<\/code><code>resources<\/code><code>messages.properties<\/code><code>error.required=This field is required. error.email=Invalid email address. error.length=The length of the field must be between {0} and {1}.&nbsp;<\/code><code>resources<\/code><code>zh_CN<\/code><code>fr_FR<\/code><code>messages.properties<\/code><code>zh_CN<\/code><code>messages.properties<\/code><code>error.required=\u8be5\u5b57\u6bb5\u662f\u5fc5\u9700\u7684\u3002 error.email=\u65e0\u6548\u7684\u7535\u5b50\u90ae\u4ef6\u5730\u5740\u3002 error.length=\u5b57\u6bb5\u7684\u957f\u5ea6\u5fc5\u987b\u4ecb\u4e8e{0}\u548c{1}\u4e4b\u95f4\u3002<\/code><\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u306e\u8a2d\u5b9a: \u30d5\u30a1\u30a4\u30eb\u5185\u3067\u3001\u8981\u7d20\u3092\u4f7f\u7528\u3057\u3066\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002 \u4f8b: xmlCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u3078\u306e\u76f8\u5bfe\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>struts-config.xml<\/code><code>struts-config.xml<\/code><code>&lt;message-resources&gt;<\/code><code>&lt;message-resources parameter=\"resources.messages\"\/&gt;&nbsp;<\/code><code>parameter<\/code><\/li>\n\n\n\n<li>Action \u30af\u30e9\u30b9\u3067\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u3092\u4f7f\u7528\u3059\u308b: Action \u30af\u30e9\u30b9\u3067\u306f\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u547c\u3073\u51fa\u3057\u3066\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u6b21\u306e\u30d5\u30a9\u30fc\u30e0\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u691c\u8a3c\u3059\u308b\u5358\u7d14\u306a Action \u30af\u30e9\u30b9\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u307e\u305f\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u7a7a\u306e\u5834\u5408\u3001\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u304b\u3089\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<code>ActionMessages<\/code><code>add(String, ActionMessage)<\/code><code>public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginForm loginForm = (LoginForm) form; ActionErrors errors = new ActionErrors(); String username = loginForm.getUsername(); String password = loginForm.getPassword(); if (username == null || username.trim().length() == 0) { errors.add(\"username\", new ActionMessage(\"error.required\")); } if (password == null || password.trim().length() == 0) { errors.add(\"password\", new ActionMessage(\"error.required\")); } if (!authenticateUser(username, password)) { errors.add(\"login\", new ActionMessage(\"error.login.invalid\")); } if (errors.isEmpty()) { return mapping.findForward(\"success\"); } else { saveErrors(request, errors); return mapping.findForward(\"failure\"); } } private boolean authenticateUser(String username, String password) { \/\/ \u8eab\u4efd\u9a8c\u8bc1\u903b\u8f91 } }&nbsp;<\/code><code>error.required<\/code><\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3001\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30d5\u30a3\u30fc\u30eb\u30c9\u306e\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u30ea\u30b9\u30c8\u306b\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8ffd\u52a0\u3055\u308c\u305f\u3053\u3068\u3092\u793a\u3057\u307e\u3059\u3002<code>ActionMessage<\/code><code>ActionErrors<\/code><code>errors.add(\"username\", new ActionMessage(\"error.required\"))<\/code><code>error.required<\/code><code>username<\/code><\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30e1\u30bd\u30c3\u30c9\u306f\u30e6\u30fc\u30b6\u30fc\u3092\u8a8d\u8a3c\u3059\u308b\u30ab\u30b9\u30bf\u30e0 \u30e1\u30bd\u30c3\u30c9\u3067\u3059\u3002 \u691c\u8a3c\u306b\u5931\u6557\u3057\u305f\u5834\u5408\u3001\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u4f7f\u7528\u3057\u3066\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u30a8\u30e9\u30fc\u304c\u8ffd\u52a0\u3055\u308c\u307e\u3059\u3002<code>authenticateUser<\/code><code>error.login.invalid<\/code><code>login<\/code><code>ActionErrors<\/code><\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>JSP \u30da\u30fc\u30b8\u306b\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b: JSP \u30da\u30fc\u30b8\u3067\u306f\u3001\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3059\u3079\u3066\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u30d5\u30a9\u30fc\u30e0\u306b\u8868\u793a\u3059\u308b\u5358\u7d14\u306aJSP\u30da\u30fc\u30b8\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 jspCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3059\u3079\u3066\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3057\u3066\u3044\u307e\u3059\u3002 \u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u3042\u308b\u5834\u5408\u306f\u3001\u305d\u308c\u305e\u308c\u306b\u500b\u5225\u306e\u30ea\u30b9\u30c8 \u30a2\u30a4\u30c6\u30e0\u3092\u6301\u3064\u30ea\u30b9\u30c8\u3068\u3057\u3066\u8868\u793a\u3055\u308c\u307e\u3059\u3002<code>&lt;html:errors&gt;<\/code><code>&lt;html:errors\/&gt; &lt;html:form action=\"\/login\" method=\"post\"&gt; &lt;html:text property=\"username\"\/&gt; &lt;html:text property=\"password\"\/&gt; &lt;html:submit\/&gt; &lt;\/html:form&gt;&nbsp;<\/code><code>&lt;html:errors&gt;<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u30ea\u30bd\u30fc\u30b9\u30fb\u30d0\u30f3\u30c9\u30eb\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u56fd\u969b\u5316\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u51e6\u7406\u3092\u7c21\u5358\u306b\u5b9f\u88c5\u3067\u304d\u308b\u305f\u3081\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u7570\u306a\u308b\u30ed\u30b1\u30fc\u30eb\u3067\u7570\u306a\u308b\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3067\u304d\u307e\u3059\u3002 \u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u3068\u4f7f\u7528\u72b6\u6cc1\u30bf\u30b0\u3092\u9069\u5207\u306b\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001JSP\u30da\u30fc\u30b8\u306b\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u306e\u306b\u4fbf\u5229\u306b\u306a\u308a\u3001\u30e6\u30fc\u30b6\u30fc\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3068\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4f7f\u3044\u3084\u3059\u3055\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<code>&lt;html:errors&gt;<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u4f7f\u7528: \u5834\u5408\u306b\u3088\u3063\u3066\u306f\u3001\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u306e\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6e21\u3059\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u306e\u9577\u3055\u3092 5 \u304b\u3089 20 \u6587\u5b57\u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3068\u3044\u3046\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u5834\u5408\u306f\u3001\u6b21\u306e\u30b3\u30fc\u30c9\u3092\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u6700\u5c0f\u9577\u3068\u6700\u5927\u9577\u3092\u305d\u308c\u305e\u308c\u8868\u3059 &lt;&gt; \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6301\u3064\u30ea\u30bd\u30fc\u30b9 \u30d1\u30c3\u30af \u30ad\u30fc\u3067\u3059\u3002 \u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308b\u3068\u304d\u306f\u3001\u3053\u308c\u3089 &lt;&gt; \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u6e21\u3059\u3053\u3068\u3067\u3001\u3053\u308c\u3089\u306e\u5024\u3092\u8a2d\u5b9a\u3067\u304d\u307e\u3059\u3002<code>ActionMessages<\/code><code>errors.add(\"username\", new ActionMessage(\"error.length\", 5, 20));&nbsp;<\/code><code>error.length<\/code><code>ActionMessage<\/code><\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u3067\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u4f7f\u7528\u3059\u308b: \u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u30d5\u30a1\u30a4\u30eb\u3067\u306f\u3001 \u306a\u3069\u306e\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u3092\u4f7f\u7528\u3057\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u5834\u6240\u3092\u793a\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u4e0a\u8a18\u306e\u4f8b\u306e goCopy \u30b3\u30fc\u30c9\u3068\u3001\u305d\u308c\u305e\u308c 1 \u756a\u76ee\u3068 2 \u756a\u76ee\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u4f4d\u7f6e\u3068\u3044\u3046\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u542b\u3080\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 \u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u8868\u793a\u3055\u308c\u308b\u3068\u3001Struts \u306f\u3053\u308c\u3089\u306e\u30d7\u30ec\u30fc\u30b9\u30db\u30eb\u30c0\u30fc\u3092\u5b9f\u969b\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u5024\u306b\u81ea\u52d5\u7684\u306b\u7f6e\u304d\u63db\u3048\u307e\u3059\u3002<code>{0}<\/code><code>{1}<\/code><code>error.length=The length of the field must be between {0} and {1}.&nbsp;<\/code><code>{0}<\/code><code>{1}<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u3067\u518d\u5229\u7528\u53ef\u80fd\u306a\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u7c21\u5358\u306b\u5b9a\u7fa9\u3057\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30d1\u30e9\u30e1\u30fc\u30bf\u3092\u6e21\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u30b3\u30fc\u30c9\u306e\u5197\u9577\u6027\u3068\u30a8\u30e9\u30fc\u304c\u6e1b\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4fdd\u5b88\u6027\u3068\u518d\u5229\u7528\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"7\">\n<li>\u30ea\u30bd\u30fc\u30b9\u30fb\u30d0\u30f3\u30c9\u30eb\u306e\u62e1\u5f35: \u3067\u30ea\u30bd\u30fc\u30b9\u30fb\u30d0\u30f3\u30c9\u30eb\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u306b\u52a0\u3048\u3066\u3001\u62e1\u5f35\u6a5f\u80fd\u304a\u3088\u3073\u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u30ab\u30b9\u30bf\u30e0\u30fb\u30a8\u30e9\u30fc\u30fb\u30e1\u30c3\u30bb\u30fc\u30b8\u304a\u3088\u3073\u30ea\u30bd\u30fc\u30b9\u30fb\u30d0\u30f3\u30c9\u30eb\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u5358\u7d14\u306a\u30ab\u30b9\u30bf\u30e0 \u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8 \u30af\u30e9\u30b9\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30af\u30e9\u30b9\u306f\u30af\u30e9\u30b9\u304b\u3089\u7d99\u627f\u3057\u3001\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u3066\u30ab\u30b9\u30bf\u30e0 \u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u305d\u306e\u5f8c\u3001Action \u30af\u30e9\u30b9\u3067\u305d\u306e\u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u3001\u30ab\u30b9\u30bf\u30e0 \u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3059\u308b\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u3053\u306e\u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u30ab\u30b9\u30bf\u30e0 \u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u3066\u3044\u307e\u3059\u3002 \u30ab\u30b9\u30bf\u30e0 \u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u306f\u3001\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9 \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<code>struts-config.xml<\/code><code>ActionMessages<\/code><code>ActionMessage<\/code><code>public class MyActionMessage extends ActionMessage { public MyActionMessage(String key) { super(key); } public MyActionMessage(String key, Object[] values) { super(key, values); } public String toString(Locale locale) { \/\/ \u81ea\u5b9a\u4e49\u9519\u8bef\u6d88\u606f\u7684\u5904\u7406\u903b\u8f91 } }&nbsp;<\/code><code>MyActionMessage<\/code><code>ActionMessage<\/code><code>toString(Locale)<\/code><code>MyActionMessage<\/code><code>public class LoginAction extends Action { public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { LoginForm loginForm = (LoginForm) form; ActionErrors errors = new ActionErrors(); String username = loginForm.getUsername(); String password = loginForm.getPassword(); if (username == null || username.trim().length() == 0) { errors.add(\"username\", new MyActionMessage(\"error.required\")); } if (password == null || password.trim().length() == 0) { errors.add(\"password\", new MyActionMessage(\"error.required\")); } if (!authenticateUser(username, password)) { errors.add(\"login\", new MyActionMessage(\"error.login.invalid\")); } if (errors.isEmpty()) { return mapping.findForward(\"success\"); } else { saveErrors(request, errors); return mapping.findForward(\"failure\"); } } private boolean authenticateUser(String username, String password) { \/\/ \u8eab\u4efd\u9a8c\u8bc1\u903b\u8f91 } }&nbsp;<\/code><code>MyActionMessage<\/code><code>toString(Locale)<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u62e1\u5f35\u6a5f\u80fd\u3068\u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30ab\u30b9\u30bf\u30e0\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3068\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u3092\u4f5c\u6210\u3057\u3001\u30ab\u30b9\u30bf\u30e0\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u306b\u3088\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3092\u3088\u308a\u9069\u5207\u306b\u6e80\u305f\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u518d\u5229\u7528\u6027\u3068\u4fdd\u5b88\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<code>ActionMessages<\/code><code>ActionMessage<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u7d39\u4ecb\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306f\u3001Struts Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u958b\u767a\u3092\u5358\u7d14\u5316\u304a\u3088\u3073\u52a0\u901f\u3059\u308b\u305f\u3081\u306b\u8a2d\u8a08\u3055\u308c\u305f JSP \u30ab\u30b9\u30bf\u30e0\u30fb\u30bf\u30b0\u306e\u30bb\u30c3\u30c8\u3067\u3059\u3002 \u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001Struts\u306e\u30e2\u30c7\u30eb\u30c7\u30fc\u30bf\u3084\u30ea\u30af\u30a8\u30b9\u30c8\u30d7\u30ed\u30bb\u30c3\u30b5\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3001HTML\u30d5\u30a9\u30fc\u30e0\u8981\u7d20\u3001\u30ea\u30f3\u30af\u3001\u305d\u306e\u4ed6\u306eWeb\u30da\u30fc\u30b8\u8981\u7d20\u3092\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u307e\u3059\u3002 Struts \u3067\u306f\u3001\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306f JSP \u30da\u30fc\u30b8\u3068\u30a2\u30af\u30b7\u30e7\u30f3\u30af\u30e9\u30b9\u9593\u306e\u4e3b\u8981\u306a\u901a\u4fe1\u624b\u6bb5\u306e 1 \u3064\u3067\u3059\u3002<\/p>\n\n\n\n<p>Struts \u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u3001\u30bf\u30b9\u30af\u3054\u3068\u306b\u7570\u306a\u308b\u30bf\u30b0\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002 Struts \u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u4e00\u822c\u7684\u306a\u30bf\u30b0\u3068\u305d\u306e\u7528\u9014\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>&lt;html:form&gt;<\/code>\u30bf\u30b0\u30bf\u30b0\u306f HTML \u30d5\u30a9\u30fc\u30e0\u306e\u751f\u6210\u306b\u4f7f\u7528\u3055\u308c\u3001\u5c5e\u6027\u306f\u30d5\u30a9\u30fc\u30e0\u306b\u3088\u3063\u3066\u9001\u4fe1\u3055\u308c\u308b\u30a2\u30af\u30b7\u30e7\u30f3 URL \u3092\u6307\u5b9a\u3057\u3001\u5c5e\u6027\u306f\u30d5\u30a9\u30fc\u30e0\u306b\u3088\u3063\u3066\u9001\u4fe1\u3055\u308c\u308b HTTP \u30e1\u30bd\u30c3\u30c9\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002 \u3055\u3089\u306b\u3001\u30bf\u30b0\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u30b9\u30bf\u30a4\u30eb\u3068\u52d5\u4f5c\u3092\u5236\u5fa1\u3059\u308b\u8ffd\u52a0\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<code>&lt;html:form&gt;<\/code><code>action<\/code><code>method<\/code><code>&lt;html:form&gt;<\/code><\/li>\n\n\n\n<li><code>&lt;html:text&gt;<\/code>\u30bf\u30b0\u30bf\u30b0\u306f HTML \u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306e\u751f\u6210\u306b\u4f7f\u7528\u3055\u308c\u3001\u5c5e\u6027\u306f\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u30d5\u30a9\u30fc\u30e0 Bean \u5c5e\u6027\u3092\u6307\u5b9a\u3057\u3001\u5c5e\u6027\u306f\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306e\u30b5\u30a4\u30ba\u3068\u6700\u5927\u9577\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;html:text&gt;<\/code><code>property<\/code><code>size<\/code><code>maxlength<\/code><\/li>\n\n\n\n<li><code>&lt;html:password&gt;<\/code>\u30bf\u30b0\u30bf\u30b0\u306f\u3001HTML \u30d1\u30b9\u30ef\u30fc\u30c9\u30dc\u30c3\u30af\u30b9\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u5c5e\u6027\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u30dc\u30c3\u30af\u30b9\u306b\u95a2\u9023\u4ed8\u3051\u3089\u308c\u305f\u30d5\u30a9\u30fc\u30e0 Bean \u5c5e\u6027\u3092\u6307\u5b9a\u3057\u3001\u5c5e\u6027\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u30dc\u30c3\u30af\u30b9\u306e\u30b5\u30a4\u30ba\u3068\u6700\u5927\u9577\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;html:password&gt;<\/code><code>property<\/code><code>size<\/code><code>maxlength<\/code><\/li>\n\n\n\n<li><code>&lt;html:submit&gt;<\/code>\u30bf\u30b0\u30bf\u30b0\u306f\u3001HTML \u9001\u4fe1\u30dc\u30bf\u30f3\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u5c5e\u6027\u306f\u30dc\u30bf\u30f3\u306e\u8868\u793a\u30c6\u30ad\u30b9\u30c8\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;html:submit&gt;<\/code><code>value<\/code><\/li>\n\n\n\n<li><code>&lt;html:link&gt;<\/code>\u30bf\u30b0\u30bf\u30b0\u306f HTML \u30cf\u30a4\u30d1\u30fc\u30ea\u30f3\u30af\u306e\u751f\u6210\u306b\u4f7f\u7528\u3055\u308c\u3001\u5c5e\u6027\u306f\u30ea\u30f3\u30af\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u30a2\u30af\u30b7\u30e7\u30f3 URL \u3092\u6307\u5b9a\u3057\u3001\u5c5e\u6027\u306f\u30bf\u30fc\u30b2\u30c3\u30c8\u30da\u30fc\u30b8\u3078\u306e\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u3001\u5c5e\u6027\u306f\u30ea\u30f3\u30af\u306e\u30a2\u30f3\u30ab\u30fc\u30dd\u30a4\u30f3\u30c8\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;html:link&gt;<\/code><code>action<\/code><code>page<\/code><code>anchor<\/code><\/li>\n\n\n\n<li><code>&lt;html:errors&gt;<\/code>Label \u30e9\u30d9\u30eb\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u9001\u4fe1\u5f8c\u306b\u767a\u751f\u3059\u308b\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306f\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306e\u30d5\u30a9\u30fc\u30e0 Bean \u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u3092\u6307\u5b9a\u3057\u3001Bundle \u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306f\u4f7f\u7528\u3059\u308b\u30ea\u30bd\u30fc\u30b9\u30d0\u30f3\u30c9\u30eb\u540d\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;html:errors&gt;<\/code><code>property<\/code><code>bundle<\/code><\/li>\n<\/ol>\n\n\n\n<p>Struts \u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306f\u3001Struts Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3059\u3002 \u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001HTML\u30d5\u30a9\u30fc\u30e0\u8981\u7d20\u3001\u30ea\u30f3\u30af\u3001\u304a\u3088\u3073\u305d\u306e\u4ed6\u306eWeb\u30da\u30fc\u30b8\u8981\u7d20\u3092\u3059\u3070\u3084\u304f\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u308b\u305f\u3081\u3001\u30b3\u30fc\u30c9\u306e\u5197\u9577\u6027\u3068\u30a8\u30e9\u30fc\u304c\u6e1b\u5c11\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u4fdd\u5b88\u6027\u3068\u518d\u5229\u7528\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308bStruts\u30bf\u30b0\u306e\u4f7f\u7528\u4f8b\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b Struts \u30bf\u30b0\u306e\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>&lt;html:form&gt;<\/code>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066 POST \u30ea\u30af\u30a8\u30b9\u30c8\u306e HTML \u30d5\u30a9\u30fc\u30e0\u3092\u751f\u6210\u3057\u307e\u3059\u3002 \u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306f\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u3092\u6307\u5b9a\u3057\u3001\u300cTextBox\u300d\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306f\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306e\u30b5\u30a4\u30ba\u3068\u6700\u5927\u9577\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 \u30bf\u30b0\u306f\u3001\u9001\u4fe1\u30dc\u30bf\u30f3\u3092\u751f\u6210\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<code>&lt;html:form action=\"\/login\" method=\"post\"&gt; &lt;html:text property=\"username\" size=\"20\" maxlength=\"50\"\/&gt; &lt;html:password property=\"password\" size=\"20\" maxlength=\"50\"\/&gt; &lt;html:submit value=\"Login\"\/&gt; &lt;\/html:form&gt;&nbsp;<\/code><code>&lt;html:form&gt;<\/code><code>property<\/code><code>size<\/code><code>maxlength<\/code><code>&lt;html:submit&gt;<\/code><\/li>\n\n\n\n<li><code>&lt;html:text&gt;<\/code>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u3092\u751f\u6210\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u6307\u5b9a\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30c6\u30ad\u30b9\u30c8\u30dc\u30c3\u30af\u30b9\u306e\u30b5\u30a4\u30ba\u3068\u6700\u5927\u9577\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<code>&lt;html:text property=\"username\" size=\"20\" maxlength=\"50\"\/&gt;&nbsp;<\/code><code>&lt;html:text&gt;<\/code><code>property<\/code><code>size<\/code><code>maxlength<\/code><\/li>\n\n\n\n<li><code>&lt;html:password&gt;<\/code>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30e9\u30d9\u30eb\u3092\u4f7f\u7528\u3057\u3066\u30d1\u30b9\u30ef\u30fc\u30c9\u30dc\u30c3\u30af\u30b9\u3092\u751f\u6210\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30d5\u30a9\u30fc\u30e0 Bean \u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u3092\u6307\u5b9a\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u30fc\u306f\u30d1\u30b9\u30ef\u30fc\u30c9\u30dc\u30c3\u30af\u30b9\u306e\u30b5\u30a4\u30ba\u3068\u6700\u5927\u9577\u3092\u6307\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<code>&lt;html:password property=\"password\" size=\"20\" maxlength=\"50\"\/&gt;&nbsp;<\/code><code>&lt;html:password&gt;<\/code><code>property<\/code><code>size<\/code><code>maxlength<\/code><\/li>\n\n\n\n<li><code>&lt;html:submit&gt;<\/code>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30e9\u30d9\u30eb\u3092\u4f7f\u7528\u3057\u3066\u9001\u4fe1\u30dc\u30bf\u30f3\u3092\u751f\u6210\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u4f7f\u7528\u3057\u3066\u30dc\u30bf\u30f3\u306e\u8868\u793a\u30c6\u30ad\u30b9\u30c8\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002<code>&lt;html:submit value=\"Login\"\/&gt;&nbsp;<\/code><code>&lt;html:submit&gt;<\/code><code>value<\/code><\/li>\n\n\n\n<li><code>&lt;html:link&gt;<\/code>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u30cf\u30a4\u30d1\u30fc\u30ea\u30f3\u30af\u3092\u751f\u6210\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30ea\u30f3\u30af\u306e\u30bf\u30fc\u30b2\u30c3\u30c8\u30a2\u30af\u30b7\u30e7\u30f3 URL \u3092\u6307\u5b9a\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30bf\u30fc\u30b2\u30c3\u30c8\u30da\u30fc\u30b8\u3078\u306e\u30d1\u30b9\u3092\u6307\u5b9a\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30ea\u30f3\u30af\u306e\u30a2\u30f3\u30ab\u30fc\u30dd\u30a4\u30f3\u30c8\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;html:link action=\"\/logout\" page=\"\/index.jsp\" anchor=\"top\"&gt;Logout&lt;\/html:link&gt;&nbsp;<\/code><code>&lt;html:link&gt;<\/code><code>action<\/code><code>page<\/code><code>anchor<\/code><\/li>\n\n\n\n<li><code>&lt;html:errors&gt;<\/code>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u9001\u4fe1\u5f8c\u306b\u751f\u6210\u3055\u308c\u305f\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u30e9\u30d9\u30eb\u304c\u4f7f\u7528\u3055\u308c\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u30a8\u30e9\u30fc\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306e\u30d5\u30a9\u30fc\u30e0Bean\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;html:errors property=\"username\"\/&gt;&nbsp;<\/code><code>&lt;html:errors&gt;<\/code><code>property<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u4f8b\u304b\u3089\u308f\u304b\u308b\u3088\u3046\u306b\u3001Struts \u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306f\u3001HTML \u30d5\u30a9\u30fc\u30e0\u30fb\u30a8\u30ec\u30e1\u30f3\u30c8\u3001\u30ea\u30f3\u30af\u3001\u304a\u3088\u3073\u305d\u306e\u4ed6\u306e Web \u30da\u30fc\u30b8\u30fb\u30a8\u30ec\u30e1\u30f3\u30c8\u3092\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u307e\u3059\u3002 \u3053\u308c\u3089\u306e\u30e9\u30d9\u30eb\u306b\u306f\u8c4a\u5bcc\u306a\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u6a5f\u80fd\u304c\u3042\u308a\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u69cb\u6210\u3059\u308b\u3088\u3046\u306b\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002 Struts \u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u5408\u7406\u7684\u306b\u4f7f\u7528\u3059\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u3092\u30b9\u30d4\u30fc\u30c9\u30a2\u30c3\u30d7\u3057\u3001\u30b3\u30fc\u30c9\u306e\u91cf\u3092\u6e1b\u3089\u3057\u3001\u30b3\u30fc\u30c9\u306e\u4fdd\u5b88\u6027\u3068\u518d\u5229\u7528\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u30b9\u30c8\u30e9\u30c3\u30c8\u30bf\u30b0\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u306b\u306f\u3001\u3055\u307e\u3056\u307e\u306a Web \u30da\u30fc\u30b8\u8981\u7d20\u3092\u7c21\u5358\u306b\u751f\u6210\u3067\u304d\u308b\u5f37\u529b\u306a\u30bf\u30b0\u304c\u591a\u6570\u7528\u610f\u3055\u308c\u3066\u3044\u307e\u3059\u304c\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u306b\u5408\u308f\u305b\u3066\u4e00\u90e8\u306e\u30bf\u30b0\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002 \u30ab\u30b9\u30bf\u30e0 Struts \u30bf\u30b0\u306f\u3001\u30e9\u30d9\u30eb\u3068\u30ab\u30b9\u30bf\u30e0\u30e9\u30d9\u30eb\u30d7\u30ed\u30bb\u30c3\u30b5\u3067\u30e9\u30d9\u30eb\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u62e1\u5f35\u3059\u308b\u3053\u3068\u3067\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>Struts \u30bf\u30b0\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u304b\u3089\u30bf\u30b0\u30af\u30e9\u30b9\u3092\u7d99\u627f\u3059\u308b Java \u30af\u30e9\u30b9\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 \u30af\u30e9\u30b9\u306b\u306f\u3001\u30e9\u30d9\u30eb\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u304c\u542b\u307e\u308c\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30ab\u30b9\u30bf\u30e0 \u30e9\u30d9\u30eb \u30af\u30e9\u30b9\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30af\u30e9\u30b9\u306f\u30af\u30e9\u30b9\u304b\u3089\u7d99\u627f\u3055\u308c\u3001\u30ab\u30b9\u30bf\u30e0 \u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002<code>public class MyTag extends org.apache.struts.taglib.html.BaseHandlerTag { private String myAttribute; public void setMyAttribute(String myAttribute) { this.myAttribute = myAttribute; } public String getMyAttribute() { return myAttribute; } public int doStartTag() throws JspException { \/\/ \u6807\u7b7e\u5904\u7406\u903b\u8f91 return EVAL_BODY_INCLUDE; } }&nbsp;<\/code><code>MyTag<\/code><code>org.apache.struts.taglib.html.BaseHandlerTag<\/code><code>myAttribute<\/code><\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u30bf\u30b0\u306e\u540d\u524d\u3001\u5c5e\u6027\u3001\u76ee\u7684\u3092\u8aac\u660e\u3059\u308b TLD \u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002 TLD\u30d5\u30a1\u30a4\u30eb\u306b\u306f\u3001\u30bf\u30b0\u306e\u540d\u524d\u3001\u8aac\u660e\u3001\u30af\u30e9\u30b9\u3001\u5c5e\u6027\u3001\u76ee\u7684\u306a\u3069\u306e\u60c5\u5831\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u6b21\u306b TLD \u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308a\u307e\u3059: xmlCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001TLD \u30d5\u30a1\u30a4\u30eb\u306f \u3068\u3044\u3046\u540d\u524d\u306e\u65b0\u3057\u3044\u30bf\u30b0\u3092\u5b9a\u7fa9\u3057\u3001\u30bf\u30b0\u306e\u540d\u524d\u3001\u8aac\u660e\u3001\u30af\u30e9\u30b9\u3001\u5c5e\u6027\u3001\u304a\u3088\u3073\u76ee\u7684\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<code>&lt;?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?&gt; &lt;!DOCTYPE taglib PUBLIC \"-\/\/Sun Microsystems, Inc.\/\/DTD JSP Tag Library 1.2\/\/EN\" \"http:\/\/java.sun.com\/dtd\/web-jsptaglibrary_1_2.dtd\"&gt; &lt;taglib&gt; &lt;tlib-version&gt;1.0&lt;\/tlib-version&gt; &lt;jsp-version&gt;1.2&lt;\/jsp-version&gt; &lt;short-name&gt;mytag&lt;\/short-name&gt; &lt;tag&gt; &lt;name&gt;mytag&lt;\/name&gt; &lt;tag-class&gt;com.example.MyTag&lt;\/tag-class&gt; &lt;body-content&gt;JSP&lt;\/body-content&gt; &lt;attribute&gt; &lt;name&gt;myAttribute&lt;\/name&gt; &lt;required&gt;false&lt;\/required&gt; &lt;rtexprvalue&gt;true&lt;\/rtexprvalue&gt; &lt;\/attribute&gt; &lt;\/tag&gt; &lt;\/taglib&gt;&nbsp;<\/code><code>mytag<\/code><\/li>\n\n\n\n<li>TLD \u30d5\u30a1\u30a4\u30eb\u3068\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u30af\u30e9\u30b9\u3092 JAR \u30d5\u30a1\u30a4\u30eb\u306b\u30d1\u30c3\u30b1\u30fc\u30b8\u5316\u3057\u3001JAR \u30d5\u30a1\u30a4\u30eb\u3092 Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u914d\u7f6e\u3057\u307e\u3059\u3002<code>WEB-INF\/lib<\/code><\/li>\n\n\n\n<li>JSP \u30da\u30fc\u30b8\u3067\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u53c2\u7167\u3057\u3001\u30ab\u30b9\u30bf\u30e0\u30bf\u30b0\u3092\u4f7f\u7528\u3057\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u30ab\u30b9\u30bf\u30e0 \u30e9\u30d9\u30eb\u306e\u4f7f\u7528\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002 jspCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30c7\u30a3\u30ec\u30af\u30c6\u30a3\u30d6\u3092\u4f7f\u7528\u3057\u3066\u30ab\u30b9\u30bf\u30e0 \u30bf\u30b0 \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u53c2\u7167\u3057\u3066\u3044\u307e\u3059\u3002 \u30e9\u30d9\u30eb\u306f\u3001\u30ab\u30b9\u30bf\u30e0\u30e9\u30d9\u30eb\u3092\u4f7f\u7528\u3057\u3001\u30ab\u30b9\u30bf\u30e0\u5c5e\u6027\u3092\u6e21\u3059\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<code>&lt;%@ taglib uri=\"\/WEB-INF\/mytag.tld\" prefix=\"mytag\" %&gt; &lt;mytag:mytag myAttribute=\"myValue\"\/&gt;&nbsp;<\/code><code>&lt;%@ taglib %&gt;<\/code><code>&lt;mytag:mytag&gt;<\/code><code>myAttribute<\/code><\/li>\n<\/ol>\n\n\n\n<p>\u81ea\u5206\u3067<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30bf\u30b0\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u3053\u3068\u3067\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3057\u3001Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u958b\u767a\u306e\u52b9\u7387\u3068\u67d4\u8edf\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u30ab\u30b9\u30bf\u30e0Struts\u30bf\u30b0\u306e\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30ab\u30b9\u30bf\u30e0 \u30c6\u30fc\u30d6\u30eb \u30e9\u30d9\u30eb javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30af\u30e9\u30b9\u306f\u30af\u30e9\u30b9\u304b\u3089\u7d99\u627f\u3057\u30012 \u3064\u306e\u30ab\u30b9\u30bf\u30e0 \u30d7\u30ed\u30d1\u30c6\u30a3\u3068 \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002 \u30bf\u30b0\u4ed8\u3051\u30ed\u30b8\u30c3\u30af\u3067\u306f\u3001\u30c7\u30fc\u30bf\u306f HTML \u30c6\u30fc\u30d6\u30eb\u8981\u7d20\u3092\u51fa\u529b\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u8868\u793a\u3055\u308c\u307e\u3059\u3002<code>public class TableTag extends org.apache.struts.taglib.html.BaseHandlerTag { private String[] headers; private List rows; public void setHeaders(String[] headers) { this.headers = headers; } public void setRows(List rows) { this.rows = rows; } public int doStartTag() throws JspException { JspWriter out = pageContext.getOut(); try { \/\/ \u8f93\u51fa\u8868\u5934 out.println(\"&lt;table&gt;\"); out.println(\"&lt;thead&gt;\"); out.println(\"&lt;tr&gt;\"); for (String header : headers) { out.println(\"&lt;th&gt;\" + header + \"&lt;\/th&gt;\"); } out.println(\"&lt;\/tr&gt;\"); out.println(\"&lt;\/thead&gt;\"); \/\/ \u8f93\u51fa\u8868\u4f53 out.println(\"&lt;tbody&gt;\"); for (Object row : rows) { out.println(\"&lt;tr&gt;\"); for (String header : headers) { String value = BeanUtils.getProperty(row, header); out.println(\"&lt;td&gt;\" + value + \"&lt;\/td&gt;\"); } out.println(\"&lt;\/tr&gt;\"); } out.println(\"&lt;\/tbody&gt;\"); out.println(\"&lt;\/table&gt;\"); } catch (Exception e) { throw new JspException(e); } return SKIP_BODY; } }&nbsp;<\/code><code>TableTag<\/code><code>org.apache.struts.taglib.html.BaseHandlerTag<\/code><code>headers<\/code><code>rows<\/code><\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u30da\u30fc\u30b8\u30cd\u30fc\u30b7\u30e7\u30f3\u30bf\u30d6 javaCopy \u30b3\u30fc\u30c9 \u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30af\u30e9\u30b9\u306f\u30af\u30e9\u30b9\u304b\u3089\u7d99\u627f\u3057\u30012 \u3064\u306e\u30ab\u30b9\u30bf\u30e0 \u30d7\u30ed\u30d1\u30c6\u30a3\u3068 \u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002 \u30bf\u30b0\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u3067\u306f\u3001HTML\u30ea\u30f3\u30af\u8981\u7d20\u3092\u51fa\u529b\u3059\u308b\u3053\u3068\u3067\u30da\u30fc\u30b8\u30cd\u30fc\u30b7\u30e7\u30f3\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<code>public class PagerTag extends org.apache.struts.taglib.html.BaseHandlerTag { private int currentPage; private int totalPages; public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public int doStartTag() throws JspException { JspWriter out = pageContext.getOut(); try { \/\/ \u8f93\u51fa\u5206\u9875\u94fe\u63a5 out.println(\"&lt;div class=\\\"pager\\\"&gt;\"); for (int i = 1; i &lt;= totalPages; i++) { if (i == currentPage) { out.println(\"&lt;span&gt;\" + i + \"&lt;\/span&gt;\"); } else { out.println(\"&lt;a href=\\\"?page=\" + i + \"\\\"&gt;\" + i + \"&lt;\/a&gt;\"); } } out.println(\"&lt;\/div&gt;\"); } catch (Exception e) { throw new JspException(e); } return SKIP_BODY; } }&nbsp;<\/code><code>PagerTag<\/code><code>org.apache.struts.taglib.html.BaseHandlerTag<\/code><code>currentPage<\/code><code>totalPages<\/code><\/li>\n<\/ol>\n\n\n\n<p>Struts \u30e9\u30d9\u30eb\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u3053\u3068\u3067\u3001\u3055\u307e\u3056\u307e\u306a\u30ab\u30b9\u30bf\u30e0\u30b3\u30f3\u30c8\u30ed\u30fc\u30eb\u3084\u6a5f\u80fd\u3092\u5b9f\u88c5\u3057\u3066\u3001\u958b\u767a\u3092\u30b9\u30d4\u30fc\u30c9\u30a2\u30c3\u30d7\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u67d4\u8edf\u6027\u3092\u9ad8\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u7d39\u4ecb\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u3001\u8981\u6c42\u3001\u5fdc\u7b54\u3001\u4f8b\u5916\u306a\u3069\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u3057\u3066\u51e6\u7406\u3059\u308b\u305f\u3081\u306e Struts2 \u306e\u6700\u3082\u91cd\u8981\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e 2 \u3064\u3067\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u5b9f\u884c\u524d\u307e\u305f\u306f\u5b9f\u884c\u5f8c\u306b\u4e00\u90e8\u306e\u51e6\u7406\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3067\u304d\u3001\u30ed\u30b0\u8a18\u9332\u3001\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u5236\u5fa1\u3001\u4f8b\u5916\u51e6\u7406\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5206\u6790\u3001\u304a\u3088\u3073\u305d\u306e\u4ed6\u306e\u6a5f\u80fd\u3092\u5b9f\u88c5\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001Struts&lt;&gt; \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u9ad8\u3044\u67d4\u8edf\u6027\u3068\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u306e\u9375\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>Struts2\u3067\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30b9\u30bf\u30c3\u30af\u3092\u4ecb\u3057\u3066\u7de8\u6210\u3055\u308c\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u3055\u307e\u3056\u307e\u306a\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30b9\u30bf\u30c3\u30af\u3092\u5f62\u6210\u3057\u3001\u8981\u6c42\u306e\u5305\u62ec\u7684\u306a\u5236\u5fa1\u3068\u51e6\u7406\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u306f\u3001\u6307\u5b9a\u3055\u308c\u305f\u9806\u5e8f\u3067\u914d\u7f6e\u3055\u308c\u305f\u8907\u6570\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3067\u69cb\u6210\u3055\u308c\u3001\u5404\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u3001\u524d\u51e6\u7406\u3001\u5f8c\u51e6\u7406\u3001\u307e\u305f\u306f\u4f8b\u5916\u51e6\u7406\u3092\u5b9f\u884c\u3057\u305f\u308a\u3001\u8981\u6c42\u306e\u51e6\u7406\u3092\u7d42\u4e86\u3057\u305f\u308a\u3001\u6307\u5b9a\u3055\u308c\u305f\u30da\u30fc\u30b8\u306b\u30b8\u30e3\u30f3\u30d7\u3057\u305f\u308a\u3001\u8981\u6c42\u3092\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u306b\u8ee2\u9001\u3057\u305f\u308a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b\u3044\u304f\u3064\u304b\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u3001\u6b21\u306e\u3088\u3046\u306a\u3044\u304f\u3064\u304b\u306e Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u65e2\u306b\u7d44\u307f\u8fbc\u307e\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>exception<\/code>: \u4f8b\u5916\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b\u3068\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u5b9f\u884c\u4e2d\u306b\u751f\u6210\u3055\u308c\u305f\u4f8b\u5916\u3092\u30ad\u30e3\u30c3\u30c1\u3057\u3001\u305d\u308c\u306b\u5fdc\u3058\u3066\u51e6\u7406\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>params<\/code>: \u8981\u6c42\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u51e6\u7406\u306b\u4f7f\u7528\u3055\u308c\u3001\u8981\u6c42\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092 Action \u30d7\u30ed\u30d1\u30c6\u30a3\u306b\u5909\u63db\u3057\u3001\u578b\u5909\u63db\u3068\u30c1\u30a7\u30c3\u30af\u30b5\u30e0\u3092\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>servlet-config<\/code>: \u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3001\u8981\u6c42\u3001\u5fdc\u7b54\u3001\u305d\u306e\u4ed6\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306a\u3069\u3001\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u306e\u69cb\u6210\u60c5\u5831\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>servlet-config-struts<\/code>: \u30a2\u30af\u30b7\u30e7\u30f3\u30b3\u30f3\u30c6\u30ad\u30b9\u30c8\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30d7\u30ed\u30ad\u30b7\u3001\u305d\u306e\u4ed6\u306e\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306a\u3069\u306eStruts\u69cb\u6210\u60c5\u5831\u3092\u8a2d\u5b9a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li><code>validation<\/code>: \u6307\u5b9a\u3055\u308c\u305f\u691c\u8a3c\u898f\u5247\u306b\u5f93\u3063\u3066\u691c\u8a3c\u3067\u304d\u308b\u30d5\u30a9\u30fc\u30e0 \u30c7\u30fc\u30bf\u306e\u691c\u8a3c\u306b\u4f7f\u7528\u3055\u308c\u3001\u691c\u8a3c\u304c\u5931\u6557\u3057\u305f\u5834\u5408\u306b\u30a8\u30e9\u30fc \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8fd4\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u7d44\u307f\u8fbc\u307f\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306b\u52a0\u3048\u3066\u3001\u958b\u767a\u8005\u306f\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u306b\u5408\u308f\u305b\u3066\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 \u30ab\u30b9\u30bf\u30e0 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3057\u3001 \u306a\u3069\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u5b9f\u88c5\u3059\u308b\u5834\u5408\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u5b9f\u884c\u9806\u5e8f\u3068\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u306e\u69cb\u6210\u306b\u6ce8\u610f\u3092\u6255\u3044\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u6b63\u3057\u3044\u9806\u5e8f\u3067\u5b9f\u884c\u3055\u308c\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3001\u8981\u6c42\u306e\u3059\u3079\u3066\u306e\u5074\u9762\u3092\u51e6\u7406\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<code>com.opensymphony.xwork2.interceptor.Interceptor<\/code><code>init()<\/code><code>destroy()<\/code><code>intercept()<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2 \u3067\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30fb\u30b9\u30bf\u30c3\u30af\u3092\u69cb\u6210\u3057\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u5b9f\u884c\u3055\u308c\u308b\u9806\u5e8f\u3092\u6307\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u306f\u3001\u305d\u308c\u305e\u308c\u304c\u4e00\u610f\u306e\u540d\u524d\u3068\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u30bb\u30c3\u30c8\u3092\u6301\u3064\u8907\u6570\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3067\u69cb\u6210\u3055\u308c\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u306f\u3001\u3055\u307e\u3056\u307e\u306a\u30d3\u30b8\u30cd\u30b9 \u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u30cb\u30fc\u30ba\u306b\u5fdc\u3058\u3066\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u306e\u69cb\u6210\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;interceptors&gt;\n   &lt;interceptor name=\"myInterceptor\" class=\"com.example.MyInterceptor\"&gt;\n       &lt;param name=\"param1\"&gt;value1&lt;\/param&gt;\n       &lt;param name=\"param2\"&gt;value2&lt;\/param&gt;\n   &lt;\/interceptor&gt;\n   &lt;interceptor-stack name=\"myInterceptorStack\"&gt;\n       &lt;interceptor-ref name=\"exception\"\/&gt;\n       &lt;interceptor-ref name=\"myInterceptor\"\/&gt;\n       &lt;interceptor-ref name=\"params\"\/&gt;\n   &lt;\/interceptor-stack&gt;\n&lt;\/interceptors&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u3068\u3044\u3046\u540d\u524d\u306e\u30ab\u30b9\u30bf\u30e0 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u308a\u30012 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068 \u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u6b21\u306b\u30011 \u3068\u547c\u3070\u308c\u308b\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u304c\u5b9a\u7fa9\u3055\u308c\u3001\u7d44\u307f\u8fbc\u307f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3001\u30ab\u30b9\u30bf\u30e0\u3001\u304a\u3088\u3073\u7d44\u307f\u8fbc\u307f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u7d50\u5408\u3055\u308c\u3001\u9806\u756a\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<code>myInterceptor<\/code><code>param1<\/code><code>param2<\/code><code>myInterceptorStack<\/code><code>exception<\/code><code>myInterceptor<\/code><code>params<\/code><\/p>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u306f\u3001\u6ce8\u91c8\u307e\u305f\u306f XML \u69cb\u6210\u306b\u3088\u308b\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001Action \u3067\u306f\u3001\u4f7f\u7528\u3055\u308c\u308b\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30b9\u30bf\u30c3\u30af\u306f\u6ce8\u91c8\u306b\u3088\u3063\u3066\u6307\u5b9a\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>@InterceptorRef(\"myInterceptorStack\")\npublic class MyAction extends ActionSupport {\n   \/\/ ...\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u6ce8\u91c8\u3092\u4f7f\u7528\u3057\u3066\u3001\u3068\u3044\u3046\u540d\u524d\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30b9\u30bf\u30c3\u30af\u306e\u4f7f\u7528\u3092\u6307\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002 \u3053\u306e\u3088\u3046\u306b\u3057\u3066\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u304c\u5b9f\u884c\u3055\u308c\u308b\u3068\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30b9\u30bf\u30c3\u30af\u5185\u306b\u3042\u308b\u9806\u5e8f\u3067\u5b9f\u884c\u3055\u308c\u3001\u5bfe\u5fdc\u3059\u308b\u51e6\u7406\u304c\u5b8c\u4e86\u3057\u307e\u3059\u3002<code>@InterceptorRef<\/code><code>myInterceptorStack<\/code><\/p>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f\u3001Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30b3\u30a2\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e 2 \u3064\u3067\u3042\u308a\u3001\u3055\u307e\u3056\u307e\u306a\u30d3\u30b8\u30cd\u30b9\u30fb\u30cb\u30fc\u30ba\u306e\u5b9f\u88c5\u306b\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u539f\u7406\u3068\u4f7f\u7528\u6cd5\u3092\u7406\u89e3\u3059\u308b\u3053\u3068\u306f\u3001\u958b\u767a\u8005\u304c Struts&lt;&gt; \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u304c\u3069\u306e\u3088\u3046\u306b\u6a5f\u80fd\u3057\u3066\u3001\u3088\u308a\u67d4\u8edf\u3067\u30b9\u30b1\u30fc\u30e9\u30d6\u30eb\u306a Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u958b\u767a\u3059\u308b\u304b\u3092\u3088\u308a\u3088\u304f\u7406\u89e3\u3059\u308b\u306e\u306b\u5f79\u7acb\u3061\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u66f8\u304d\u65b9\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2 \u3067\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3092\u5b9f\u88c5\u3059\u308b\u3053\u3068\u3067\u30ab\u30b9\u30bf\u30e0\u30fb\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306f Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u8981\u6c42\u3001\u5fdc\u7b54\u3001\u4f8b\u5916\u306a\u3069\u306e\u30a4\u30d9\u30f3\u30c8\u3092\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u3057\u3066\u3001\u30ed\u30ae\u30f3\u30b0\u3001\u30d1\u30fc\u30df\u30c3\u30b7\u30e7\u30f3\u5236\u5fa1\u3001\u4f8b\u5916\u51e6\u7406\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5206\u6790\u306a\u3069\u306e\u3055\u307e\u3056\u307e\u306a\u6a5f\u80fd\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<code>com.opensymphony.xwork2.interceptor.Interceptor<\/code><\/p>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u30b5\u30f3\u30d7\u30eb \u30b3\u30fc\u30c9\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public class MyInterceptor implements Interceptor {\n   private String param1;\n   private String param2;\n\n   public void init() {\n       \/\/ \u521d\u59cb\u5316\u64cd\u4f5c\uff0c\u53ef\u4ee5\u5728\u6b64\u5904\u8bfb\u53d6\u914d\u7f6e\u6587\u4ef6\u7b49\n   }\n\n   public void destroy() {\n       \/\/ \u6e05\u7406\u8d44\u6e90\u64cd\u4f5c\uff0c\u53ef\u4ee5\u5728\u6b64\u5904\u5173\u95ed\u6587\u4ef6\u3001\u7f51\u7edc\u8fde\u63a5\u7b49\n   }\n\n   public String intercept(ActionInvocation invocation) throws Exception {\n       \/\/ \u5728Action\u6267\u884c\u524d\u6267\u884c\u7684\u64cd\u4f5c\n       System.out.println(\"param1=\" + param1);\n       System.out.println(\"param2=\" + param2);\n\n       \/\/ \u8c03\u7528\u4e0b\u4e00\u4e2a\u62e6\u622a\u5668\u6216Action\n       String result = invocation.invoke();\n\n       \/\/ \u5728Action\u6267\u884c\u540e\u6267\u884c\u7684\u64cd\u4f5c\n       System.out.println(\"result=\" + result);\n\n       return result;\n   }\n\n   public void setParam1(String param1) {\n       this.param1 = param1;\n   }\n\n   public void setParam2(String param2) {\n       this.param2 = param2;\n   }\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30af\u30e9\u30b9\u306f\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3057\u3001\u304a\u3088\u3073\u30e1\u30bd\u30c3\u30c9\u3092\u30aa\u30fc\u30d0\u30fc\u30e9\u30a4\u30c9\u3057\u307e\u3059\u3002 \u3053\u306e\u30e1\u30bd\u30c3\u30c9\u3067\u306f\u3001\u30ab\u30b9\u30bf\u30e0 \u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u306e\u5408\u8a08\u304c\u6700\u521d\u306b\u51fa\u529b\u3055\u308c\u3001\u6b21\u306b\u30e1\u30bd\u30c3\u30c9\u304c\u547c\u3073\u51fa\u3055\u308c\u3066\u6b21\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u307e\u305f\u306f\u30a2\u30af\u30b7\u30e7\u30f3\u306b\u9032\u307f\u307e\u3059\u3002 \u30a2\u30af\u30b7\u30e7\u30f3\u5b9f\u884c\u5f8c\u3001\u5b9f\u884c\u7d50\u679c\u3092\u51fa\u529b\u3057\u307e\u3059\u3002<code>MyInterceptor<\/code><code>com.opensymphony.xwork2.interceptor.Interceptor<\/code><code>init()<\/code><code>destroy()<\/code><code>intercept()<\/code><code>intercept()<\/code><code>param1<\/code><code>param2<\/code><code>ActionInvocation.invoke()<\/code><code>result<\/code><\/p>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u6b21\u306e\u4f8b\u306b\u793a\u3059\u3088\u3046\u306b\u3001struts .xml\u3067\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;interceptors&gt;\n   &lt;interceptor name=\"myInterceptor\" class=\"com.example.MyInterceptor\"&gt;\n       &lt;param name=\"param1\"&gt;value1&lt;\/param&gt;\n       &lt;param name=\"param2\"&gt;value2&lt;\/param&gt;\n   &lt;\/interceptor&gt;\n&lt;\/interceptors&gt;\n\n&lt;action name=\"myAction\" class=\"com.example.MyAction\"&gt;\n   &lt;interceptor-ref name=\"myInterceptor\"\/&gt;\n   &lt;result name=\"success\"&gt;\/success.jsp&lt;\/result&gt;\n&lt;\/action&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u3068\u3044\u3046\u540d\u524d\u306e\u30ab\u30b9\u30bf\u30e0 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u308a\u30012 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068 \u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u6b21\u306b\u3001Action \u306e\u69cb\u6210\u3067\u306f\u3001\u30ab\u30b9\u30bf\u30e0 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f7f\u7528\u3057\u3066\u30a2\u30af\u30b7\u30e7\u30f3\u8981\u6c42\u3092\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u3057\u3066\u51e6\u7406\u3057\u307e\u3059\u3002<code>myInterceptor<\/code><code>param1<\/code><code>param2<\/code><code>myAction<\/code><code>myInterceptor<\/code><\/p>\n\n\n\n<p>\u30ab\u30b9\u30bf\u30e0\u30fb\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f5c\u6210\u3059\u308b\u306b\u306f\u3001Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30fb\u30e1\u30ab\u30cb\u30ba\u30e0\u3068 API \u3092\u7fd2\u5f97\u3057\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u5b9f\u884c\u9806\u5e8f\u3068\u5b9f\u884c\u3001\u304a\u3088\u3073\u30a2\u30af\u30b7\u30e7\u30f3\u8981\u6c42\u3001\u5fdc\u7b54\u3001\u4f8b\u5916\u306a\u3069\u306e\u30a4\u30d9\u30f3\u30c8\u306e\u8aad\u307f\u53d6\u308a\u3068\u51e6\u7406\u306e\u65b9\u6cd5\u306b\u7cbe\u901a\u3057\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u540c\u6642\u306b\u3001\u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u6b63\u78ba\u6027\u3068\u5b89\u5b9a\u6027\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u5168\u4f53\u306e\u904b\u7528\u52b9\u7387\u3068\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306b\u5927\u304d\u306a\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u3053\u3068\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u306e\u8a2d\u5b9a\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2 \u3067\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30fb\u30b9\u30bf\u30c3\u30af\u3092\u69cb\u6210\u3057\u3066\u3001\u8981\u6c42\u306e\u51e6\u7406\u3068\u5236\u5fa1\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u3067\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u5b9f\u884c\u9806\u5e8f\u3068\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30c1\u30a7\u30fc\u30f3\u306f\u8907\u6570\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3067\u69cb\u6210\u3055\u308c\u3001\u8981\u6c42\u306e\u5b9f\u884c\u6642\u306b\u4f8b\u5916\u304c\u767a\u751f\u3059\u308b\u524d\u3001\u5f8c\u3001\u307e\u305f\u306f\u4f8b\u5916\u304c\u767a\u751f\u3057\u305f\u3068\u304d\u306b\u305d\u308c\u305e\u308c\u3092\u51e6\u7406\u3067\u304d\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30c1\u30a7\u30fc\u30f3\u306e\u9806\u5e8f\u306b\u3088\u3063\u3066\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u5b9f\u884c\u3055\u308c\u308b\u9806\u5e8f\u304c\u6c7a\u307e\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc \u30c1\u30a7\u30fc\u30f3\u306e\u69cb\u6210\u4f8b\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;interceptors&gt;\n   &lt;interceptor name=\"myInterceptor\" class=\"com.example.MyInterceptor\"&gt;\n       &lt;param name=\"param1\"&gt;value1&lt;\/param&gt;\n       &lt;param name=\"param2\"&gt;value2&lt;\/param&gt;\n   &lt;\/interceptor&gt;\n\n   &lt;interceptor-stack name=\"myInterceptorStack\"&gt;\n       &lt;interceptor-ref name=\"exception\"\/&gt;\n       &lt;interceptor-ref name=\"myInterceptor\"\/&gt;\n       &lt;interceptor-ref name=\"params\"\/&gt;\n   &lt;\/interceptor-stack&gt;\n&lt;\/interceptors&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u3068\u3044\u3046\u540d\u524d\u306e\u30ab\u30b9\u30bf\u30e0 \u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u308a\u30012 \u3064\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3068 \u304c\u6307\u5b9a\u3055\u308c\u3066\u3044\u307e\u3059\u3002 \u6b21\u306b\u3001one \u3068\u3044\u3046\u540d\u524d\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u30c1\u30a7\u30fc\u30f3\u304c\u5b9a\u7fa9\u3055\u308c\u3001\u7d44\u307f\u8fbc\u307f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3001\u30ab\u30b9\u30bf\u30e0\u3001\u304a\u3088\u3073\u7d44\u307f\u8fbc\u307f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u304c\u7d50\u5408\u3055\u308c\u3001\u9806\u756a\u306b\u5b9f\u884c\u3055\u308c\u307e\u3059\u3002<code>myInterceptor<\/code><code>param1<\/code><code>param2<\/code><code>myInterceptorStack<\/code><code>exception<\/code><code>myInterceptor<\/code><code>params<\/code><\/p>\n\n\n\n<p>\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u3092\u4f7f\u7528\u3059\u308b\u306b\u306f\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u8a2d\u5b9a\u3067\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30b9\u30bf\u30c3\u30af\u306e\u540d\u524d\u3092\u6307\u5b9a\u3059\u308b\u304b\u3001\u6ce8\u91c8\u3092\u4ed8\u3051\u3066\u6307\u5b9a\u3067\u304d\u307e\u3059\u3002 \u6b21\u306b\u4f8b\u3092\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;action name=\"myAction\" class=\"com.example.MyAction\"&gt;\n   &lt;interceptor-ref name=\"myInterceptorStack\"\/&gt;\n   &lt;result name=\"success\"&gt;\/success.jsp&lt;\/result&gt;\n&lt;\/action&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001Action \u306f\u547c\u3073\u51fa\u3055\u308c\u305f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u306e\u30c1\u30a7\u30fc\u30f3\u3092\u4f7f\u7528\u3057\u3066\u3001Action \u8981\u6c42\u3092\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u3057\u3066\u51e6\u7406\u3057\u307e\u3059\u3002<code>myAction<\/code><code>myInterceptorStack<\/code><\/p>\n\n\n\n<p>\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u306e\u9806\u5e8f\u306b\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3001\u901a\u5e38\u3001\u6700\u521d\u306b\u5b9f\u884c\u3067\u304d\u308b\u3088\u3046\u306b\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u306e\u524d\u306b\u6c4e\u7528\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u914d\u7f6e\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u540c\u6642\u306b\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u306e\u30b9\u30b3\u30fc\u30d7\u306b\u3082\u6ce8\u610f\u3092\u6255\u3046\u5fc5\u8981\u304c\u3042\u308a\u3001\u4e00\u822c\u306b\u3001\u8907\u6570\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3092\u5171\u6709\u3067\u304d\u308b\u3088\u3046\u306b\u30b0\u30ed\u30fc\u30d0\u30eb\u30b9\u30b3\u30fc\u30d7\u3067\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u3082\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u5358\u4e00\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u30ab\u30b9\u30bf\u30e0\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3064\u307e\u308a\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u306e\u69cb\u6210\u306fStruts2\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306e\u975e\u5e38\u306b\u91cd\u8981\u306a\u90e8\u5206\u3067\u3042\u308a\u3001\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u30c1\u30a7\u30fc\u30f3\u306e\u69cb\u6210\u65b9\u6cd5\u3068\u6ce8\u610f\u4e8b\u9805\u3092\u7fd2\u5f97\u3057\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30c8\u3068\u5236\u5fa1\u3092\u3088\u308a\u9069\u5207\u306b\u5b9f\u73fe\u3057\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u4fe1\u983c\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Ajax\u306e\u7d39\u4ecb\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Ajax (\u975e\u540c\u671f JavaScript \u304a\u3088\u3073 XML) \u306f\u3001Web \u30da\u30fc\u30b8\u5168\u4f53\u3092\u30ea\u30ed\u30fc\u30c9\u3059\u308b\u3053\u3068\u306a\u304f\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u975e\u540c\u671f\u30c7\u30fc\u30bf\u5bfe\u8a71\u3092\u53ef\u80fd\u306b\u3059\u308b Web \u958b\u767a\u624b\u6cd5\u3067\u3042\u308a\u3001\u30da\u30fc\u30b8\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u52d5\u7684\u306b\u66f4\u65b0\u3067\u304d\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>Ajax \u306e\u30b3\u30a2\u30fb\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u306f\u3001XMLHttpRequest \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4ecb\u3057\u3066\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u975e\u540c\u671f\u901a\u4fe1\u3092\u5b9f\u73fe\u3059\u308b\u3053\u3068\u3067\u3042\u308a\u3001XMLHttpRequest \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u306e\u73fe\u5728\u306e\u64cd\u4f5c\u306b\u5f71\u97ff\u3092\u4e0e\u3048\u308b\u3053\u3068\u306a\u304f\u3001\u30d0\u30c3\u30af\u30b0\u30e9\u30a6\u30f3\u30c9\u3067\u30b5\u30fc\u30d0\u30fc\u3068\u5bfe\u8a71\u3067\u304d\u307e\u3059\u3002 \u5f93\u6765\u306eWeb\u30da\u30fc\u30b8\u3068\u6bd4\u8f03\u3057\u3066\u3001Ajax\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30da\u30fc\u30b8\u306e\u30e6\u30fc\u30b6\u30fc\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u304c\u5411\u4e0a\u3057\u3001\u5fdc\u7b54\u901f\u5ea6\u304c\u901f\u304f\u306a\u308a\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u6027\u3068\u5b9f\u7528\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3092\u4f7f\u7528\u3059\u308b Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u306f\u3001\u901a\u5e38\u3001\u4ee5\u4e0b\u306e\u30d5\u30a3\u30fc\u30c1\u30e3\u30fc\u304c\u542b\u307e\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u975e\u540c\u671f\u30c7\u30fc\u30bf\u76f8\u4e92\u4f5c\u7528: Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30da\u30fc\u30b8\u5168\u4f53\u3092\u66f4\u65b0\u305b\u305a\u306b\u975e\u540c\u671f\u30c7\u30fc\u30bf\u3092\u4f7f\u7528\u3057\u3066\u30b5\u30fc\u30d0\u30fc\u3068\u5bfe\u8a71\u3057\u3001\u30da\u30fc\u30b8\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u52d5\u7684\u306b\u66f4\u65b0\u3059\u308b\u6a5f\u80fd\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>JavaScript \u3092\u4f7f\u7528\u3057\u305f\u5b9f\u88c5: Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u306f\u3001\u30b5\u30fc\u30d0\u30fc\u3068\u306e\u975e\u540c\u671f\u901a\u4fe1\u3068 JavaScript \u3092\u4ecb\u3057\u305f\u30da\u30fc\u30b8\u66f4\u65b0\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u3001JavaScript \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3068 XMLHttpRequest \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306b\u5927\u304d\u304f\u4f9d\u5b58\u3057\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6a19\u6e96\u5316\u30d9\u30fc\u30b9\u306eWeb\u30c6\u30af\u30ce\u30ed\u30b8\u30fc:Ajax\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u306f\u3001XML\u3001HTML\u3001CSS\u3001JavaScript\u3001HTTP\u306a\u3069\u306e\u6a19\u6e96\u5316\u3055\u308c\u305fWeb\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u306b\u57fa\u3065\u3044\u3066\u304a\u308a\u3001\u512a\u308c\u305f\u30af\u30ed\u30b9\u30d7\u30e9\u30c3\u30c8\u30d5\u30a9\u30fc\u30e0\u3068\u79fb\u690d\u6027\u3092\u5099\u3048\u3066\u3044\u307e\u3059\u3002<\/li>\n\n\n\n<li>Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5bfe\u8a71\u6027\u3068\u4f7f\u3044\u3084\u3059\u3055\u306e\u5411\u4e0a: Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30e6\u30fc\u30b6\u30fc\u30fb\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u304c\u5411\u4e0a\u3057\u3001\u5fdc\u7b54\u901f\u5ea6\u304c\u901f\u304f\u306a\u308a\u3001Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u5bfe\u8a71\u6027\u3068\u5b9f\u7528\u6027\u304c\u5411\u4e0a\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u7d50\u8ad6\u3068\u3057\u3066\u3001Ajax\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u306f\u3001Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u3088\u308a\u9ad8\u3044\u30e6\u30fc\u30b6\u30fc\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3068\u3088\u308a\u826f\u3044\u30a4\u30f3\u30bf\u30e9\u30af\u30c6\u30a3\u30d6\u6027\u3092\u6301\u305f\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u308b\u975e\u5e38\u306b\u91cd\u8981\u306aWeb\u958b\u767a\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3067\u3042\u308a\u3001Web\u958b\u767a\u8005\u304c\u7fd2\u5f97\u3059\u308b\u5fc5\u8981\u306e\u3042\u308b\u30b9\u30ad\u30eb\u306e1\u3064\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Struts \u3068 Ajax \u306e\u7d71\u5408\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2 \u3067\u306f\u3001\u7d44\u307f\u8fbc\u307f\u306e Ajax \u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u304a\u3088\u3073\u95a2\u9023\u3059\u308b JavaScript \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u4f7f\u7528\u3057\u3066\u3001Ajax \u8981\u6c42\u3092\u51e6\u7406\u3057\u3066\u5fdc\u7b54\u3059\u308b\u305f\u3081\u306b\u3001Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3068\u7c21\u5358\u306b\u7d71\u5408\u3067\u304d\u307e\u3059\u3002 \u4ee5\u4e0b\u306f\u3001\u5358\u7d14\u306a Struts2 \u3068 Ajax \u306e\u7d71\u5408\u306e\u4f8b\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>JQuery \u3084 json2 \u306a\u3069\u306e\u95a2\u9023\u3059\u308b JavaScript \u30e9\u30a4\u30d6\u30e9\u30ea\u3092 Struts2 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u5c0e\u5165.js\u3002<\/li>\n\n\n\n<li>Struts2 \u306e\u7d44\u307f\u8fbc\u307f Ajax \u30bf\u30b0\u30fb\u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092 JSP \u30da\u30fc\u30b8 (&lt;s:url&gt;\u3001&lt;s:submit&gt;\u3001&lt;s:form&gt;\u3001&lt;s:div&gt; \u306a\u3069) \u3067\u4f7f\u7528\u3057\u3066\u3001Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3057\u3066\u5fdc\u7b54\u3057\u307e\u3059\u3002 \u4f8b\u3048\u3070\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">jspCopy code<code>&lt;s:url var=\"ajaxUrl\" action=\"ajaxAction\"\/&gt;\n&lt;s:form id=\"ajaxForm\"&gt;\n   &lt;s:textfield name=\"username\" label=\"\u7528\u6237\u540d\"\/&gt;\n   &lt;s:password name=\"password\" label=\"\u5bc6\u7801\"\/&gt;\n   &lt;s:submit value=\"\u767b\u5f55\" onclick=\"ajaxLogin()\"\/&gt;\n&lt;\/s:form&gt;\n&lt;s:div id=\"ajaxResult\"\/&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u306e URL \u30a2\u30c9\u30ec\u30b9\u306f &lt;s:url&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3001\u304a\u3088\u3073\u30ed\u30b0\u30a4\u30f3\u30dc\u30bf\u30f3\u3092\u542b\u3080\u30d5\u30a9\u30fc\u30e0\u306f &lt;s:form&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3001ajaxLogin() \u95a2\u6570\u306f onclick \u30a4\u30d9\u30f3\u30c8\u3092\u4f7f\u7528\u3057\u3066\u30c8\u30ea\u30ac\u30fc\u3055\u308c\u307e\u3057\u305f\u3002 &lt;s:div&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u3001Ajax \u5fdc\u7b54\u306e\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u9818\u57df\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>JavaScript \u30b3\u30fc\u30c9\u3067 ajaxLogin() \u95a2\u6570\u3092\u8a18\u8ff0\u3057\u3066\u3001Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u306b\u5bfe\u3059\u308b\u51e6\u7406\u3068\u5fdc\u7b54\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u4f8b\u3048\u3070\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">javascriptCopy code<code>function ajaxLogin() {\n   $.ajax({\n       type: \"POST\",\n       url: $(\"#ajaxUrl\").val(),\n       data: $(\"#ajaxForm\").serialize(),\n       success: function(response) {\n           $(\"#ajaxResult\").html(response);\n       },\n       error: function() {\n           alert(\"\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\uff01\");\n       }\n   });\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u51e6\u7406\u3068\u5fdc\u7b54\u306f\u3001jQuery \u30e9\u30a4\u30d6\u30e9\u30ea\u306e $.ajax() \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u5b9f\u88c5\u3055\u308c\u3066\u3044\u307e\u3059\u3002 type \u3092\u4f7f\u7528\u3057\u3066\u8981\u6c42\u306e\u7a2e\u985e\u3092\u6307\u5b9a\u3057\u3001url \u3092\u4f7f\u7528\u3057\u3066\u8981\u6c42\u306e URL \u30a2\u30c9\u30ec\u30b9\u3092\u6307\u5b9a\u3057\u3001data \u3092\u4f7f\u7528\u3057\u3066\u8981\u6c42\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3057\u3001\u6210\u529f\u3092\u4f7f\u7528\u3057\u3066\u5fdc\u7b54\u304c\u6210\u529f\u3057\u305f\u5f8c\u306b\u30cf\u30f3\u30c9\u30e9\u30fc\u3092\u6307\u5b9a\u3057\u3001error \u3092\u4f7f\u7528\u3057\u3066\u5fdc\u7b54\u304c\u5931\u6557\u3057\u305f\u5f8c\u306b\u30cf\u30f3\u30c9\u30e9\u30fc\u95a2\u6570\u3092\u6307\u5b9a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>Struts2 \u3067 Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306e Action \u30af\u30e9\u30b9\u3068\u30e1\u30bd\u30c3\u30c9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public class AjaxAction extends ActionSupport {\n   private String username;\n   private String password;\n\n   public String execute() {\n       \/\/ \u5904\u7406Ajax\u8bf7\u6c42\n       return SUCCESS;\n   }\n\n   \/\/ getter\u548csetter\u65b9\u6cd5\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001Action \u3068\u3044\u3046\u540d\u524d\u306e\u30af\u30e9\u30b9\u304c\u5b9a\u7fa9\u3055\u308c\u3001execute() \u30e1\u30bd\u30c3\u30c9\u304c\u5b9f\u88c5\u3055\u308c\u3066\u304a\u308a\u3001Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3057\u3066\u5fdc\u7b54\u7d50\u679c\u3092\u8fd4\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<code>AjaxAction<\/code><\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u3088\u308a\u3001Struts2 \u3092 Ajax \u3068\u7d71\u5408\u3057\u3066\u3001Ajax \u8981\u6c42\u3092\u51e6\u7406\u3057\u3066\u5fdc\u7b54\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u3067\u306f\u3001\u3088\u308a\u8907\u96d1\u306a\u6a5f\u80fd\u3068\u3088\u308a\u512a\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u30fb\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3092\u5b9f\u73fe\u3059\u308b\u305f\u3081\u306b\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3068 JavaScript \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u9078\u629e\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>Ajax\u306e\u4f8b\u3092\u5b9f\u88c5\u3059\u308b\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u306f\u3001Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3092\u4f7f\u7528\u3057\u3066\u30b5\u30fc\u30d0\u30fc\u30fb\u30b5\u30a4\u30c9\u30fb\u30c7\u30fc\u30bf\u306b\u5bfe\u3059\u308b\u975e\u540c\u671f\u8981\u6c42\u3068\u5fdc\u7b54\u3092\u5b9f\u88c5\u3059\u308b\u65b9\u6cd5\u3092\u793a\u3059\u7c21\u5358\u306a Ajax \u306e\u4f8b\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Java Web \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3001jQuery \u3084 json2.js \u306a\u3069\u306e\u95a2\u9023\u3059\u308b JavaScript \u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u5c0e\u5165\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>JSP \u30da\u30fc\u30b8\u3092\u4f5c\u6210\u3057\u3001Ajax \u8981\u6c42\u3092\u51e6\u7406\u3057\u3066\u5fdc\u7b54\u3059\u308b\u305f\u3081\u306e\u95a2\u9023\u3059\u308b HTML \u304a\u3088\u3073 JavaScript \u30b3\u30fc\u30c9\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002 \u4f8b\u3048\u3070\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">jspCopy code<code>&lt;html&gt;\n   &lt;head&gt;\n       &lt;title&gt;Ajax\u793a\u4f8b&lt;\/title&gt;\n       &lt;script type=\"text\/javascript\" src=\"jquery.min.js\"&gt;&lt;\/script&gt;\n       &lt;script type=\"text\/javascript\" src=\"json2.js\"&gt;&lt;\/script&gt;\n   &lt;\/head&gt;\n   &lt;body&gt;\n       &lt;h2&gt;Ajax\u793a\u4f8b&lt;\/h2&gt;\n       &lt;form id=\"ajaxForm\"&gt;\n           &lt;label for=\"username\"&gt;\u7528\u6237\u540d\uff1a&lt;\/label&gt;\n           &lt;input type=\"text\" id=\"username\" name=\"username\"\/&gt;\n           &lt;br\/&gt;\n           &lt;label for=\"password\"&gt;\u5bc6\u7801\uff1a&lt;\/label&gt;\n           &lt;input type=\"password\" id=\"password\" name=\"password\"\/&gt;\n           &lt;br\/&gt;\n           &lt;input type=\"button\" value=\"\u767b\u5f55\" onclick=\"ajaxLogin()\"\/&gt;\n       &lt;\/form&gt;\n       &lt;div id=\"ajaxResult\"&gt;&lt;\/div&gt;\n       &lt;script type=\"text\/javascript\"&gt;\n           function ajaxLogin() {\n               $.ajax({\n                   type: \"POST\",\n                   url: \"ajaxServlet\",\n                   data: {\n                       username: $(\"#username\").val(),\n                       password: $(\"#password\").val()\n                   },\n                   dataType: \"json\",\n                   success: function(response) {\n                       if (response.success) {\n                           $(\"#ajaxResult\").html(\"\u767b\u5f55\u6210\u529f\uff01\");\n                       } else {\n                           $(\"#ajaxResult\").html(\"\u767b\u5f55\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5\uff01\");\n                       }\n                   },\n                   error: function() {\n                       $(\"#ajaxResult\").html(\"\u8bf7\u6c42\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5\uff01\");\n                   }\n               });\n           }\n       &lt;\/script&gt;\n   &lt;\/body&gt;\n&lt;\/html&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3001\u30d1\u30b9\u30ef\u30fc\u30c9\u3001\u30ed\u30b0\u30a4\u30f3\u30dc\u30bf\u30f3\u3092\u542b\u3080\u30d5\u30a9\u30fc\u30e0\u306f &lt;form&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3001\u30d5\u30a9\u30fc\u30e0\u5185\u306e\u5165\u529b\u30dc\u30c3\u30af\u30b9\u3068\u30dc\u30bf\u30f3\u306f &lt;input&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u307e\u3059\u3002 &lt;div&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001Ajax \u5fdc\u7b54\u306e\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u9818\u57df\u304c\u5b9a\u7fa9\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>ajaxLogin() \u3068\u547c\u3070\u308c\u308b JavaScript \u95a2\u6570\u306f\u3001jQuery \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u306e $.ajax() \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066 Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3057\u3001\u5fdc\u7b54\u3059\u308b &lt;script&gt; \u30bf\u30b0\u3092\u4f7f\u7528\u3057\u3066\u5b9a\u7fa9\u3055\u308c\u307e\u3059\u3002 \u8981\u6c42\u306e\u7a2e\u985e\u3092\u6307\u5b9a\u3059\u308b\u306b\u306f type\u3001\u8981\u6c42\u306e URL \u30a2\u30c9\u30ec\u30b9\u3092\u6307\u5b9a\u3059\u308b\u306b\u306f url\u3001\u8981\u6c42\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u6307\u5b9a\u3059\u308b\u306b\u306f data\u3001\u5fdc\u7b54\u30c7\u30fc\u30bf\u306e\u7a2e\u985e\u3092\u6307\u5b9a\u3059\u308b\u306b\u306f dataType\u3001\u5fdc\u7b54\u304c\u6210\u529f\u3057\u305f\u5f8c\u306b\u30cf\u30f3\u30c9\u30e9\u30fc\u95a2\u6570\u3092\u6307\u5b9a\u3059\u308b\u306b\u306f\u6210\u529f\u3001\u5fdc\u7b54\u304c\u5931\u6557\u3057\u305f\u5f8c\u306b\u30cf\u30f3\u30c9\u30e9\u30fc\u95a2\u6570\u3092\u6307\u5b9a\u3059\u308b\u306b\u306f error \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>Java \u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u3092\u4f5c\u6210\u3057\u3001Ajax \u8981\u6c42\u3092\u51e6\u7406\u3057\u3066\u5fdc\u7b54\u3059\u308b Java \u30b3\u30fc\u30c9\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002 \u4f8b\u3048\u3070\uff1a<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>import java.io.IOException;\nimport java.io.PrintWriter;\n\nimport javax.servlet.ServletException;\nimport javax.servlet.http.HttpServlet;\nimport javax.servlet.http.HttpServletRequest;\nimport javax.servlet.http.HttpServletResponse;\n\nimport net.sf.json.JSONObject;\n\npublic class AjaxServlet extends HttpServlet {\n   private static final long serialVersionUID = 1L;\n\n   protected void doPost(HttpServletRequest request, HttpServletResponse response) \n           throws ServletException, IOException {\n       String username = request.getParameter(\"username\");\n       String password = request.getParameter(\"password\");\n\n       JSONObject json = new JSONObject();\n       if (\"admin\".equals(username) &amp;&amp; \"admin123\".equals(password)) {\n           json.put(\"success\", true);\n       } else {\n           json.put(\"success\", false);\n       }\n\n       response.setContentType(\"application\/json;charset=utf-8\");\n       PrintWriter out = response.getWriter();\n       out.print(json);\n       out.flush();\n       out\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u4f8b\u3067\u306f\u3001AjaxServlet \u3068\u3044\u3046\u540d\u524d\u306e Java \u30b5\u30fc\u30d6\u30ec\u30c3\u30c8\u30fb\u30af\u30e9\u30b9\u304c\u4f5c\u6210\u3055\u308c\u3001doPost() \u30e1\u30bd\u30c3\u30c9\u304c\u5b9f\u88c5\u3055\u308c\u3066\u304a\u308a\u3001\u305d\u3053\u3067\u306f Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u3092\u51e6\u7406\u3057\u3066\u5fdc\u7b54\u7d50\u679c\u3092\u8fd4\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u30e1\u30bd\u30c3\u30c9\u3067\u306f\u3001request.getParameter() \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001Ajax \u30ea\u30af\u30a8\u30b9\u30c8\u306e\u30d1\u30e9\u30e1\u30fc\u30bf\u5024\u3001\u3064\u307e\u308a\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002 net.sf.json.JSONObject \u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066 JSON \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u6210\u3057\u3001\u30e6\u30fc\u30b6\u30fc\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u306e\u691c\u8a3c\u7d50\u679c\u306b\u5f93\u3063\u3066\u3001\u5bfe\u5fdc\u3059\u308b\u30d7\u30ed\u30d1\u30c6\u30a3\u5024\u3001\u3064\u307e\u308a\u6210\u529f\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002 response.setContentType() \u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001application\/json \u306b\u5bfe\u3059\u308b\u30ec\u30b9\u30dd\u30f3\u30b9\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u30bf\u30a4\u30d7\u30bf\u30a4\u30d7\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002 charset=utf-8 \u306f\u3001PrintWriter \u30af\u30e9\u30b9\u3092\u4f7f\u7528\u3057\u3066\u3001JSON \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u6587\u5b57\u5217\u5f62\u5f0f\u3092\u5fdc\u7b54\u306b\u51fa\u529b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u3088\u308a\u3001Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3092\u4f7f\u7528\u3057\u3066\u30b5\u30fc\u30d0\u30fc\u30fb\u30b5\u30a4\u30c9\u30fb\u30c7\u30fc\u30bf\u306b\u5bfe\u3059\u308b\u975e\u540c\u671f\u8981\u6c42\u304a\u3088\u3073\u5fdc\u7b54\u3092\u5b9f\u88c5\u3059\u308b\u65b9\u6cd5\u3092\u793a\u3059\u3001\u5358\u7d14\u306a Ajax \u306e\u4f8b\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u3067\u306f\u3001\u7279\u5b9a\u306e\u30cb\u30fc\u30ba\u306b\u5fdc\u3058\u3066\u9069\u5207\u306a Ajax \u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3068 JavaScript \u30e9\u30a4\u30d6\u30e9\u30ea\u30fc\u3092\u9078\u629e\u3057\u3066\u3001\u3088\u308a\u8907\u96d1\u306a\u6a5f\u80fd\u3068\u3088\u308a\u512a\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u30fb\u30a8\u30af\u30b9\u30da\u30ea\u30a8\u30f3\u30b9\u3092\u5b9f\u73fe\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u5b9f\u7528\u7684\u306a\u30b1\u30fc\u30b9\u3092\u5b9f\u88c5\u3059\u308b\u65b9\u6cd5\u3092\u8a73\u7d30\u306b\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044:\u5358\u7d14\u306aCRUD\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3001\u6700\u521d\u306b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8981\u4ef6\u5206\u6790\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u5358\u7d14\u306aCRUD\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u30c7\u30fc\u30bf\u306e\u8ffd\u52a0\u3001\u524a\u9664\u3001\u5909\u66f4\u3001\u30c1\u30a7\u30c3\u30af\u306a\u3069\u306e\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u3092\u5b9f\u73fe\u3067\u304d\u308b\u57fa\u672c\u7684\u306a\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u7ba1\u7406\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3059\u3002 \u4ee5\u4e0b\u306f\u3001Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u57fa\u3065\u304f\u5358\u7d14\u306a CRUD \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8981\u4ef6\u5206\u6790\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u8981\u4ef6\u306e\u6982\u8981<\/li>\n<\/ol>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u30c7\u30fc\u30bf\u3092\u8ffd\u52a0\u3001\u524a\u9664\u3001\u5909\u66f4\u3001\u304a\u3088\u3073\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u3001\u7279\u5b9a\u306e\u8981\u4ef6\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e6\u30fc\u30b6\u30fc\u306f\u3059\u3079\u3066\u306e\u30c7\u30fc\u30bf\u3092\u53c2\u7167\u3057\u3001\u30da\u30fc\u30b8\u306b\u8868\u793a\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u9001\u4fe1\u6642\u306b\u30c7\u30fc\u30bf\u3092\u8ffd\u52a0\u3057\u3001\u30c7\u30fc\u30bf\u3092\u691c\u8a3c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u306f\u3001\u30d5\u30a9\u30fc\u30e0\u306e\u9001\u4fe1\u6642\u306b\u30c7\u30fc\u30bf\u3092\u7de8\u96c6\u3057\u3001\u30c7\u30fc\u30bf\u3092\u691c\u8a3c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30e6\u30fc\u30b6\u30fc\u306f\u30c7\u30fc\u30bf\u306e\u4e00\u90e8\u3092\u524a\u9664\u3057\u30662\u56de\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u8a2d\u8a08<\/li>\n<\/ol>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u6700\u521d\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30c6\u30fc\u30d6\u30eb\u69cb\u9020\u3092\u8a2d\u8a08\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u3001\u6b21\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u6301\u3064\u5b66\u751f\u60c5\u5831\u30c6\u30fc\u30d6\u30eb\u3092\u7ba1\u7406\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3068\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ID:\u5b66\u751f\u756a\u53f7\u3001\u4e3b\u30ad\u30fc\u3002<\/li>\n\n\n\n<li>\u540d\u524d:\u5b66\u751f\u306e\u540d\u524d\u3001\u5fc5\u9808\u3001\u9577\u3055\u306f50\u6587\u5b57\u4ee5\u5185\u3002<\/li>\n\n\n\n<li>\u6027\u5225:\u5b66\u751f\u306e\u6027\u5225\u3001\u5fc5\u9808\u3001\u5024\u306e\u7bc4\u56f2\u306f\u300c\u7537\u6027\u300d\u307e\u305f\u306f\u300c\u5973\u6027\u300d\u3067\u3059\u3002<\/li>\n\n\n\n<li>\u5e74\u9f62:\u5b66\u751f\u306e\u5e74\u9f62\u3001\u5fc5\u9808\u3001\u5024\u306e\u7bc4\u56f2\u306f1~150\u306e\u6574\u6570\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u6b21\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u542b\u3080 &#8220;student&#8221; \u3068\u3044\u3046\u540d\u524d\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30c6\u30fc\u30d6\u30eb\u3092\u30c7\u30b6\u30a4\u30f3\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sqlCopy code<code>CREATE TABLE `student` (\n   `id` int(11) NOT NULL AUTO_INCREMENT,\n   `name` varchar(50) NOT NULL,\n   `gender` varchar(10) NOT NULL,\n   `age` int(11) NOT NULL,\n   PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u30c7\u30b6\u30a4\u30f3<\/li>\n<\/ol>\n\n\n\n<p>\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3001\u5b66\u751f\u60c5\u5831\u306e\u8ffd\u52a0\u3001\u524a\u9664\u3001\u4fee\u6b63\u3001\u78ba\u8a8d\u306a\u3069\u306e\u64cd\u4f5c\u3092\u5b9f\u73fe\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u5bfe\u5fdc\u3059\u308b\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u8a2d\u8a08\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30db\u30fc\u30e0:\u3053\u306e\u30da\u30fc\u30b8\u306f\u3001\u3059\u3079\u3066\u306e\u5b66\u751f\u60c5\u5831\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u30da\u30fc\u30b8\u30cd\u30fc\u30b7\u30e7\u30f3\u6a5f\u80fd\u3068\u4ed6\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u30da\u30fc\u30b8\u3078\u306e\u30ea\u30f3\u30af\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u3092\u8ffd\u52a0:\u3053\u306e\u30da\u30fc\u30b8\u306f\u3001\u540d\u524d\u3001\u6027\u5225\u3001\u5e74\u9f62\u306a\u3069\u306e\u5165\u529b\u30dc\u30c3\u30af\u30b9\u3084\u9001\u4fe1\u30dc\u30bf\u30f3\u306a\u3069\u3001\u65b0\u3057\u3044\u5b66\u751f\u60c5\u5831\u3092\u8ffd\u52a0\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u306e\u7de8\u96c6:\u3053\u306e\u30da\u30fc\u30b8\u306f\u3001\u540d\u524d\u3001\u6027\u5225\u3001\u5e74\u9f62\u306a\u3069\u306e\u5165\u529b\u30dc\u30c3\u30af\u30b9\u3084\u9001\u4fe1\u30dc\u30bf\u30f3\u3092\u542b\u3080\u65e2\u5b58\u306e\u5b66\u751f\u60c5\u5831\u3092\u7de8\u96c6\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u306e\u524a\u9664 : \u3053\u306e\u30da\u30fc\u30b8\u3067\u306f\u3001\u78ba\u8a8d\u30dc\u30bf\u30f3\u3084\u30ad\u30e3\u30f3\u30bb\u30eb\u30dc\u30bf\u30f3\u306a\u3069\u3001\u65e2\u5b58\u306e\u5b66\u751f\u60c5\u5831\u3092\u524a\u9664\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u6a5f\u80fd\u8981\u4ef6<\/li>\n<\/ol>\n\n\n\n<p>\u4e0a\u8a18\u306e\u8981\u4ef6\u306e\u6982\u8981\u3068\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u8a2d\u8a08\u306b\u57fa\u3065\u3044\u3066\u3001\u6b21\u306e\u3088\u3046\u306b\u7279\u5b9a\u306e\u6a5f\u80fd\u8981\u4ef6\u3092\u4e00\u89a7\u8868\u793a\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5bb6\uff1a\n<ul class=\"wp-block-list\">\n<li>\u3059\u3079\u3066\u306e\u5b66\u751f\u60c5\u5831\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u30cd\u30fc\u30b7\u30e7\u30f3\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u8ffd\u52a0\u3055\u308c\u305f\u30da\u30fc\u30b8\u306b\u30ea\u30f3\u30af\u3059\u308b\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u7de8\u96c6\u30da\u30fc\u30b8\u306b\u30ea\u30f3\u30af\u3059\u308b\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u524a\u9664\u3055\u308c\u305f\u30da\u30fc\u30b8\u306b\u30ea\u30f3\u30af\u3059\u308b\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u3092\u8ffd\u52a0\u3059\u308b\u306b\u306f:\n<ul class=\"wp-block-list\">\n<li>\u5b66\u751f\u306e\u540d\u524d\u3092\u5165\u529b\u3059\u308b\u305f\u3081\u306e\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5b66\u751f\u306e\u6027\u5225\u3092\u9078\u629e\u3059\u308b\u305f\u3081\u306e\u30c9\u30ed\u30c3\u30d7\u30c0\u30a6\u30f3\u30dc\u30c3\u30af\u30b9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5b66\u751f\u306e\u5e74\u9f62\u3092\u5165\u529b\u3059\u308b\u305f\u3081\u306e\u5165\u529b\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5165\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\u304c\u8981\u4ef6\u3092\u6e80\u305f\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u65b0\u3057\u3044\u5b66\u751f\u60c5\u5831\u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u8ffd\u52a0\u3059\u308b\u30d5\u30a9\u30fc\u30e0\u3092\u9001\u4fe1\u3059\u308b\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u3092\u7de8\u96c6\u3059\u308b\u306b\u306f:\n<ul class=\"wp-block-list\">\n<li>\u6307\u5b9a\u3055\u308c\u305f\u5b66\u751f\u756a\u53f7\u306b\u57fa\u3065\u3044\u3066\u5b66\u751f\u3092\u53d6\u5f97\u3057\u307e\u3059<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>\u6c0f\u540d\u3001\u6027\u5225\u3001\u5e74\u9f62\u7b49\u3092\u542b\u3080\u8a73\u7d30<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5165\u529b\u30dc\u30c3\u30af\u30b9\u306b\u5b66\u751f\u306e\u8a73\u7d30\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5165\u529b\u3055\u308c\u305f\u30c7\u30fc\u30bf\u304c\u8981\u4ef6\u3092\u6e80\u305f\u3057\u3066\u3044\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u30d5\u30a9\u30fc\u30e0\u691c\u8a3c\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5909\u66f4\u3055\u308c\u305f\u5b66\u751f\u60c5\u5831\u3092\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u66f4\u65b0\u3059\u308b\u305f\u3081\u306e\u30d5\u30a9\u30fc\u30e0\u3092\u9001\u4fe1\u3059\u308b\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u3092\u524a\u9664\u3059\u308b\u306b\u306f:\n<ul class=\"wp-block-list\">\n<li>\u5272\u308a\u5f53\u3066\u3089\u308c\u305f\u5b66\u751f\u756a\u53f7\u306b\u5fdc\u3058\u3066\u3001\u540d\u524d\u3001\u6027\u5225\u3001\u5e74\u9f62\u306a\u3069\u3092\u542b\u3080\u5b66\u751f\u306e\u8a73\u7d30\u3092\u53d6\u5f97\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u306b\u5b66\u751f\u306e\u8a73\u7d30\u3092\u8868\u793a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5b66\u751f\u306e\u60c5\u5831\u3092\u524a\u9664\u3059\u308b\u304b\u3069\u3046\u304b\u3092\u78ba\u8a8d\u3059\u308b\u305f\u3081\u306e\u4e8c\u6b21\u78ba\u8a8d\u6a5f\u80fd\u3092\u63d0\u4f9b\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u524a\u9664\u304c\u78ba\u8a8d\u3055\u308c\u308b\u3068\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u304b\u3089\u5b66\u751f\u60c5\u5831\u304c\u524a\u9664\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u6280\u8853\u7684\u306a\u5b9f\u88c5<\/li>\n<\/ol>\n\n\n\n<p>\u3053\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f\u3001Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u57fa\u3065\u3044\u3066\u5b9f\u88c5\u3055\u308c\u3001\u6b21\u306e\u30c6\u30af\u30ce\u30ed\u30b8\u304c\u5fc5\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Struts2\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af:MVC\u30d1\u30bf\u30fc\u30f3\u3092\u5b9f\u88c5\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u3001\u8981\u6c42\u3068\u5fdc\u7b54\u3092\u51e6\u7406\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>JSP\u30da\u30fc\u30b8:\u30c7\u30fc\u30bf\u3092\u8868\u793a\u3057\u3001\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8:\u8981\u6c42\u306e\u53d7\u4fe1\u3068\u51e6\u7406\u3001\u304a\u3088\u3073\u30b5\u30fc\u30d3\u30b9\u5c64\u30e1\u30bd\u30c3\u30c9\u306e\u547c\u3073\u51fa\u3057\u306b\u4f7f\u7528\u3055\u308c\u3001\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b5\u30fc\u30d3\u30b9\u5c64:\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3078\u306e\u30a2\u30af\u30bb\u30b9\u3001\u30c7\u30fc\u30bf\u691c\u8a3c\u306a\u3069\u3092\u542b\u3080\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u88c5\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9: \u5b66\u751f\u60c5\u5831\u3092\u4fdd\u5b58\u304a\u3088\u3073\u7ba1\u7406\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u8981\u4ef6\u5206\u6790\u3092\u901a\u3058\u3066\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u6a5f\u80fd\u3068\u5b9f\u88c5\u65b9\u6cd5\u3092\u660e\u78ba\u306b\u7406\u89e3\u3057\u3001\u305d\u306e\u5f8c\u306e\u958b\u767a\u4f5c\u696d\u306e\u30ac\u30a4\u30c0\u30f3\u30b9\u3068\u652f\u63f4\u3092\u63d0\u4f9b\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u5b9f\u88c5\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u8a2d\u8a08\u30fb\u69cb\u7bc9\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u306b\u57fa\u3065\u304fCRUD\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b66\u751f\u60c5\u5831\u306e\u8ffd\u52a0\u3001\u524a\u9664\u3001\u4fee\u6b63\u3001\u7167\u4f1a\u306a\u3069\u306e\u64cd\u4f5c\u3092\u5b9f\u88c5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u305f\u3081\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30c6\u30fc\u30d6\u30eb\u69cb\u9020\u3092\u8a2d\u8a08\u3057\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u5bfe\u5fdc\u3059\u308b\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u57fa\u3065\u3044\u3066\u5b66\u751f\u60c5\u5831\u30c6\u30fc\u30d6\u30eb\u3092\u8a2d\u8a08\u304a\u3088\u3073\u4f5c\u6210\u3059\u308b\u624b\u9806\u306f\u6b21\u306e\u3068\u304a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30c7\u30fc\u30bf \u30c6\u30fc\u30d6\u30eb\u69cb\u9020\u3092\u8a2d\u8a08\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u5b66\u751f\u60c5\u5831\u30d5\u30a9\u30fc\u30e0\u306b\u306f\u3001\u6b21\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ID:\u5b66\u751f\u756a\u53f7\u3001\u4e3b\u30ad\u30fc\u3002<\/li>\n\n\n\n<li>\u540d\u524d:\u5b66\u751f\u306e\u540d\u524d\u3001\u5fc5\u9808\u3001\u9577\u3055\u306f50\u6587\u5b57\u4ee5\u5185\u3002<\/li>\n\n\n\n<li>\u6027\u5225:\u5b66\u751f\u306e\u6027\u5225\u3001\u5fc5\u9808\u3001\u5024\u306e\u7bc4\u56f2\u306f\u300c\u7537\u6027\u300d\u307e\u305f\u306f\u300c\u5973\u6027\u300d\u3067\u3059\u3002<\/li>\n\n\n\n<li>\u5e74\u9f62:\u5b66\u751f\u306e\u5e74\u9f62\u3001\u5fc5\u9808\u3001\u5024\u306e\u7bc4\u56f2\u306f1~150\u306e\u6574\u6570\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u3057\u305f\u304c\u3063\u3066\u3001\u6b21\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u542b\u3080 &#8220;student&#8221; \u3068\u3044\u3046\u540d\u524d\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30c6\u30fc\u30d6\u30eb\u3092\u30c7\u30b6\u30a4\u30f3\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sqlCopy code<code>CREATE TABLE `student` (\n   `id` int(11) NOT NULL AUTO_INCREMENT,\n   `name` varchar(50) NOT NULL,\n   `gender` varchar(10) NOT NULL,\n   `age` int(11) NOT NULL,\n   PRIMARY KEY (`id`)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n<\/code><\/pre>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>MySQL \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3067\u306f\u3001\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066 &#8220;student&#8221; \u3068\u3044\u3046\u540d\u524d\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sqlCopy code<code>CREATE TABLE student (\n  id INT(11) NOT NULL AUTO_INCREMENT,\n  name VARCHAR(50) NOT NULL,\n  gender VARCHAR(10) NOT NULL,\n  age INT(11) NOT NULL,\n  PRIMARY KEY (id)\n) ENGINE=InnoDB DEFAULT CHARSET=utf8;\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u30b3\u30de\u30f3\u30c9\u306f\u3001id\u3001\u540d\u524d\u3001\u6027\u5225\u3001\u5e74\u9f62\u3001\u4e3b\u30ad\u30fc\u3068\u3057\u3066\u306e ID\u3001INT(11) \u306e\u30c7\u30fc\u30bf\u578b\u3001VARCHAR(50) \u304a\u3088\u3073 VARCHAR(10) \u306e \u540d\u524d\u3068\u6027\u5225\u306e\u30c7\u30fc\u30bf\u578b\u3001\u304a\u3088\u3073 INT(11) \u3068\u3057\u3066\u306e\u5e74\u9f62\u30c7\u30fc\u30bf\u578b\u306e &lt;&gt; \u3064\u306e\u30d5\u30a3\u30fc\u30eb\u30c9\u3092\u542b\u3080 &#8220;student&#8221; \u3068\u3044\u3046\u540d\u524d\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0a\u306e\u624b\u9806\u306b\u3088\u308a\u3001MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u300cstudent\u300d\u3068\u3044\u3046\u540d\u524d\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u3001\u30b9\u30c1\u30e5\u30fc\u30c7\u30f3\u30c8\u306e\u57fa\u672c\u60c5\u5831\u3092\u683c\u7d0d\u3057\u3001\u305d\u306e\u5f8c\u306e\u958b\u767a\u4f5c\u696d\u306e\u305f\u3081\u306e\u57fa\u672c\u7684\u306a\u30c7\u30fc\u30bf\u30b5\u30dd\u30fc\u30c8\u3092\u63d0\u4f9b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30b5\u30f3\u30d7\u30eb \u30c7\u30fc\u30bf\u306e\u633f\u5165<\/li>\n<\/ol>\n\n\n\n<p>CRUD \u64cd\u4f5c\u306e\u524d\u306b\u3001\u5b66\u751f\u60c5\u5831\u30c6\u30fc\u30d6\u30eb\u306b\u30b5\u30f3\u30d7\u30eb \u30c7\u30fc\u30bf\u3092\u633f\u5165\u3057\u3066\u3001\u5f8c\u7d9a\u306e\u30c6\u30b9\u30c8\u3068\u30c7\u30d0\u30c3\u30b0\u3092\u5bb9\u6613\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u30013 \u3064\u306e\u30b5\u30f3\u30d7\u30eb \u30c7\u30fc\u30bf\u3092\u5b66\u751f\u60c5\u5831\u30c6\u30fc\u30d6\u30eb\u306b\u633f\u5165\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">sqlCopy code<code>INSERT INTO student (name, gender, age) VALUES ('Tom', '\u7537', 20);\nINSERT INTO student (name, gender, age) VALUES ('Lucy', '\u5973', 22);\nINSERT INTO student (name, gender, age) VALUES ('Jack', '\u7537', 21);\n<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u30b3\u30de\u30f3\u30c9\u306f\u3001\u5b66\u751f\u60c5\u5831\u30c6\u30fc\u30d6\u30eb\u306b 3 \u3064\u306e\u30c7\u30fc\u30bf (\u540d\u524d\u3001\u6027\u5225\u3001\u5e74\u9f62\u306a\u3069) \u306e Tom\u3001Lucy \u3068 Jack \u306e\u57fa\u672c\u60c5\u5831\u3092\u633f\u5165\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001MySQL \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b &#8220;student&#8221; \u3068\u3044\u3046\u540d\u524d\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30c6\u30fc\u30d6\u30eb\u3092\u4f5c\u6210\u3057\u3001\u305d\u3053\u306b\u30b5\u30f3\u30d7\u30eb\u30c7\u30fc\u30bf\u3092\u633f\u5165\u3057\u3066\u3001\u5f8c\u7d9a\u306e\u958b\u767a\u4f5c\u696d\u306b\u57fa\u672c\u7684\u306a\u30c7\u30fc\u30bf\u30b5\u30dd\u30fc\u30c8\u3092\u63d0\u4f9b\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u69cb\u6210<\/li>\n<\/ol>\n\n\n\n<p>Java \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067 MySQL \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u306b\u306f\u3001JDBC (Java Database Connectivity) \u30c9\u30e9\u30a4\u30d0\u30fc\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 MySQL JDBC \u30c9\u30e9\u30a4\u30d0\u30fc\u306e\u4f9d\u5b58\u95a2\u4fc2\u3092\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u8ffd\u52a0\u3057\u3001\u6b21\u3092\u4f7f\u7528\u3057\u3066\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u60c5\u5831\u3092\u69cb\u6210\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;property name=\"hibernate.connection.driver_class\"&gt;com.mysql.jdbc.Driver&lt;\/property&gt;\n&lt;property name=\"hibernate.connection.url\"&gt;jdbc:mysql:\/\/localhost:3306\/mydb&lt;\/property&gt;\n&lt;property name=\"hibernate.connection.username\"&gt;root&lt;\/property&gt;\n&lt;property name=\"hibernate.connection.password\"&gt;123456&lt;\/property&gt;\n<\/code><\/pre>\n\n\n\n<p>\u305d\u306e\u4e2d\u3067\u3001com.mysql.jdbc.Driver \u306f MySQL JDBC \u30c9\u30e9\u30a4\u30d0\u30fc\u306e\u30af\u30e9\u30b9\u540d\u3001localhost:3306\/mydb \u306f MySQL \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30a2\u30c9\u30ec\u30b9\u3068\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u540d\u3001root \u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30e6\u30fc\u30b6\u30fc\u540d\u3001123456 \u306f\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u30d1\u30b9\u30ef\u30fc\u30c9\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001Java\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067MySQL\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u3001\u63a5\u7d9a\u60c5\u5831\u304c\u69cb\u6210\u3055\u308c\u3001\u5f8c\u7d9a\u306e\u958b\u767a\u4f5c\u696d\u306e\u305f\u3081\u306e\u30c7\u30fc\u30bf\u30a2\u30af\u30bb\u30b9\u30b5\u30dd\u30fc\u30c8\u304c\u63d0\u4f9b\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30a2\u30af\u30b7\u30e7\u30f3\u30d5\u30a9\u30fc\u30e0\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u3001JSP\u30da\u30fc\u30b8\u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001ActionForm\u3001Action\u3001\u304a\u3088\u3073 JSP \u30da\u30fc\u30b8\u306f\u3001\u8981\u6c42\u3068\u5fdc\u7b54\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306e MVC \u30d1\u30bf\u30fc\u30f3\u3092\u5b9f\u88c5\u3059\u308b &lt;&gt; \u3064\u306e\u30b3\u30a2\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3067\u3059\u3002 \u3053\u308c\u3089 &lt;&gt; \u3064\u306e\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u306e\u305d\u308c\u305e\u308c\u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066\u306f\u3001\u4ee5\u4e0b\u3067\u8a73\u3057\u304f\u8aac\u660e\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30a2\u30af\u30b7\u30e7\u30f3\u30d5\u30a9\u30fc\u30e0\u306e\u5b9f\u88c5<\/li>\n<\/ol>\n\n\n\n<p>ActionForm \u306f\u3001\u30e6\u30fc\u30b6\u30fc\u304c\u9001\u4fe1\u3057\u305f\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u3001\u30d5\u30a9\u30fc\u30e0\u30c7\u30fc\u30bf\u3092\u691c\u8a3c\u304a\u3088\u3073\u51e6\u7406\u3059\u308b\u305f\u3081\u306e\u3055\u307e\u3056\u307e\u306a\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u3067\u30ab\u30d7\u30bb\u30eb\u5316\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001ActionForm \u306f\u6b21\u306e\u65b9\u6cd5\u3067\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public class StudentForm extends ActionForm {\n\n    private int id;\n    private String name;\n    private String gender;\n    private int age;\n\n    \/\/ getter\u548csetter\u65b9\u6cd5\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001StudentForm \u306f ActionForm \u30af\u30e9\u30b9\u3092\u7d99\u627f\u3057\u3001\u5b66\u751f\u306e\u57fa\u672c\u60c5\u5831\u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u308b ID\u3001\u540d\u524d\u3001\u6027\u5225\u3001\u5e74\u9f62\u306e 4 \u3064\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u3067\u306f\u3001\u30d3\u30b8\u30cd\u30b9 \u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30d7\u30ed\u30d1\u30c6\u30a3\u3068\u30e1\u30bd\u30c3\u30c9\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u5b9f\u65bd<\/li>\n<\/ol>\n\n\n\n<p>\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u3001\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u3092\u5b9f\u884c\u3059\u308b\u30e1\u30bd\u30c3\u30c9\u3068\u3001\u8981\u6c42\u30d1\u30e9\u30e1\u30fc\u30bf\u30fc\u3092\u51e6\u7406\u3057\u3066\u8981\u6c42\u3092\u8ee2\u9001\u3059\u308b\u305d\u306e\u4ed6\u306e\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3057\u3066\u3001\u8981\u6c42\u3092\u53d7\u4fe1\u3057\u3066\u51e6\u7406\u3057\u3001\u51e6\u7406\u7d50\u679c\u3092\u30e6\u30fc\u30b6\u30fc\u306b\u8fd4\u3059\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30a2\u30af\u30b7\u30e7\u30f3\u306f\u6b21\u306e\u65b9\u6cd5\u3067\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public class StudentAction extends ActionSupport implements ModelDriven&lt;StudentForm&gt; {\n\n    private StudentForm form = new StudentForm();\n    private List&lt;Student&gt; students = new ArrayList&lt;Student&gt;();\n\n    @Override\n    public StudentForm getModel() {\n        return form;\n    }\n\n    public String list() {\n        \/\/ \u83b7\u53d6\u6240\u6709\u5b66\u751f\u4fe1\u606f\n        students = studentService.getAllStudents();\n        return SUCCESS;\n    }\n\n    public String add() {\n        \/\/ \u6dfb\u52a0\u5b66\u751f\u4fe1\u606f\n        studentService.addStudent(form);\n        return SUCCESS;\n    }\n\n    public String edit() {\n        \/\/ \u7f16\u8f91\u5b66\u751f\u4fe1\u606f\n        studentService.editStudent(form);\n        return SUCCESS;\n    }\n\n    public String delete() {\n        \/\/ \u5220\u9664\u5b66\u751f\u4fe1\u606f\n        studentService.deleteStudent(form.getId());\n        return SUCCESS;\n    }\n\n    \/\/ getter\u548csetter\u65b9\u6cd5\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001StudentAction \u306f ActionSupport \u30af\u30e9\u30b9\u3092\u7d99\u627f\u3057\u3001\u30d5\u30a9\u30fc\u30e0 \u30c7\u30fc\u30bf\u306e\u30ab\u30d7\u30bb\u30eb\u5316\u3068\u51e6\u7406\u306e\u305f\u3081\u306e ModelDriven \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3057\u3066\u3044\u307e\u3059\u3002 \u3053\u306e\u30af\u30e9\u30b9\u306b\u306f\u3001\u3059\u3079\u3066\u306e\u5b66\u751f\u60c5\u5831\u306e\u53d6\u5f97\u3001\u5b66\u751f\u60c5\u5831\u306e\u8ffd\u52a0\u3001\u5b66\u751f\u60c5\u5831\u306e\u7de8\u96c6\u3001\u304a\u3088\u3073\u5b66\u751f\u60c5\u5831\u306e\u524a\u9664\u306b\u4f7f\u7528\u3055\u308c\u308b\u3001\u4e00\u89a7\u8868\u793a\u3001\u8ffd\u52a0\u3001\u7de8\u96c6\u3001\u304a\u3088\u3073\u524a\u9664\u306e 4 \u3064\u306e\u30e1\u30bd\u30c3\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u3067\u306f\u3001\u30d3\u30b8\u30cd\u30b9 \u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30e1\u30bd\u30c3\u30c9\u3068\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>JSP\u30da\u30fc\u30b8\u306e\u5b9f\u88c5<\/li>\n<\/ol>\n\n\n\n<p>JSP\u30da\u30fc\u30b8\u306f\u3001\u30c7\u30fc\u30bf\u3092\u8868\u793a\u3057\u3001\u901a\u5e38\u3001\u30d5\u30a9\u30fc\u30e0\u3001\u30ea\u30f3\u30af\u3001\u30dc\u30bf\u30f3\u306a\u3069\u306e\u8981\u7d20\u3092\u542b\u3080\u30e6\u30fc\u30b6\u30fc\u5165\u529b\u3092\u51e6\u7406\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001JSP \u30da\u30fc\u30b8\u306f\u4ee5\u4e0b\u306e\u65b9\u6cd5\u3067\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">htmlCopy code<code>&lt;%@ taglib uri=\"\/struts-tags\" prefix=\"s\" %&gt;\n\n&lt;html&gt;\n&lt;head&gt;\n  &lt;title&gt;\u5b66\u751f\u4fe1\u606f\u7ba1\u7406\u7cfb\u7edf&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n\n  &lt;h1&gt;\u5b66\u751f\u4fe1\u606f\u7ba1\u7406\u7cfb\u7edf&lt;\/h1&gt;\n\n  &lt;s:form action=\"list\"&gt;\n    &lt;s:submit value=\"\u67e5\u8be2\u5b66\u751f\u4fe1\u606f\" \/&gt;\n  &lt;\/s:form&gt;\n\n  &lt;s:form action=\"add\"&gt;\n    &lt;s:textfield name=\"name\" label=\"\u59d3\u540d\" \/&gt;\n    &lt;s:radio name=\"gender\" label=\"\u6027\u522b\" list\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u7d9a\u3051\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">phpCopy code<code>&lt;s:submit value=\"\u6dfb\u52a0\u5b66\u751f\u4fe1\u606f\" \/&gt;\n<\/code><\/pre>\n\n\n\n<p>&lt;\/s:\u30d5\u30a9\u30fc\u30e0&gt;<\/p>\n\n\n\n<p>&lt;s:form action=&#8221;edit&#8221;&gt; &lt;s:hidden name=&#8221;id&#8221; \/&gt; &lt;s:textfield name=&#8221;name&#8221; label=&#8221;\u59d3\u540d&#8221; \/&gt; &lt;s:radio name=&#8221;gender&#8221; label=&#8221;\u6027\u522b&#8221; list=&#8221;#{&#8216;\u7537&#8217;:&#8217;\u7537&#8217;,&#8217;\u5973&#8217;:&#8217;\u5973&#8217;}&#8221; \/&gt; &lt;s:textfield name=&#8221;age&#8221; label=&#8221;\u5e74\u9f84&#8221; \/&gt; &lt;s:submit value=&#8221;\u4fee\u6539\u5b66\u751f\u4fe1\u606f&#8221; \/&gt; &lt;\/s:form&gt;<\/p>\n\n\n\n<p>&lt;s:form action=&#8221;delete&#8221;&gt; &lt;s:hidden name=&#8221;id&#8221; \/&gt; &lt;s:submit value=&#8221;\u5220\u9664\u5b66\u751f\u4fe1\u606f&#8221; \/&gt; &lt;\/s:form&gt; &lt;table border=&#8221;1&#8243;&gt; &lt;tr&gt; &lt;th&gt;\u7f16\u53f7&lt;\/th&gt; &lt;th&gt;\u59d3\u540d&lt;th&gt; &lt;th&gt;\u6027\u522b&lt;\/th&gt; &lt;th&gt;\u5e74\u9f84&lt;\/th&gt; &lt;th&gt;\u64cd\u4f5c&lt;\/th&gt; &lt;\/tr&gt; &lt;s:iterator value=&#8221;students&#8221;&gt; &lt;tr&gt; &lt;td&gt;&lt;s:property value=&#8221;id&#8221; \/&gt;&lt;\/td&gt; &lt;td&gt;&lt;s:property value=&#8221;name&#8221; \/&gt;&lt;\/td&gt; &lt;td&gt;&lt;s:property value=&#8221;gender&#8221; \/&gt;&lt;\/td&gt; &lt;td&gt;&lt;s:property value=&#8221;age&#8221; \/&gt;&lt;\/td&gt; &lt;td&gt; &lt;s:url id=&#8221;editUrl&#8221; action=&#8221;edit&#8221;&gt; &lt;s:param name=&#8221;id&#8221;&gt;&lt;s:property value=&#8221;id&#8221; \/&gt;&lt;\/s:param&gt; &lt;\/s:url&gt; &lt;s:url id=&#8221;deleteUrl&#8221; action=&#8221;delete&#8221;&gt; &lt;s:param name=&#8221;id&#8221;&gt;&lt;s:property value=&#8221;id&#8221; \/&gt;&lt;\/s:param&gt; &lt;\/s:url&gt; &lt;s:a href=&#8221;%{editUrl}&#8221;&gt;\u7f16\u8f91&lt;\/s:a&gt; &lt;s:a href=&#8221;%{deleteUrl}&#8221;&gt;\u5220\u9664&lt;\/s:a&gt; &lt;\/td&gt; &lt;\/tr&gt; &lt;\/s:iterator&gt; &lt;\/table&gt; &lt;\/body&gt; &lt;\/html&gt; &#8220;&#8216;<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001Struts2\u306e\u30bf\u30b0\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3066\u3001\u30d5\u30a9\u30fc\u30e0\u3001\u30ea\u30f3\u30af\u3001\u30dc\u30bf\u30f3\u3001\u304a\u3088\u3073\u305d\u306e\u4ed6\u306e\u8981\u7d20\u3092\u751f\u6210\u3057\u307e\u3059\u3002 \u3053\u306e\u30da\u30fc\u30b8\u306b\u306f\u3001\u30ea\u30b9\u30c8\u3001\u8ffd\u52a0\u3001\u7de8\u96c6\u3001\u304a\u3088\u3073\u524a\u9664\u306e &lt;&gt; \u3064\u306e\u30d5\u30a9\u30fc\u30e0\u304c\u3042\u308a\u3001\u5b66\u751f\u60c5\u5831\u306e\u30af\u30a8\u30ea\u3001\u5b66\u751f\u60c5\u5831\u306e\u8ffd\u52a0\u3001\u5b66\u751f\u60c5\u5831\u306e\u7de8\u96c6\u3001\u304a\u3088\u3073\u5b66\u751f\u60c5\u5831\u306e\u524a\u9664\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u3002 \u3059\u3079\u3066\u306e\u5b66\u751f\u306e\u57fa\u672c\u60c5\u5831\u304c\u3001\u7de8\u96c6\u30a2\u30af\u30b7\u30e7\u30f3\u3068\u524a\u9664\u30a2\u30af\u30b7\u30e7\u30f3\u3068\u3068\u3082\u306b\u8868\u306b\u8868\u793a\u3055\u308c\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u3067\u306f\u3001\u30d3\u30b8\u30cd\u30b9 \u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u8981\u7d20\u3068\u5c5e\u6027\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30c7\u30fc\u30bf\u30a2\u30af\u30bb\u30b9\u5c64(DAO)\u306e\u5b9f\u88c5\u65b9\u6cd5\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2 \u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30c7\u30fc\u30bf\u30fb\u30a2\u30af\u30bb\u30b9\u5c64 (DAO) \u3092\u4f7f\u7528\u3057\u3066\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30fb\u30a2\u30af\u30bb\u30b9\u304a\u3088\u3073\u30c7\u30fc\u30bf\u51e6\u7406\u6a5f\u80fd\u3092\u542b\u3080\u30c7\u30fc\u30bf\u30fb\u30d1\u30fc\u30b7\u30b9\u30bf\u30f3\u30b9\u304a\u3088\u3073\u7167\u4f1a\u64cd\u4f5c\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u5358\u7d14\u306a\u30c7\u30fc\u30bf \u30a2\u30af\u30bb\u30b9\u5c64\u3092\u5b9f\u88c5\u3059\u308b\u65b9\u6cd5\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>DAO \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306e\u5b9a\u7fa9<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001\u30c7\u30fc\u30bf \u30a2\u30af\u30bb\u30b9\u306e\u57fa\u672c\u7684\u306a\u64cd\u4f5c (\u8ffd\u52a0\u3001\u524a\u9664\u3001\u5909\u66f4\u3001\u30af\u30a8\u30ea\u306a\u3069) \u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3059\u308b DAO \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public interface StudentDao {\n\n    public void addStudent(Student student);\n\n    public void editStudent(Student student);\n\n    public void deleteStudent(int id);\n\n    public Student getStudentById(int id);\n\n    public List&lt;Student&gt; getAllStudents();\n\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001StudentDao\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306f\u3001\u5b66\u751f\u60c5\u5831\u306e\u8ffd\u52a0\u3001\u5b66\u751f\u60c5\u5831\u306e\u7de8\u96c6\u3001\u5b66\u751f\u60c5\u5831\u306e\u524a\u9664\u3001ID\u306b\u57fa\u3065\u304f\u5b66\u751f\u60c5\u5831\u306e\u30af\u30a8\u30ea\u3001\u3059\u3079\u3066\u306e\u5b66\u751f\u60c5\u5831\u306e\u53d6\u5f97\u306a\u3069\u30015\u3064\u306e\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>DAO\u306f\u30af\u30e9\u30b9\u306e\u8a18\u8ff0\u3092\u5b9f\u88c5\u3057\u307e\u3059<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306b\u3001DAO \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u57fa\u672c\u64cd\u4f5c\u3092\u5177\u4f53\u7684\u306b\u5b9f\u88c5\u3059\u308b StudentDao \u5b9f\u88c5\u30af\u30e9\u30b9\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public class StudentDaoImpl implements StudentDao {\n\n    private SessionFactory sessionFactory;\n\n    public void setSessionFactory(SessionFactory sessionFactory) {\n        this.sessionFactory = sessionFactory;\n    }\n\n    @Override\n    public void addStudent(Student student) {\n        Session session = sessionFactory.getCurrentSession();\n        session.save(student);\n    }\n\n    @Override\n    public void editStudent(Student student) {\n        Session session = sessionFactory.getCurrentSession();\n        session.update(student);\n    }\n\n    @Override\n    public void deleteStudent(int id) {\n        Session session = sessionFactory.getCurrentSession();\n        Student student = (Student) session.get(Student.class, id);\n        session.delete(student);\n    }\n\n    @Override\n    public Student getStudentById(int id) {\n        Session session = sessionFactory.getCurrentSession();\n        Student student = (Student) session.get(Student.class, id);\n        return student;\n    }\n\n    @Override\n    public List&lt;Student&gt; getAllStudents() {\n        Session session = sessionFactory.getCurrentSession();\n        Query query = session.createQuery(\"from Student\");\n        List&lt;Student&gt; students = query.list();\n        return students;\n    }\n\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001\u30af\u30e9\u30b9\u306f StudentDao \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3057\u30015 \u3064\u306e\u57fa\u672c\u64cd\u4f5c\u306e\u7279\u5b9a\u306e\u5b9f\u88c5\u30e1\u30bd\u30c3\u30c9\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u307e\u3059\u3002 \u3053\u306e\u30af\u30e9\u30b9\u306b\u306f\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\u3057\u3066\u30c7\u30fc\u30bf \u30c6\u30fc\u30d6\u30eb\u3092\u64cd\u4f5c\u3059\u308b\u305f\u3081\u306e SessionFactory \u30d7\u30ed\u30d1\u30c6\u30a3\u3068 setSessionFactory \u30e1\u30bd\u30c3\u30c9\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u3067\u306f\u3001\u30d3\u30b8\u30cd\u30b9 \u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30e1\u30bd\u30c3\u30c9\u3068\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>DAO \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u66f8\u304d\u8fbc\u307f<\/li>\n<\/ol>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u30c7\u30fc\u30bf \u30a2\u30af\u30bb\u30b9\u5c64\u306e\u7ba1\u7406\u3068\u547c\u3073\u51fa\u3057\u3092\u5b9f\u88c5\u3059\u308b\u305f\u3081\u306b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306e DAO \u5b9f\u88c5\u30af\u30e9\u30b9\u306b\u95a2\u3059\u308b\u60c5\u5831\u3092\u69cb\u6210\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;bean id=\"studentDao\" class=\"com.example.dao.StudentDaoImpl\"&gt;\n  &lt;property name=\"sessionFactory\" ref=\"sessionFactory\" \/&gt;\n&lt;\/bean&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001DAO \u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u7ba1\u7406\u3068\u547c\u3073\u51fa\u3057\u306f\u3001class\u5c5e\u6027\u304c\u5177\u8c61\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u30af\u30e9\u30b9\u540d\u3092\u6307\u5b9a\u3057\u3001\u30d7\u30ed\u30d1\u30c6\u30a3\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u4f9d\u5b58\u95a2\u4fc2\u6ce8\u5165\u306e\u30d7\u30ed\u30d1\u30c6\u30a3\u540d\u3068\u4f9d\u5b58\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u53c2\u7167\u540d\u3092\u6307\u5b9a\u3059\u308bstudentDao\u3068\u3044\u3046\u540d\u524d\u306eBean\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u624b\u9806\u306b\u3088\u308a\u3001\u5b66\u751f\u60c5\u5831\u306e\u8ffd\u52a0\u3001\u524a\u9664\u3001\u5909\u66f4\u3001\u30c1\u30a7\u30c3\u30af\u3001\u305d\u306e\u4ed6\u306e\u64cd\u4f5c\u3001\u304a\u3088\u3073DAO\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3001DAO\u5b9f\u88c5\u30af\u30e9\u30b9\u3001\u304a\u3088\u3073DAO\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u63d0\u4f9b\u306e\u305f\u3081\u306e\u5358\u7d14\u306a\u30c7\u30fc\u30bf\u30a2\u30af\u30bb\u30b9\u5c64\u3092\u5b9f\u88c5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u5c64(\u30b5\u30fc\u30d3\u30b9)\u306e\u5b9f\u88c5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u6559\u3048\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts2\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3067\u306f\u3001\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u5c64(Service)\u3092\u4f7f\u7528\u3057\u3066\u3001\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u7ba1\u7406\u3001\u30c7\u30fc\u30bf\u691c\u8a3c\u3001\u30c7\u30fc\u30bf\u5909\u63db\u3001\u305d\u306e\u4ed6\u306e\u6a5f\u80fd\u3092\u542b\u3080\u30d3\u30b8\u30cd\u30b9\u30ed\u30b8\u30c3\u30af\u51e6\u7406\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u5358\u7d14\u306a\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u5c64\u3092\u5b9f\u88c5\u3059\u308b\u65b9\u6cd5\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30b5\u30fc\u30d3\u30b9\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u5b9a\u7fa9<\/li>\n<\/ol>\n\n\n\n<p>\u307e\u305a\u3001\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u306e\u57fa\u672c\u64cd\u4f5c (\u8ffd\u52a0\u3001\u524a\u9664\u3001\u5909\u66f4\u3001\u691c\u7d22\u306a\u3069) \u3092\u30ab\u30d7\u30bb\u30eb\u5316\u3059\u308b\u30b5\u30fc\u30d3\u30b9 \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>public interface StudentService {\n\n    public void addStudent(StudentDto studentDto);\n\n    public void editStudent(StudentDto studentDto);\n\n    public void deleteStudent(int id);\n\n    public StudentDto getStudentById(int id);\n\n    public List&lt;StudentDto&gt; getAllStudents();\n\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001StudentService \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u306f\u3001\u5b66\u751f\u60c5\u5831\u306e\u8ffd\u52a0\u3001\u5b66\u751f\u60c5\u5831\u306e\u7de8\u96c6\u3001\u5b66\u751f\u60c5\u5831\u306e\u524a\u9664\u3001ID \u306b\u57fa\u3065\u304f\u5b66\u751f\u60c5\u5831\u306e\u30af\u30a8\u30ea\u3001\u3059\u3079\u3066\u306e\u5b66\u751f\u60c5\u5831\u306e\u53d6\u5f97\u306a\u3069\u30015 \u3064\u306e\u57fa\u672c\u7684\u306a\u64cd\u4f5c\u3092\u5b9a\u7fa9\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30b5\u30fc\u30d3\u30b9\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u8a18\u8ff0<\/li>\n<\/ol>\n\n\n\n<p>\u6b21\u306b\u3001\u30b5\u30fc\u30d3\u30b9 \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3067\u5b9a\u7fa9\u3055\u308c\u3066\u3044\u308b\u57fa\u672c\u64cd\u4f5c\u3092\u5177\u4f53\u7684\u306b\u5b9f\u88c5\u3059\u308b StudentService \u306e\u5b9f\u88c5\u30af\u30e9\u30b9\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">javaCopy code<code>@Service(\"studentService\")\n@Transactional\npublic class StudentServiceImpl implements StudentService {\n\n    @Autowired\n    private StudentDao studentDao;\n\n    @Override\n    public void addStudent(StudentDto studentDto) {\n        Student student = new Student();\n        BeanUtils.copyProperties(studentDto, student);\n        studentDao.addStudent(student);\n    }\n\n    @Override\n    public void editStudent(StudentDto studentDto) {\n        Student student = studentDao.getStudentById(studentDto.getId());\n        BeanUtils.copyProperties(studentDto, student);\n        studentDao.editStudent(student);\n    }\n\n    @Override\n    public void deleteStudent(int id) {\n        studentDao.deleteStudent(id);\n    }\n\n    @Override\n    public StudentDto getStudentById(int id) {\n        Student student = studentDao.getStudentById(id);\n        StudentDto studentDto = new StudentDto();\n        BeanUtils.copyProperties(student, studentDto);\n        return studentDto;\n    }\n\n    @Override\n    public List&lt;StudentDto&gt; getAllStudents() {\n        List&lt;Student&gt; students = studentDao.getAllStudents();\n        List&lt;StudentDto&gt; studentDtos = new ArrayList&lt;&gt;();\n        for (Student student : students) {\n            StudentDto studentDto = new StudentDto();\n            BeanUtils.copyProperties(student, studentDto);\n            studentDtos.add(studentDto);\n        }\n        return studentDtos;\n    }\n\n}\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001\u30af\u30e9\u30b9\u306f StudentService \u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u3092\u5b9f\u88c5\u3057\u30015 \u3064\u306e\u57fa\u672c\u64cd\u4f5c\u306e\u7279\u5b9a\u306e\u5b9f\u88c5\u30e1\u30bd\u30c3\u30c9\u3092\u5b9a\u7fa9\u3057\u307e\u3059\u3002 \u3053\u306e\u30af\u30e9\u30b9\u306f\u3001Spring \u306e\u4f9d\u5b58\u95a2\u4fc2\u633f\u5165\u30e1\u30ab\u30cb\u30ba\u30e0\u3092\u4f7f\u7528\u3057\u3066\u3001@Autowired\u6ce8\u91c8\u3092\u4ecb\u3057\u3066 StudentDao \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092 Service \u5b9f\u88c5\u30af\u30e9\u30b9\u306b\u633f\u5165\u3057\u3001DAO \u30ec\u30a4\u30e4\u30fc\u3078\u306e\u547c\u3073\u51fa\u3057\u3092\u5b9f\u88c5\u3057\u307e\u3059\u3002 \u5b9f\u969b\u306e\u958b\u767a\u3067\u306f\u3001\u30d3\u30b8\u30cd\u30b9 \u30cb\u30fc\u30ba\u3092\u6e80\u305f\u3059\u305f\u3081\u306b\u3001\u5fc5\u8981\u306b\u5fdc\u3058\u3066\u30e1\u30bd\u30c3\u30c9\u3068\u30d7\u30ed\u30d1\u30c6\u30a3\u3092\u8ffd\u52a0\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30b5\u30fc\u30d3\u30b9\u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u306e\u66f8\u304d\u8fbc\u307f<\/li>\n<\/ol>\n\n\n\n<p>\u6700\u5f8c\u306b\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5185\u306e Service \u5b9f\u88c5\u30af\u30e9\u30b9\u306b\u95a2\u3059\u308b\u60c5\u5831\u3092\u69cb\u6210\u3057\u3066\u3001\u30d3\u30b8\u30cd\u30b9 \u30ed\u30b8\u30c3\u30af\u5c64\u306e\u7ba1\u7406\u3068\u547c\u3073\u51fa\u3057\u3092\u5b9f\u88c5\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">xmlCopy code<code>&lt;bean id=\"studentService\" class=\"com.example.service.StudentServiceImpl\"&gt;\n  &lt;property name=\"studentDao\" ref=\"studentDao\" \/&gt;\n&lt;\/bean&gt;\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30b3\u30fc\u30c9\u3067\u306f\u3001Service\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u7ba1\u7406\u3068\u547c\u3073\u51fa\u3057\u306f\u3001class\u30d7\u30ed\u30d1\u30c6\u30a3\u304c\u5177\u8c61\u5b9f\u88c5\u30af\u30e9\u30b9\u306e\u30af\u30e9\u30b9\u3092\u6307\u5b9a\u3059\u308bstudentService\u3068\u3044\u3046\u540d\u524d\u306eBean\u3092\u69cb\u6210\u3059\u308b\u3053\u3068\u306b\u3088\u3063\u3066\u5b9f\u88c5\u3055\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u69cb\u9020\u3068\u547d\u540d\u898f\u5247\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u958b\u767a\u3059\u308b\u5834\u5408\u3001\u9069\u5207\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u3068\u547d\u540d\u898f\u5247\u306b\u3088\u308a\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4fdd\u5b88\u6027\u3068\u62e1\u5f35\u6027\u304c\u5411\u4e0a\u3057\u3001\u30b3\u30fc\u30c9\u304c\u3088\u308a\u660e\u78ba\u3067\u7406\u89e3\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002 \u4e00\u822c\u7684\u306b\u4f7f\u7528\u3055\u308c\u308b Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u69cb\u9020\u3068\u547d\u540d\u898f\u5247\u3092\u6b21\u306b\u793a\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020<\/li>\n<\/ol>\n\n\n\n<p>Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u901a\u5e38\u3001MVC (\u30e2\u30c7\u30eb \u30d3\u30e5\u30fc \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc) \u30d1\u30bf\u30fc\u30f3\u304c\u958b\u767a\u306b\u4f7f\u7528\u3055\u308c\u308b\u305f\u3081\u3001\u6b21\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">lessCopy code<code>- src\/main\/java                \/\/ Java\u6e90\u4ee3\u7801\u76ee\u5f55\n  - com.example.model          \/\/ \u5b58\u653eModel\u7c7b\u7684\u76ee\u5f55\n  - com.example.dao            \/\/ \u5b58\u653eDAO\u7c7b\u7684\u76ee\u5f55\n  - com.example.service        \/\/ \u5b58\u653eService\u7c7b\u7684\u76ee\u5f55\n  - com.example.action         \/\/ \u5b58\u653eAction\u7c7b\u7684\u76ee\u5f55\n- src\/main\/resources           \/\/ \u8d44\u6e90\u6587\u4ef6\u76ee\u5f55\n  - applicationContext.xml   \/\/ Spring\u914d\u7f6e\u6587\u4ef6\n  - struts.xml                 \/\/ Struts\u914d\u7f6e\u6587\u4ef6\n- WebContent                   \/\/ Web\u5e94\u7528\u6839\u76ee\u5f55\n  - WEB-INF                    \/\/ WEB-INF\u76ee\u5f55\n    - lib                      \/\/ \u5b58\u653e\u7b2c\u4e09\u65b9\u5e93\u6587\u4ef6\u7684\u76ee\u5f55\n    - classes                  \/\/ \u5b58\u653e\u7f16\u8bd1\u540e\u7684Java\u7c7b\u6587\u4ef6\u7684\u76ee\u5f55\n    - spring                   \/\/ \u5b58\u653eSpring\u76f8\u5173\u914d\u7f6e\u6587\u4ef6\u7684\u76ee\u5f55\n    - struts                   \/\/ \u5b58\u653eStruts\u76f8\u5173\u914d\u7f6e\u6587\u4ef6\u7684\u76ee\u5f55\n    - web.xml                  \/\/ Web\u5e94\u7528\u914d\u7f6e\u6587\u4ef6\n  - index.jsp                  \/\/ \u9996\u9875\u6587\u4ef6\n<\/code><\/pre>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u9020\u3067\u306f\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4fdd\u5b88\u6027\u3092\u5411\u4e0a\u3055\u305b\u308b\u305f\u3081\u306b\u3001Java\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3001\u30ea\u30bd\u30fc\u30b9\u30d5\u30a1\u30a4\u30eb\u3001\u304a\u3088\u3073Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u7570\u306a\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u683c\u7d0d\u3059\u308b\u3053\u3068\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u547d\u540d\u898f\u5247<\/li>\n<\/ol>\n\n\n\n<p>Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u6b21\u306e\u547d\u540d\u898f\u5247\u3092\u304a\u52e7\u3081\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Java\u30af\u30e9\u30b9\u306f\u3001StudentAction\u3001StudentService\u3001StudentDao\u306a\u3069\u306e\u30e9\u30af\u30c0\u306e\u547d\u540d\u6cd5\u3092\u4f7f\u7528\u3057\u3066\u540d\u524d\u3092\u4ed8\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a2\u30af\u30b7\u30e7\u30f3 \u30af\u30e9\u30b9\u306e\u540d\u524d\u306f\u3001StudentAction \u306e\u3088\u3046\u306b Action \u3067\u7d42\u308f\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>DTO \u30af\u30e9\u30b9\u306e\u540d\u524d\u306f\u3001StudentDto \u306e\u3088\u3046\u306b DTO \u3067\u7d42\u308f\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>DAO \u30af\u30e9\u30b9\u306e\u547d\u540d\u306f\u3001StudentDao \u306e\u3088\u3046\u306b Dao \u3067\u7d42\u308f\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b5\u30fc\u30d3\u30b9 \u30af\u30e9\u30b9\u306b\u306f\u3001StudentService \u306a\u3069\u306e Service \u3068\u3044\u3046\u540d\u524d\u3092\u4ed8\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>Model \u30af\u30e9\u30b9\u306b\u306f\u3001\u30a8\u30f3\u30c6\u30a3\u30c6\u30a3 \u30af\u30e9\u30b9\u306e\u540d\u524d (Student \u306a\u3069) \u306b\u3061\u306a\u3093\u3067\u540d\u524d\u3092\u4ed8\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>Struts \u69cb\u6210\u30d5\u30a1\u30a4\u30eb\u5185\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u540d\u306f\u3001\u5c0f\u6587\u5b57\u3068\u30c0\u30c3\u30b7\u30e5\u306e\u7d44\u307f\u5408\u308f\u305b (\/student\/show \u306a\u3069) \u306b\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>JSP \u30da\u30fc\u30b8\u306b\u306f\u3001\u5c0f\u6587\u5b57\u3068\u30a2\u30f3\u30c0\u30fc\u30b9\u30b3\u30a2 (student_list.jsp \u306a\u3069) \u3092\u7d44\u307f\u5408\u308f\u305b\u3066\u540d\u524d\u3092\u4ed8\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u69cb\u9020\u3068\u547d\u540d\u898f\u5247\u306b\u5f93\u3046\u3053\u3068\u3067\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4fdd\u5b88\u6027\u3068\u62e1\u5f35\u6027\u3092\u5411\u4e0a\u3055\u305b\u3001\u30b3\u30fc\u30c9\u3092\u3088\u308a\u660e\u78ba\u3067\u7406\u89e3\u3057\u3084\u3059\u304f\u3057\u3001\u30a8\u30e9\u30fc\u306e\u53ef\u80fd\u6027\u3092\u6e1b\u3089\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c1\u30e5\u30fc\u30cb\u30f3\u30b0\u306e\u63a8\u5968\u4e8b\u9805\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u958b\u767a\u3059\u308b\u969b\u306b\u306f\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u5b89\u5b9a\u6027\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u30da\u30fc\u30b8\u8981\u6c42\u306e\u6570\u3092\u6e1b\u3089\u3059<\/li>\n<\/ol>\n\n\n\n<p>Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30da\u30fc\u30b8\u8981\u6c42\u306f\u30ea\u30bd\u30fc\u30b9\u3092\u5927\u91cf\u306b\u6d88\u8cbb\u3059\u308b\u305f\u3081\u3001\u30da\u30fc\u30b8\u8981\u6c42\u306e\u6570\u3092\u6700\u5c0f\u9650\u306b\u6291\u3048\u308b\u3053\u3068\u3067\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u52b9\u679c\u7684\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u6b21\u306e\u65b9\u6cd5\u3067\u30da\u30fc\u30b8\u8981\u6c42\u306e\u6570\u3092\u6e1b\u3089\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30da\u30fc\u30b8\u306e\u30b9\u30bf\u30a4\u30eb\u8a2d\u5b9a\u3068\u30b9\u30af\u30ea\u30d7\u30c8\u306bCSS\u30d5\u30a1\u30a4\u30eb\u3068JavaScript\u30d5\u30a1\u30a4\u30eb\u3092\u4f7f\u7528\u3057\u3001HTML\u3067\u306e\u30b9\u30bf\u30a4\u30eb\u30bf\u30b0\u3068\u30b9\u30af\u30ea\u30d7\u30c8\u30bf\u30b0\u306e\u4f7f\u7528\u3092\u907f\u3051\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30b9\u30d7\u30e9\u30a4\u30c8\u30c6\u30af\u30ce\u30ed\u30b8\u30fc\u3092\u4f7f\u7528\u3057\u3066\u8907\u6570\u306e\u753b\u50cf\u30921\u3064\u306e\u753b\u50cf\u306b\u30de\u30fc\u30b8\u3057\u3001\u30da\u30fc\u30b8\u30ea\u30af\u30a8\u30b9\u30c8\u306e\u6570\u3092\u6e1b\u3089\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u8868\u793a\u3059\u308b\u5834\u5408\u306f\u3001\u30da\u30fc\u30b8\u30cd\u30fc\u30b7\u30e7\u30f3\u3068\u30b9\u30af\u30ed\u30fc\u30eb\u8aad\u307f\u8fbc\u307f\u3092\u4f7f\u7528\u3057\u3066\u3001\u4e00\u5ea6\u306b\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u30ed\u30fc\u30c9\u3057\u306a\u3044\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u306e\u4f7f\u7528\u3092\u907f\u3051\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u306f\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u8981\u6c42\u3092\u5225\u306e URL \u30a2\u30c9\u30ec\u30b9\u306b\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u3059\u308b\u3053\u3068\u3067\u3042\u308a\u3001\u8ffd\u52a0\u306e\u30cd\u30c3\u30c8\u30ef\u30fc\u30af \u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3068\u30b5\u30fc\u30d0\u30fc\u306e\u8ca0\u8377\u3092\u5f15\u304d\u8d77\u3053\u3059\u53ef\u80fd\u6027\u304c\u3042\u308b\u305f\u3081\u3001\u30ea\u30c0\u30a4\u30ec\u30af\u30c8\u306f\u3067\u304d\u308b\u3060\u3051\u907f\u3051\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u516c\u6b63\u4f7f\u7528<\/li>\n<\/ol>\n\n\n\n<p>Web \u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30ad\u30e3\u30c3\u30b7\u30e5\u306b\u3088\u3063\u3066\u30b5\u30fc\u30d0\u30fc\u306e\u8ca0\u8377\u3092\u52b9\u679c\u7684\u306b\u8efd\u6e1b\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002 \u30ad\u30e3\u30c3\u30b7\u30e5\u306f\u3001\u6b21\u306e\u65b9\u6cd5\u3067\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u9759\u7684\u30d5\u30a1\u30a4\u30eb(CSS\u3001JavaScript\u3001\u753b\u50cf\u306a\u3069)\u306e\u5834\u5408\u3001\u305d\u308c\u3089\u3092\u30d6\u30e9\u30a6\u30b6\u306b\u30ad\u30e3\u30c3\u30b7\u30e5\u3057\u3066\u3001\u30b5\u30fc\u30d0\u30fc\u304b\u3089\u5404\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u53d6\u5f97\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u52d5\u7684\u306b\u751f\u6210\u3055\u308c\u305f\u30c7\u30fc\u30bf\u306f\u3001\u30ad\u30e3\u30c3\u30b7\u30e5 \u30e1\u30ab\u30cb\u30ba\u30e0\u3092\u4f7f\u7528\u3057\u3066\u6700\u9069\u5316\u3057\u3001\u8981\u6c42\u3054\u3068\u306b\u30c7\u30fc\u30bf\u3092\u518d\u751f\u6210\u3059\u308b\u5fc5\u8981\u304c\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>\u591a\u6570\u306e Session \u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306e\u4f7f\u7528\u3092\u907f\u3051\u308b<\/li>\n<\/ol>\n\n\n\n<p>Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u3001Session\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u306f\u30e6\u30fc\u30b6\u30fc\u30bb\u30c3\u30b7\u30e7\u30f3\u60c5\u5831\u3092\u683c\u7d0d\u3059\u308b\u305f\u3081\u306b\u4f7f\u7528\u3055\u308c\u307e\u3059\u304c\u3001\u5404\u30e6\u30fc\u30b6\u30fc\u304cSession\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3059\u308b\u3068\u3001\u30b5\u30fc\u30d0\u30fc\u306e\u30e1\u30e2\u30ea\u30ea\u30bd\u30fc\u30b9\u304c\u904e\u5270\u306b\u6d88\u8cbb\u3055\u308c\u308b\u305f\u3081\u3001\u591a\u6570\u306eSession\u30aa\u30d6\u30b8\u30a7\u30af\u30c8\u3092\u4f7f\u7528\u3057\u306a\u3044\u3088\u3046\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30d7\u30fc\u30eb\u3092\u8ce2\u304f\u4f7f\u7528\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u64cd\u4f5c\u3059\u308b\u5834\u5408\u306f\u3001\u63a5\u7d9a\u7ba1\u7406\u306b\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30d7\u30fc\u30eb\u3092\u4f7f\u7528\u3057\u3066\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u306e\u30aa\u30fc\u30d0\u30fc\u30d8\u30c3\u30c9\u3092\u524a\u6e1b\u3057\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u5411\u4e0a\u3055\u305b\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u63a5\u7d9a\u30d7\u30fc\u30eb\u306f\u3001\u6b21\u306e\u65b9\u6cd5\u3067\u4f7f\u7528\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u63a5\u7d9a\u30d7\u30fc\u30eb\u304c\u5c0f\u3055\u3059\u304e\u308b\u3053\u3068\u306b\u3088\u308b\u8981\u6c42\u306e\u5fdc\u7b54\u306e\u5931\u6557\u3084\u3001\u5927\u304d\u3059\u304e\u308b\u3053\u3068\u306b\u3088\u308b\u30ea\u30bd\u30fc\u30b9\u306e\u6d6a\u8cbb\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306b\u3001\u9069\u5207\u306a\u63a5\u7d9a\u30d7\u30fc\u30eb\u30fb\u30b5\u30a4\u30ba\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u63a5\u7d9a\u30d7\u30fc\u30eb\u306e\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u671f\u9593\u3092\u5408\u7406\u7684\u306b\u8a2d\u5b9a\u3057\u3066\u3001\u63a5\u7d9a\u304c\u9577\u6642\u9593\u5360\u6709\u3055\u308c\u308b\u3053\u3068\u306b\u3088\u308b\u30ea\u30bd\u30fc\u30b9\u306e\u6d6a\u8cbb\u3092\u56de\u907f\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30a2\u30a4\u30c9\u30eb\u63a5\u7d9a\u30ea\u30b5\u30a4\u30af\u30eb \u30e1\u30ab\u30cb\u30ba\u30e0\u3092\u4f7f\u7528\u3057\u3066\u63a5\u7d9a\u3092\u518d\u5229\u7528\u304a\u3088\u3073\u89e3\u653e\u3057\u3001\u9577\u671f\u7684\u306a\u63a5\u7d9a\u306b\u3088\u308b\u30ea\u30bd\u30fc\u30b9\u306e\u6d6a\u8cbb\u3092\u56de\u907f\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u306e\u63d0\u6848\u306b\u3088\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u5b89\u5b9a\u6027\u3092\u52b9\u679c\u7684\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"http:\/\/edu.ujhb.org\/?p=1331\" alt=\"\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/chat.openai.com\/_next\/image?url=https%3A%2F%2Flh3.googleusercontent.com%2Fa%2FAGNmyxbwVdnTP0E2eBqDrujRQjV-wFP12Thr4vFgysVv5A%3Ds96-c&amp;w=64&amp;q=75\" alt=\"\u8ecd\u4ead\"\/><\/figure>\n\n\n\n<p>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306b\u95a2\u3059\u308b\u63a8\u5968\u4e8b\u9805\u3092\u8a73\u3057\u304f\u8aac\u660e\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n\n\n\n<p>Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u958b\u767a\u3059\u308b\u5834\u5408\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306b\u3001\u6b21\u306e\u70b9\u306b\u6ce8\u610f\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>SQL \u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u653b\u6483\u304b\u3089\u4fdd\u8b77\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>SQL\u30a4\u30f3\u30b8\u30a7\u30af\u30b7\u30e7\u30f3\u653b\u6483\u3068\u306f\u3001\u653b\u6483\u8005\u304c\u5165\u529b\u30dc\u30c3\u30af\u30b9\u306b\u60aa\u610f\u306e\u3042\u308bSQL\u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u3092\u5165\u529b\u3057\u3066\u3001\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u5185\u306e\u30c7\u30fc\u30bf\u3092\u53d6\u5f97\u307e\u305f\u306f\u7834\u58ca\u3059\u308b\u3053\u3068\u3092\u6307\u3059\u305f\u3081\u3001\u305d\u308c\u3092\u9632\u3050\u305f\u3081\u306b\u6b21\u306e\u5bfe\u7b56\u3092\u8b1b\u3058\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e6\u30fc\u30b6\u30fc\u304c\u5165\u529b\u3057\u305f\u30c7\u30fc\u30bf\u306f\u3001\u60aa\u610f\u306e\u3042\u308b SQL \u30b9\u30c6\u30fc\u30c8\u30e1\u30f3\u30c8\u304c\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u6e21\u3055\u308c\u306a\u3044\u3088\u3046\u306b\u3001\u30d5\u30a3\u30eb\u30bf\u30fc\u51e6\u7406\u3068\u691c\u8a3c\u3092\u884c\u3046\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9 \u30a2\u30af\u30bb\u30b9\u64cd\u4f5c\u3067\u306f\u3001\u6587\u5b57\u5217\u9023\u7d50\u3092\u76f4\u63a5\u4f7f\u7528\u3057\u306a\u3044\u3088\u3046\u306b\u3001PreparedStatement \u307e\u305f\u306f NamedParameterJdbcTemplate \u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>\u30af\u30ed\u30b9\u30b5\u30a4\u30c8\u30b9\u30af\u30ea\u30d7\u30c6\u30a3\u30f3\u30b0\u653b\u6483\u304b\u3089\u306e\u4fdd\u8b77<\/li>\n<\/ol>\n\n\n\n<p>\u30af\u30ed\u30b9\u30b5\u30a4\u30c8\u30b9\u30af\u30ea\u30d7\u30c6\u30a3\u30f3\u30b0\u653b\u6483\u306f\u3001\u653b\u6483\u8005\u304c\u60aa\u610f\u306e\u3042\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u3092Web\u30b5\u30a4\u30c8\u306b\u6ce8\u5165\u3057\u3066\u30e6\u30fc\u30b6\u30fc\u306e\u60c5\u5831\u3092\u53d6\u5f97\u3059\u308b\u5834\u5408\u3067\u3042\u308b\u305f\u3081\u3001\u305d\u308c\u3089\u3092\u9632\u3050\u305f\u3081\u306b\u6b21\u306e\u5bfe\u7b56\u3092\u8b1b\u3058\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e6\u30fc\u30b6\u30fc\u304c\u5165\u529b\u3057\u305f\u30c7\u30fc\u30bf\u306f\u3001\u60aa\u610f\u306e\u3042\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u304cWeb\u30b5\u30a4\u30c8\u306b\u6e21\u3089\u306a\u3044\u3088\u3046\u306b\u30d5\u30a3\u30eb\u30bf\u30ea\u30f3\u30b0\u304a\u3088\u3073\u691c\u8a3c\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30da\u30fc\u30b8\u3078\u306e\u30c7\u30fc\u30bf\u51fa\u529b\u306f\u3001\u60aa\u610f\u306e\u3042\u308b\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u30d6\u30e9\u30a6\u30b6\u3067\u5b9f\u884c\u3055\u308c\u308b\u306e\u3092\u9632\u3050\u305f\u3081\u306b\u3001HTML\u30a8\u30b9\u30b1\u30fc\u30d7\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"3\">\n<li>\u30af\u30ed\u30b9\u30b5\u30a4\u30c8\u30ea\u30af\u30a8\u30b9\u30c8\u30d5\u30a9\u30fc\u30b8\u30a7\u30ea\u653b\u6483\u304b\u3089\u306e\u4fdd\u8b77<\/li>\n<\/ol>\n\n\n\n<p>\u30af\u30ed\u30b9\u30b5\u30a4\u30c8\u30ea\u30af\u30a8\u30b9\u30c8\u30d5\u30a9\u30fc\u30b8\u30a7\u30ea\u653b\u6483\u306f\u3001Web\u30b5\u30a4\u30c8\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u507d\u9020\u3059\u308b\u653b\u6483\u8005\u306b\u3088\u308b\u60aa\u610f\u306e\u3042\u308b\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u3042\u308b\u305f\u3081\u3001\u305d\u308c\u3089\u3092\u9632\u3050\u305f\u3081\u306b\u6b21\u306e\u5bfe\u7b56\u3092\u8b1b\u3058\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d5\u30a9\u30fc\u30e0\u9001\u4fe1\u64cd\u4f5c\u3067\u306f\u3001\u60aa\u610f\u306e\u3042\u308b\u8981\u6c42\u306e\u9001\u4fe1\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306b\u30c8\u30fc\u30af\u30f3\u691c\u8a3c\u3092\u8ffd\u52a0\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u6a5f\u5bc6\u6027\u306e\u9ad8\u3044\u64cd\u4f5c (\u5909\u66f4\u3084\u524a\u9664\u64cd\u4f5c\u306a\u3069) \u306e\u5834\u5408\u3001\u60aa\u610f\u306e\u3042\u308b\u64cd\u4f5c\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306b\u3001\u30e6\u30fc\u30b6\u30fc\u306f 2 \u56de\u78ba\u8a8d\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\" start=\"4\">\n<li>HTTPS \u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u9069\u5207\u306b\u4f7f\u7528\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>HTTPS\u30d7\u30ed\u30c8\u30b3\u30eb\u306f\u3001\u9001\u4fe1\u4e2d\u306e\u30c7\u30fc\u30bf\u306e\u76d7\u96e3\u3092\u56de\u907f\u3059\u308b\u305f\u3081\u306b\u9001\u4fe1\u30c7\u30fc\u30bf\u3092\u6697\u53f7\u5316\u3067\u304d\u308b\u305f\u3081\u3001\u6a5f\u5bc6\u30c7\u30fc\u30bf\u3092\u9001\u4fe1\u3059\u308b\u969b\u306e\u4fdd\u8b77\u306b\u306fHTTPS\u30d7\u30ed\u30c8\u30b3\u30eb\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ol class=\"wp-block-list\" start=\"5\">\n<li>\u30a2\u30af\u30bb\u30b9\u8a31\u53ef\u5236\u5fa1\u3092\u5408\u7406\u7684\u306b\u8a2d\u5b9a\u3059\u308b<\/li>\n<\/ol>\n\n\n\n<p>Struts \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u3001\u8a31\u53ef\u3055\u308c\u305f\u30e6\u30fc\u30b6\u30fc\u306e\u307f\u304c\u6a5f\u5bc6\u30ea\u30bd\u30fc\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u3088\u3046\u306b\u30a2\u30af\u30bb\u30b9\u5236\u5fa1\u3092\u5236\u5fa1\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002 \u6a29\u9650\u5236\u5fa1\u306f\u3001Struts\u306e\u7d44\u307f\u8fbc\u307f\u30a4\u30f3\u30bf\u30fc\u30bb\u30d7\u30bf\u30fc\u3092\u4f7f\u7528\u3057\u3066\u5b9f\u884c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u4e0a\u8a18\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306b\u95a2\u3059\u308b\u63a8\u5968\u4e8b\u9805\u306b\u3088\u308a\u3001\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u5b89\u5b9a\u6027\u3092\u52b9\u679c\u7684\u306b\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>IT\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb\u306e\u30d3\u30c7\u30aa\u3092\u3084\u308a\u305f\u3044\u306e\u3067 &hellip; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_mi_skip_tracking":false,"footnotes":""},"categories":[23],"tags":[],"class_list":["post-1352","post","type-post","status-publish","format-standard","hentry","category-material"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/1352","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1352"}],"version-history":[{"count":1,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/1352\/revisions"}],"predecessor-version":[{"id":1353,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=\/wp\/v2\/posts\/1352\/revisions\/1353"}],"wp:attachment":[{"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/edu.ujhb.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}