{"id":1283,"date":"2026-01-09T14:27:04","date_gmt":"2026-01-09T06:27:04","guid":{"rendered":"https:\/\/www.52runoob.com\/?p=1283"},"modified":"2026-01-09T14:27:04","modified_gmt":"2026-01-09T06:27:04","slug":"jsp%e7%99%bb%e5%bd%95%e6%b3%a8%e5%86%8c%e5%ae%8c%e6%95%b4%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81%e5%a2%9e%e5%88%a0%e6%94%b9%e6%9f%a5%e7%bd%91%e9%a1%b5%e6%95%b0%e6%8d%ae%e5%ba%93","status":"publish","type":"post","link":"https:\/\/www.52runoob.com\/index.php\/2026\/01\/09\/jsp%e7%99%bb%e5%bd%95%e6%b3%a8%e5%86%8c%e5%ae%8c%e6%95%b4%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81%e5%a2%9e%e5%88%a0%e6%94%b9%e6%9f%a5%e7%bd%91%e9%a1%b5%e6%95%b0%e6%8d%ae%e5%ba%93\/","title":{"rendered":"jsp\u767b\u5f55\u6ce8\u518c\u5b8c\u6574\u5b9e\u73b0\u4ee3\u7801(\u589e\u5220\u6539\u67e5+\u7f51\u9875+\u6570\u636e\u5e93)"},"content":{"rendered":"\n<p>\u4e0b\u9762\u7ed9\u4f60\u4e00\u5957**\u300cJSP + Servlet + MySQL \u767b\u5f55\u6ce8\u518c\u7cfb\u7edf\u3010\u5b8c\u6574 CRUD\uff08\u589e\u5220\u6539\u67e5\uff09\u3011\u5b9e\u73b0\u4ee3\u7801\u300d<strong>\uff0c\u8fd9\u662f<\/strong>\u8bfe\u7a0b\u8bbe\u8ba1 \/ \u5b9e\u8bad \/ \u6bd5\u8bbe\u5c0f\u9879\u76ee\u7ea7\u522b**\uff0c<strong>\u80fd\u76f4\u63a5\u8dd1\u3001\u80fd\u622a\u56fe\u3001\u80fd\u7b54\u8fa9<\/strong>\u7684\u90a3\u79cd\u3002<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u6280\u672f\u6808\uff1a<br><strong>JSP + Servlet + JDBC + MySQL + Session\uff08MVC \u601d\u60f3\uff09<\/strong><\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e00\u3001\u7cfb\u7edf\u529f\u80fd\u603b\u89c8\uff08\u8001\u5e08\u6700\u5173\u5fc3\uff09<\/h1>\n\n\n\n<p>\u2714 \u7528\u6237\u6ce8\u518c\uff08Create\uff09<br>\u2714 \u7528\u6237\u767b\u5f55<br>\u2714 \u7528\u6237\u5217\u8868\u67e5\u8be2\uff08Read\uff09<br>\u2714 \u4fee\u6539\u7528\u6237\u4fe1\u606f\uff08Update\uff09<br>\u2714 \u5220\u9664\u7528\u6237\uff08Delete\uff09<br>\u2714 Session \u767b\u5f55\u63a7\u5236<br>\u2714 \u6570\u636e\u5e93\u5b58\u50a8<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e8c\u3001\u9879\u76ee\u7ed3\u6784\uff08\u6807\u51c6 MVC\uff09<\/h1>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\njsp-crud\/\n\u2502\n\u251c\u2500\u2500 src\/\n\u2502   \u251c\u2500\u2500 entity\/\n\u2502   \u2502   \u2514\u2500\u2500 User.java\n\u2502   \u251c\u2500\u2500 util\/\n\u2502   \u2502   \u2514\u2500\u2500 DBUtil.java\n\u2502   \u251c\u2500\u2500 dao\/\n\u2502   \u2502   \u2514\u2500\u2500 UserDao.java\n\u2502   \u251c\u2500\u2500 servlet\/\n\u2502   \u2502   \u251c\u2500\u2500 LoginServlet.java\n\u2502   \u2502   \u251c\u2500\u2500 RegisterServlet.java\n\u2502   \u2502   \u251c\u2500\u2500 UserListServlet.java\n\u2502   \u2502   \u251c\u2500\u2500 UserEditServlet.java\n\u2502   \u2502   \u2514\u2500\u2500 UserDeleteServlet.java\n\u2502\n\u251c\u2500\u2500 WebContent\/\n\u2502   \u251c\u2500\u2500 login.jsp\n\u2502   \u251c\u2500\u2500 register.jsp\n\u2502   \u251c\u2500\u2500 userList.jsp\n\u2502   \u251c\u2500\u2500 userEdit.jsp\n\u2502   \u2514\u2500\u2500 success.jsp\n\u2502\n\u2514\u2500\u2500 web.xml\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e09\u3001\u6570\u636e\u5e93\u8bbe\u8ba1\uff08MySQL\uff09<\/h1>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nCREATE DATABASE jsp_crud DEFAULT CHARSET utf8;\n\nUSE jsp_crud;\n\nCREATE TABLE user (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    username VARCHAR(50) UNIQUE NOT NULL,\n    password VARCHAR(50) NOT NULL\n);\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u56db\u3001\u6570\u636e\u5e93\u5de5\u5177\u7c7b\uff08DBUtil\uff09<\/h1>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\npackage util;\n\nimport java.sql.*;\n\npublic class DBUtil {\n    private static final String URL =\n        &quot;jdbc:mysql:\/\/localhost:3306\/jsp_crud?useUnicode=true&amp;amp;characterEncoding=utf8&quot;;\n    private static final String USER = &quot;root&quot;;\n    private static final String PASSWORD = &quot;123456&quot;;\n\n    static {\n        try {\n            Class.forName(&quot;com.mysql.cj.jdbc.Driver&quot;);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n\n    public static Connection getConnection() throws SQLException {\n        return DriverManager.getConnection(URL, USER, PASSWORD);\n    }\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e94\u3001\u5b9e\u4f53\u7c7b\uff08User.java\uff09<\/h1>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\npackage entity;\n\npublic class User {\n    private int id;\n    private String username;\n    private String password;\n\n    public User() {}\n\n    public User(int id, String username, String password) {\n        this.id = id;\n        this.username = username;\n        this.password = password;\n    }\n\n    \/\/ getter \/ setter\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u516d\u3001DAO \u5c42\uff08\u6838\u5fc3 CRUD\uff09<\/h1>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\npackage dao;\n\nimport entity.User;\nimport util.DBUtil;\n\nimport java.sql.*;\nimport java.util.*;\n\npublic class UserDao {\n\n    \/\/ \u6ce8\u518c\uff08\u589e\uff09\n    public void addUser(User user) throws Exception {\n        String sql = &quot;INSERT INTO user(username,password) VALUES(?,?)&quot;;\n        try (Connection c = DBUtil.getConnection();\n             PreparedStatement ps = c.prepareStatement(sql)) {\n            ps.setString(1, user.getUsername());\n            ps.setString(2, user.getPassword());\n            ps.executeUpdate();\n        }\n    }\n\n    \/\/ \u767b\u5f55\uff08\u67e5\uff09\n    public User login(String username, String password) throws Exception {\n        String sql = &quot;SELECT * FROM user WHERE username=? AND password=?&quot;;\n        try (Connection c = DBUtil.getConnection();\n             PreparedStatement ps = c.prepareStatement(sql)) {\n            ps.setString(1, username);\n            ps.setString(2, password);\n            ResultSet rs = ps.executeQuery();\n            if (rs.next()) {\n                return new User(\n                    rs.getInt(&quot;id&quot;),\n                    rs.getString(&quot;username&quot;),\n                    rs.getString(&quot;password&quot;)\n                );\n            }\n        }\n        return null;\n    }\n\n    \/\/ \u67e5\u8be2\u5168\u90e8\uff08\u67e5\uff09\n    public List&amp;lt;User&gt; findAll() throws Exception {\n        List&amp;lt;User&gt; list = new ArrayList&amp;lt;&gt;();\n        String sql = &quot;SELECT * FROM user&quot;;\n        try (Connection c = DBUtil.getConnection();\n             Statement s = c.createStatement();\n             ResultSet rs = s.executeQuery(sql)) {\n            while (rs.next()) {\n                list.add(new User(\n                    rs.getInt(&quot;id&quot;),\n                    rs.getString(&quot;username&quot;),\n                    rs.getString(&quot;password&quot;)\n                ));\n            }\n        }\n        return list;\n    }\n\n    \/\/ \u6839\u636e ID \u67e5\u8be2\n    public User findById(int id) throws Exception {\n        String sql = &quot;SELECT * FROM user WHERE id=?&quot;;\n        try (Connection c = DBUtil.getConnection();\n             PreparedStatement ps = c.prepareStatement(sql)) {\n            ps.setInt(1, id);\n            ResultSet rs = ps.executeQuery();\n            if (rs.next()) {\n                return new User(\n                    rs.getInt(&quot;id&quot;),\n                    rs.getString(&quot;username&quot;),\n                    rs.getString(&quot;password&quot;)\n                );\n            }\n        }\n        return null;\n    }\n\n    \/\/ \u4fee\u6539\uff08\u6539\uff09\n    public void update(User user) throws Exception {\n        String sql = &quot;UPDATE user SET username=?,password=? WHERE id=?&quot;;\n        try (Connection c = DBUtil.getConnection();\n             PreparedStatement ps = c.prepareStatement(sql)) {\n            ps.setString(1, user.getUsername());\n            ps.setString(2, user.getPassword());\n            ps.setInt(3, user.getId());\n            ps.executeUpdate();\n        }\n    }\n\n    \/\/ \u5220\u9664\uff08\u5220\uff09\n    public void delete(int id) throws Exception {\n        String sql = &quot;DELETE FROM user WHERE id=?&quot;;\n        try (Connection c = DBUtil.getConnection();\n             PreparedStatement ps = c.prepareStatement(sql)) {\n            ps.setInt(1, id);\n            ps.executeUpdate();\n        }\n    }\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e03\u3001Servlet \u5c42\uff08\u63a7\u5236\u5668\uff09<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 \u6ce8\u518c<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n@WebServlet(&quot;\/RegisterServlet&quot;)\npublic class RegisterServlet extends HttpServlet {\n    protected void doPost(HttpServletRequest req, HttpServletResponse resp)\n            throws IOException {\n        try {\n            UserDao dao = new UserDao();\n            User user = new User();\n            user.setUsername(req.getParameter(&quot;username&quot;));\n            user.setPassword(req.getParameter(&quot;password&quot;));\n            dao.addUser(user);\n            resp.sendRedirect(&quot;login.jsp&quot;);\n        } catch (Exception e) {\n            resp.getWriter().write(&quot;\u6ce8\u518c\u5931\u8d25&quot;);\n        }\n    }\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 \u767b\u5f55<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n@WebServlet(&quot;\/LoginServlet&quot;)\npublic class LoginServlet extends HttpServlet {\n    protected void doPost(HttpServletRequest req, HttpServletResponse resp)\n            throws IOException {\n        try {\n            UserDao dao = new UserDao();\n            User user = dao.login(\n                req.getParameter(&quot;username&quot;),\n                req.getParameter(&quot;password&quot;)\n            );\n            if (user != null) {\n                req.getSession().setAttribute(&quot;user&quot;, user);\n                resp.sendRedirect(&quot;UserListServlet&quot;);\n            } else {\n                resp.getWriter().write(&quot;\u767b\u5f55\u5931\u8d25&quot;);\n            }\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 \u7528\u6237\u5217\u8868\uff08\u67e5\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n@WebServlet(&quot;\/UserListServlet&quot;)\npublic class UserListServlet extends HttpServlet {\n    protected void doGet(HttpServletRequest req, HttpServletResponse resp)\n            throws IOException, ServletException {\n        try {\n            UserDao dao = new UserDao();\n            req.setAttribute(&quot;list&quot;, dao.findAll());\n            req.getRequestDispatcher(&quot;userList.jsp&quot;).forward(req, resp);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 \u5220\u9664<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n@WebServlet(&quot;\/UserDeleteServlet&quot;)\npublic class UserDeleteServlet extends HttpServlet {\n    protected void doGet(HttpServletRequest req, HttpServletResponse resp)\n            throws IOException {\n        try {\n            new UserDao().delete(\n                Integer.parseInt(req.getParameter(&quot;id&quot;))\n            );\n            resp.sendRedirect(&quot;UserListServlet&quot;);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5\ufe0f\u20e3 \u4fee\u6539\uff08\u67e5 + \u6539\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n@WebServlet(&quot;\/UserEditServlet&quot;)\npublic class UserEditServlet extends HttpServlet {\n\n    protected void doGet(HttpServletRequest req, HttpServletResponse resp)\n            throws ServletException, IOException {\n        try {\n            User user = new UserDao()\n                .findById(Integer.parseInt(req.getParameter(&quot;id&quot;)));\n            req.setAttribute(&quot;user&quot;, user);\n            req.getRequestDispatcher(&quot;userEdit.jsp&quot;).forward(req, resp);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n\n    protected void doPost(HttpServletRequest req, HttpServletResponse resp)\n            throws IOException {\n        try {\n            User user = new User(\n                Integer.parseInt(req.getParameter(&quot;id&quot;)),\n                req.getParameter(&quot;username&quot;),\n                req.getParameter(&quot;password&quot;)\n            );\n            new UserDao().update(user);\n            resp.sendRedirect(&quot;UserListServlet&quot;);\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u516b\u3001JSP \u9875\u9762<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">\u767b\u5f55\uff08login.jsp\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;form action=&quot;LoginServlet&quot; method=&quot;post&quot;&gt;\n\u7528\u6237\u540d\uff1a&amp;lt;input name=&quot;username&quot;&gt;&amp;lt;br&gt;\n\u5bc6\u7801\uff1a&amp;lt;input type=&quot;password&quot; name=&quot;password&quot;&gt;&amp;lt;br&gt;\n&amp;lt;button&gt;\u767b\u5f55&amp;lt;\/button&gt;\n&amp;lt;\/form&gt;\n&amp;lt;a href=&quot;register.jsp&quot;&gt;\u6ce8\u518c&amp;lt;\/a&gt;\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u6ce8\u518c\uff08register.jsp\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;form action=&quot;RegisterServlet&quot; method=&quot;post&quot;&gt;\n\u7528\u6237\u540d\uff1a&amp;lt;input name=&quot;username&quot;&gt;&amp;lt;br&gt;\n\u5bc6\u7801\uff1a&amp;lt;input type=&quot;password&quot; name=&quot;password&quot;&gt;&amp;lt;br&gt;\n&amp;lt;button&gt;\u6ce8\u518c&amp;lt;\/button&gt;\n&amp;lt;\/form&gt;\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u7528\u6237\u5217\u8868\uff08userList.jsp\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;%@ page import=&quot;java.util.*,entity.User&quot; %&gt;\n&amp;lt;table border=&quot;1&quot;&gt;\n&amp;lt;tr&gt;&amp;lt;th&gt;ID&amp;lt;\/th&gt;&amp;lt;th&gt;\u7528\u6237\u540d&amp;lt;\/th&gt;&amp;lt;th&gt;\u64cd\u4f5c&amp;lt;\/th&gt;&amp;lt;\/tr&gt;\n&amp;lt;%\nfor(User u : (List&amp;lt;User&gt;)request.getAttribute(&quot;list&quot;)){\n%&gt;\n&amp;lt;tr&gt;\n&amp;lt;td&gt;&amp;lt;%=u.getId()%&gt;&amp;lt;\/td&gt;\n&amp;lt;td&gt;&amp;lt;%=u.getUsername()%&gt;&amp;lt;\/td&gt;\n&amp;lt;td&gt;\n&amp;lt;a href=&quot;UserEditServlet?id=&amp;lt;%=u.getId()%&gt;&quot;&gt;\u7f16\u8f91&amp;lt;\/a&gt;\n&amp;lt;a href=&quot;UserDeleteServlet?id=&amp;lt;%=u.getId()%&gt;&quot;&gt;\u5220\u9664&amp;lt;\/a&gt;\n&amp;lt;\/td&gt;\n&amp;lt;\/tr&gt;\n&amp;lt;% } %&gt;\n&amp;lt;\/table&gt;\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u4fee\u6539\uff08userEdit.jsp\uff09<\/h2>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n&amp;lt;%@ page import=&quot;entity.User&quot; %&gt;\n&amp;lt;%\nUser u = (User)request.getAttribute(&quot;user&quot;);\n%&gt;\n&amp;lt;form action=&quot;UserEditServlet&quot; method=&quot;post&quot;&gt;\n&amp;lt;input type=&quot;hidden&quot; name=&quot;id&quot; value=&quot;&amp;lt;%=u.getId()%&gt;&quot;&gt;\n\u7528\u6237\u540d\uff1a&amp;lt;input name=&quot;username&quot; value=&quot;&amp;lt;%=u.getUsername()%&gt;&quot;&gt;&amp;lt;br&gt;\n\u5bc6\u7801\uff1a&amp;lt;input name=&quot;password&quot; value=&quot;&amp;lt;%=u.getPassword()%&gt;&quot;&gt;&amp;lt;br&gt;\n&amp;lt;button&gt;\u4fdd\u5b58&amp;lt;\/button&gt;\n&amp;lt;\/form&gt;\n\n<\/pre><\/div>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u4e5d\u3001\u5b8c\u6574\u6d41\u7a0b\uff08\u7b54\u8fa9\u76f4\u63a5\u80cc\uff09<\/h1>\n\n\n\n<p>1\ufe0f\u20e3 JSP \u63d0\u4f9b\u754c\u9762<br>2\ufe0f\u20e3 Servlet \u63a5\u6536\u8bf7\u6c42<br>3\ufe0f\u20e3 DAO \u64cd\u4f5c MySQL<br>4\ufe0f\u20e3 ResultSet \u2192 Java \u5bf9\u8c61<br>5\ufe0f\u20e3 JSP \u5c55\u793a\u6570\u636e<br>6\ufe0f\u20e3 Session \u7ba1\u7406\u767b\u5f55\u72b6\u6001<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h1 class=\"wp-block-heading\">\u5341\u3001\u5982\u679c\u4f60\u8981\u300c\u76f4\u63a5\u4ea4\u4f5c\u4e1a\u300d<\/h1>\n\n\n\n<p>\u6211\u53ef\u4ee5\u5e2e\u4f60\ud83d\udc47<br>\u2714 <strong>\u5347\u7ea7\u6210 JSTL + EL\uff08\u53bb Scriptlet\uff09<\/strong><br>\u2714 <strong>\u52a0\u52a8\u6001\u80cc\u666f + \u7f8e\u5316\u9875\u9762<\/strong><br>\u2714 <strong>\u5199\u8bfe\u7a0b\u8bbe\u8ba1\u62a5\u544a\uff088000 \u5b57\uff09<\/strong><br>\u2714 <strong>\u6253\u5305 IDEA \/ Eclipse \u9879\u76ee<\/strong><br>\u2714 <strong>\u52a0\u767b\u5f55\u62e6\u622a\u5668 Filter<\/strong><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u9762\u7ed9\u4f60\u4e00\u5957**\u300cJSP + Servlet + MySQL \u767b\u5f55\u6ce8\u518c\u7cfb\u7edf\u3010\u5b8c\u6574&#8230; <a class=\"more-link\" href=\"https:\/\/www.52runoob.com\/index.php\/2026\/01\/09\/jsp%e7%99%bb%e5%bd%95%e6%b3%a8%e5%86%8c%e5%ae%8c%e6%95%b4%e5%ae%9e%e7%8e%b0%e4%bb%a3%e7%a0%81%e5%a2%9e%e5%88%a0%e6%94%b9%e6%9f%a5%e7%bd%91%e9%a1%b5%e6%95%b0%e6%8d%ae%e5%ba%93\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[54],"tags":[],"class_list":["post-1283","post","type-post","status-publish","format-standard","hentry","category-jsp"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/1283","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/comments?post=1283"}],"version-history":[{"count":1,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/1283\/revisions"}],"predecessor-version":[{"id":1284,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/posts\/1283\/revisions\/1284"}],"wp:attachment":[{"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/media?parent=1283"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/categories?post=1283"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.52runoob.com\/index.php\/wp-json\/wp\/v2\/tags?post=1283"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}