<p>{&quot;title&quot;:&quot;JSP-Servlet+Mybatis技能测试题代码:电影管理系统实现&quot;,&quot;description&quot;:&quot;本代码示例演示了如何使用JSP-Servlet+Mybatis框架构建一个简单的电影管理系统,涵盖了数据库操作、列表展示、添加、修改、删除、数据验证等功能。&quot;,&quot;keywords&quot;:&quot;JSP, Servlet, Mybatis, 电影管理系统, 数据库操作, 列表展示, 添加, 修改, 删除, 数据验证, 代码示例, 技能测试题&quot;,&quot;content&quot;:&quot;以下是一个简单的JSP-Servlet+Mybatis技能测试题的代码示例:\n\n1. 启动mysql数据库,创建两张表: 电影表、电影分类表\n<code>sql\nCREATE TABLE movie (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL,\n    category_id INT NOT NULL,\n    release_date DATE,\n    director VARCHAR(100),\n    duration INT,\n    CONSTRAINT fk_category FOREIGN KEY (category_id) REFERENCES category(id)\n);\n\nCREATE TABLE category (\n    id INT PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100) NOT NULL\n);\n</code>\n\n2. 在mysql中,手工录入分类表中的数据\n\n<code>sql\nINSERT INTO category(name) VALUES('Action');\nINSERT INTO category(name) VALUES('Comedy');\nINSERT INTO category(name) VALUES('Drama');\nINSERT INTO category(name) VALUES('Thriller');\n</code>\n\n3. 创建WEB项目,导入必要jar包\n\n在WEB-INF/lib目录下导入以下jar包:\n- mybatis.jar\n- mysql-connector-java.jar\n- javax.servlet-api.jar\n\n4. 完成列表模块功能,按照名称模糊查询\n\n在Servlet中实现以下方法:\n\n<code>java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    String keyword = request.getParameter(&quot;keyword&quot;);\n    List&lt;Movie&gt; movies = movieDao.searchMoviesByName(keyword);\n    request.setAttribute(&quot;movies&quot;, movies);\n    request.getRequestDispatcher(&quot;movies.jsp&quot;).forward(request, response);\n}\n</code>\n\n在movies.jsp中显示电影列表:\n\n```jsp\n&lt;%@ page language=&quot;java&quot; contentType=&quot;text/html; charset=UTF-8&quot; pageEncoding=&quot;UTF-8&quot;%&gt;</p>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Movies</title>
</head>
<body>
    <h1>Movies</h1>
    <form action="search" method="get">
        <input type="text" name="keyword" placeholder="Search by name">
        <button type="submit">Search</button>
    </form>
    <table>
        <tr>
            <th>ID</th>
            <th>Name</th>
            <th>Category</th>
            <th>Release Date</th>
            <th>Director</th>
            <th>Duration</th>
        </tr>
        <c:forEach items="${movies}" var="movie">
            <tr>
                <td>${movie.id}</td>
                <td>${movie.name}</td>
                <td>${movie.category.name}</td>
                <td>${movie.releaseDate}</td>
                <td>${movie.director}</td>
                <td>${movie.duration}</td>
            </tr>
        </c:forEach>
    </table>
</body>
</html>
```\n\n5. 完成添加模块功能\n\n在Servlet中实现以下方法:\n\n```java\nprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    String name = request.getParameter("name");\n    int categoryId = Integer.parseInt(request.getParameter("category"));\n    String releaseDate = request.getParameter("releaseDate");\n    String director = request.getParameter("director");\n    int duration = Integer.parseInt(request.getParameter("duration"));\n    \n    Movie movie = new Movie();\n    movie.setName(name);\n    movie.setCategory(categoryDao.getCategoryById(categoryId));\n    movie.setReleaseDate(releaseDate);\n    movie.setDirector(director);\n    movie.setDuration(duration);\n    \n    movieDao.addMovie(movie);\n    \n    response.sendRedirect("movies");\n}\n```\n\n在add_movie.jsp中显示添加电影表单:\n\n```jsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Add Movie</title>
</head>
<body>
    <h1>Add Movie</h1>
    <form action="add" method="post">
        <label>Name:</label>
        <input type="text" name="name"><br>
        <label>Category:</label>
        <select name="category">
            <c:forEach items="${categories}" var="category">
                <option value="${category.id}">${category.name}</option>
            </c:forEach>
        </select><br>
        <label>Release Date:</label>
        <input type="text" name="releaseDate"><br>
        <label>Director:</label>
        <input type="text" name="director"><br>
        <label>Duration:</label>
        <input type="text" name="duration"><br>
        <button type="submit">Add</button>
    </form>
</body>
</html>
```\n\n6. 使用ajax验证电影名称的唯一性\n\n在Servlet中实现以下方法:\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    String name = request.getParameter("name");\n    boolean isUnique = movieDao.checkMovieNameUnique(name);\n    response.getWriter().print(isUnique);\n}\n```\n\n在add_movie.jsp中添加ajax验证:\n\n```html\n<script>
    $(document).ready(function() {\n        $("#name").blur(function() {\n            var name = $(this).val();\n            $.get("check_name", { name: name }, function(result) {\n                if (result === "true") {\n                    $("#nameError").text("Movie name already exists");\n                } else {\n                    $("#nameError").text("");\n                }\n            });\n        });\n    });\n</script>
