JSP-Servlet+Mybatis技能测试题代码示例:电影管理系统
下面是一个简单的JSP-Servlet+Mybatis的技能测试题的参考代码,实现一个简单的电影管理系统,包含电影列表、添加、修改、删除等功能:\n\n1. 创建电影表和电影分类表\nsql\nCREATE TABLE movie (\nid INT PRIMARY KEY AUTO_INCREMENT,\nname VARCHAR(100),\ncategory_id INT,\nrelease_date DATE,\nduration INT\n);\n\nCREATE TABLE category (\nid INT PRIMARY KEY AUTO_INCREMENT,\nname VARCHAR(100)\n);\n\n\n2. 在分类表中手动插入数据\n\n3. 创建WEB项目,并导入必要的jar包\n\n4. 完成列表模块功能,按照名称模糊查询\n\nMovie.java\njava\npublic class Movie {\nprivate int id;\nprivate String name;\nprivate int categoryId;\nprivate Date releaseDate;\nprivate int duration;\n\n// getters and setters\n}\n\n\nMovieMapper.xml\nxml\n<mapper namespace="com.example.mapper.MovieMapper">\n<select id="getMoviesByName" resultType="com.example.model.Movie">\nSELECT * FROM movie WHERE name LIKE CONCAT('%', #{name}, '%')\n</select>\n</mapper>\n\n\nMovieMapper.java\njava\npublic interface MovieMapper {\nList<Movie> getMoviesByName(String name);\n}\n\n\nMovieServlet.java\njava\n@WebServlet("/movies")\npublic class MovieServlet extends HttpServlet {\nprivate MovieMapper movieMapper;\n\npublic void init() {\nSqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();\ntry (SqlSession session = sqlSessionFactory.openSession()) {\nmovieMapper = session.getMapper(MovieMapper.class);\n}\n}\n\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nString name = request.getParameter("name");\nList<Movie> movies = movieMapper.getMoviesByName(name);\n\nrequest.setAttribute("movies", movies);\nrequest.getRequestDispatcher("movies.jsp").forward(request, response);\n}\n}\n\n\nmovies.jsp\njsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n<title>Movies</title>\n</head>\n<body>\n<h1>Movie List</h1>\n<form action="movies" method="GET">\n<label for="name">Name:</label>\n<input type="text" id="name" name="name">\n<input type="submit" value="Search">\n</form>\n<table>\n<tr>\n<th>ID</th>\n<th>Name</th>\n<th>Category</th>\n<th>Release Date</th>\n<th>Duration</th>\n</tr>\n<c:forEach var="movie" items="${movies}">\n<tr>\n<td>${movie.id}</td>\n<td>${movie.name}</td>\n<td>${movie.categoryId}</td>\n<td>${movie.releaseDate}</td>\n<td>${movie.duration}</td>\n</tr>\n</c:forEach>\n</table>\n</body>\n</html>\n\n\n5. 完成添加模块功能\n\nadd_movie.jsp\njsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n<title>Add Movie</title>\n</head>\n<body>\n<h1>Add Movie</h1>\n<form action="addMovie" method="POST">\n<label for="name">Name:</label>\n<input type="text" id="name" name="name"><br>\n<label for="category">Category:</label>\n<select id="category" name="categoryId">\n<c:forEach var="category" items="${categories}">\n<option value="${category.id}">${category.name}</option>\n</c:forEach>\n</select><br>\n<label for="releaseDate">Release Date:</label>\n<input type="date" id="releaseDate" name="releaseDate"><br>\n<label for="duration">Duration:</label>\n<input type="number" id="duration" name="duration"><br>\n<input type="submit" value="Add">\n</form>\n</body>\n</html>\n\n\nAddMovieServlet.java\njava\n@WebServlet("/addMovie")\npublic class AddMovieServlet extends HttpServlet {\nprivate MovieMapper movieMapper;\nprivate CategoryMapper categoryMapper;\n\npublic void init() {\nSqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();\ntry (SqlSession session = sqlSessionFactory.openSession()) {\nmovieMapper = session.getMapper(MovieMapper.class);\ncategoryMapper = session.getMapper(CategoryMapper.class);\n}\n}\n\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nList<Category> categories = categoryMapper.getAllCategories();\nrequest.setAttribute("categories", categories);\nrequest.getRequestDispatcher("add_movie.jsp").forward(request, response);\n}\n\nprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nString name = request.getParameter("name");\nint categoryId = Integer.parseInt(request.getParameter("categoryId"));\nDate releaseDate = Date.valueOf(request.getParameter("releaseDate"));\nint duration = Integer.parseInt(request.getParameter("duration"));\n\nMovie movie = new Movie();\nmovie.setName(name);\nmovie.setCategoryId(categoryId);\nmovie.setReleaseDate(releaseDate);\nmovie.setDuration(duration);\n\nmovieMapper.addMovie(movie);\n\nresponse.sendRedirect("movies");\n}\n}\n\n\n6. 使用Ajax验证电影名称的唯一性\n\nAddMovieServlet.java\njava\n@WebServlet("/addMovie")\npublic class AddMovieServlet extends HttpServlet {\nprivate MovieMapper movieMapper;\nprivate CategoryMapper categoryMapper;\n\npublic void init() {\nSqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();\ntry (SqlSession session = sqlSessionFactory.openSession()) {\nmovieMapper = session.getMapper(MovieMapper.class);\ncategoryMapper = session.getMapper(CategoryMapper.class);\n}\n}\n\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nList<Category> categories = categoryMapper.getAllCategories();\nrequest.setAttribute("categories", categories);\nrequest.getRequestDispatcher("add_movie.jsp").forward(request, response);\n}\n\nprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nString name = request.getParameter("name");\nint categoryId = Integer.parseInt(request.getParameter("categoryId"));\nDate releaseDate = Date.valueOf(request.getParameter("releaseDate"));\nint duration = Integer.parseInt(request.getParameter("duration"));\n\nMovie movie = new Movie();\nmovie.setName(name);\nmovie.setCategoryId(categoryId);\nmovie.setReleaseDate(releaseDate);\nmovie.setDuration(duration);\n\n// Check if movie name already exists\nif (movieMapper.getMovieByName(name) != null) {\nresponse.getWriter().write("Movie name already exists");\nreturn;\n}\n\nmovieMapper.addMovie(movie);\n\nresponse.sendRedirect("movies");\n}\n}\n\n\nadd_movie.jsp\njsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n<title>Add Movie</title>\n<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>\n<script>\n$(document).ready(function() {\n$('#name').blur(function() {\nvar name = $(this).val();\n$.ajax({\nurl: 'checkMovieName',\ntype: 'POST',\ndata: {name: name},\nsuccess: function(response) {\nif (response === 'exists') {\n$('#nameMessage').text('Movie name already exists');\n} else {\n$('#nameMessage').text('');\n}\n}\n});\n});\n});\n</script>\n</head>\n<body>\n<h1>Add Movie</h1>\n<form action="addMovie" method="POST">\n<label for="name">Name:</label>\n<input type="text" id="name" name="name">\n<span id="nameMessage"></span><br>\n<label for="category">Category:</label>\n<select id="category" name="categoryId">\n<c:forEach var="category" items="${categories}">\n<option value="${category.id}">${category.name}</option>\n</c:forEach>\n</select><br>\n<label for="releaseDate">Release Date:</label>\n<input type="date" id="releaseDate" name="releaseDate"><br>\n<label for="duration">Duration:</label>\n<input type="number" id="duration" name="duration"><br>\n<input type="submit" value="Add">\n</form>\n</body>\n</html>\n\n\nCheckMovieNameServlet.java\njava\n@WebServlet("/checkMovieName")\npublic class CheckMovieNameServlet extends HttpServlet {\nprivate MovieMapper movieMapper;\n\npublic void init() {\nSqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();\ntry (SqlSession session = sqlSessionFactory.openSession()) {\nmovieMapper = session.getMapper(MovieMapper.class);\n}\n}\n\nprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nString name = request.getParameter("name");\n\nif (movieMapper.getMovieByName(name) != null) {\nresponse.getWriter().write("exists");\n} else {\nresponse.getWriter().write("not exists");\n}\n}\n}\n\n\n7. 完成修改模块功能\n\nedit_movie.jsp\njsp\n<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>\n<!DOCTYPE html>\n<html>\n<head>\n<meta charset="UTF-8">\n<title>Edit Movie</title>\n</head>\n<body>\n<h1>Edit Movie</h1>\n<form action="editMovie" method="POST">\n<input type="hidden" name="id" value="${movie.id}">\n<label for="name">Name:</label>\n<input type="text" id="name" name="name" value="${movie.name}"><br>\n<label for="category">Category:</label>\n<select id="category" name="categoryId">\n<c:forEach var="category" items="${categories}">\n<option value="${category.id}" <c:if test="${category.id == movie.categoryId}">selected</c:if>>${category.name}</option>\n</c:forEach>\n</select><br>\n<label for="releaseDate">Release Date:</label>\n<input type="date" id="releaseDate" name="releaseDate" value="${movie.releaseDate}"><br>\n<label for="duration">Duration:</label>\n<input type="number" id="duration" name="duration" value="${movie.duration}"><br>\n<input type="submit" value="Save">\n</form>\n</body>\n</html>\n\n\nEditMovieServlet.java\njava\n@WebServlet("/editMovie")\npublic class EditMovieServlet extends HttpServlet {\nprivate MovieMapper movieMapper;\nprivate CategoryMapper categoryMapper;\n\npublic void init() {\nSqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();\ntry (SqlSession session = sqlSessionFactory.openSession()) {\nmovieMapper = session.getMapper(MovieMapper.class);\ncategoryMapper = session.getMapper(CategoryMapper.class);\n}\n}\n\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nint id = Integer.parseInt(request.getParameter("id"));\nMovie movie = movieMapper.getMovieById(id);\nList<Category> categories = categoryMapper.getAllCategories();\n\nrequest.setAttribute("movie", movie);\nrequest.setAttribute("categories", categories);\nrequest.getRequestDispatcher("edit_movie.jsp").forward(request, response);\n}\n\nprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nint id = Integer.parseInt(request.getParameter("id"));\nString name = request.getParameter("name");\nint categoryId = Integer.parseInt(request.getParameter("categoryId"));\nDate releaseDate = Date.valueOf(request.getParameter("releaseDate"));\nint duration = Integer.parseInt(request.getParameter("duration"));\n\nMovie movie = new Movie();\nmovie.setId(id);\nmovie.setName(name);\nmovie.setCategoryId(categoryId);\nmovie.setReleaseDate(releaseDate);\nmovie.setDuration(duration);\n\nmovieMapper.updateMovie(movie);\n\nresponse.sendRedirect("movies");\n}\n}\n\n\n8. 完成删除模块功能\n\nDeleteMovieServlet.java\njava\n@WebServlet("/deleteMovie")\npublic class DeleteMovieServlet extends HttpServlet {\nprivate MovieMapper movieMapper;\n\npublic void init() {\nSqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();\ntry (SqlSession session = sqlSessionFactory.openSession()) {\nmovieMapper = session.getMapper(MovieMapper.class);\n}\n}\n\nprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\nint id = Integer.parseInt(request.getParameter("id"));\nmovieMapper.deleteMovie(id);\nresponse.sendRedirect("movies");\n}\n}\n\n\n9. 在添加与修改页面中,下拉框显示所属分类,其中数据从分类表中获取\n\nCategoryMapper.xml\nxml\n<mapper namespace="com.example.mapper.CategoryMapper">\n<select id="getAllCategories" resultType="com.example.model.Category">\nSELECT * FROM category\n</select>\n</mapper>\n\n\nCategoryMapper.java\njava\npublic interface CategoryMapper {\nList<Category> getAllCategories();\n}\n\n\n10. 代码规范及注释\n\n请根据实际情况进行代码规范和注释的添加。\n
原文地址: https://www.cveoy.top/t/topic/p5VC 著作权归作者所有。请勿转载和采集!