JSP-Servlet+Mybatis技能测试题代码:电影管理系统实现
<p>{"title":"JSP-Servlet+Mybatis技能测试题代码:电影管理系统实现","description":"本代码示例演示了如何使用JSP-Servlet+Mybatis框架构建一个简单的电影管理系统,涵盖了数据库操作、列表展示、添加、修改、删除、数据验证等功能。","keywords":"JSP, Servlet, Mybatis, 电影管理系统, 数据库操作, 列表展示, 添加, 修改, 删除, 数据验证, 代码示例, 技能测试题","content":"以下是一个简单的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("keyword");\n List<Movie> movies = movieDao.searchMoviesByName(keyword);\n request.setAttribute("movies", movies);\n request.getRequestDispatcher("movies.jsp").forward(request, response);\n}\n</code>\n\n在movies.jsp中显示电影列表:\n\n```jsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%></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 著作权归作者所有。请勿转载和采集!