```\n\n7. 完成修改模块功能\n\n在Servlet中实现以下方法:\n\n```java\nprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    int id = Integer.parseInt(request.getParameter("id"));\n    String name = request.getParameter("name");\n    int categoryId = Integer.parseInt(request.getParameter("category"));\n    String releaseDate = request.getParameter("releaseDate");\n    String director = request.getParameter("director");\n    int duration = Integer.parseInt(request.getParameter("duration"));\n    \n    Movie movie = movieDao.getMovieById(id);\n    movie.setName(name);\n    movie.setCategory(categoryDao.getCategoryById(categoryId));\n    movie.setReleaseDate(releaseDate);\n    movie.setDirector(director);\n    movie.setDuration(duration);\n    \n    movieDao.updateMovie(movie);\n    \n    response.sendRedirect("movies");\n}\n```\n\n在edit_movie.jsp中显示修改电影表单:\n\n```jsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Edit Movie</title>
</head>
<body>
    <h1>Edit Movie</h1>
    <form action="edit" method="post">
        <input type="hidden" name="id" value="${movie.id}">
        <label>Name:</label>
        <input type="text" name="name" value="${movie.name}"><br>
        <label>Category:</label>
        <select name="category">
            <c:forEach items="${categories}" var="category">
                <option value="${category.id}" ${movie.category.id == category.id ? 'selected' : ''}>${category.name}</option>
            </c:forEach>
        </select><br>
        <label>Release Date:</label>
        <input type="text" name="releaseDate" value="${movie.releaseDate}"><br>
        <label>Director:</label>
        <input type="text" name="director" value="${movie.director}"><br>
        <label>Duration:</label>
        <input type="text" name="duration" value="${movie.duration}"><br>
        <button type="submit">Update</button>
    </form>
</body>
</html>
```\n\n8. 完成删除模块功能\n\n在Servlet中实现以下方法:\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    int id = Integer.parseInt(request.getParameter("id"));\n    movieDao.deleteMovie(id);\n    response.sendRedirect("movies");\n}\n```\n\n在movies.jsp中添加删除按钮:\n\n```jsp\n<c:forEach items="${movies}" var="movie">
    <tr>
        <td>${movie.id}</td>
        <td>${movie.name}</td>
        <td>${movie.category.name}</td>
        <td>${movie.releaseDate}</td>
        <td>${movie.director}</td>
        <td>${movie.duration}</td>
        <td><a href="delete?id=${movie.id}">Delete</a></td>
    </tr>
</c:forEach>
```\n\n9. 在添加与修改页面中,下拉框显示所属分类,其中数据从分类表中获取\n\n在Servlet中获取分类列表:\n\n```java\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n    List<Category> categories = categoryDao.getAllCategories();\n    request.setAttribute("categories", categories);\n    request.getRequestDispatcher("add_movie.jsp").forward(request, response);\n}\n```\n\n在add_movie.jsp和edit_movie.jsp中显示分类下拉框:\n\n```jsp\n<label>Category:</label>
<select name="category">
    <c:forEach items="${categories}" var="category">
        <option value="${category.id}">${category.name}</option>
    </c:forEach>
</select><br>
```\n\n10. 代码规范及注释\n\n在代码中按照Java编码规范进行命名和格式化,并在关键地方添加注释解释代码的作用和实现方法。

原文地址: https://www.cveoy.top/t/topic/p54v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录