以下是一个简单的JSP-Servlet+Mybatis技能测试题代码示例:

  1. 创建电影表和电影分类表的SQL语句:
CREATE TABLE movie (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100),
  category_id INT
);

CREATE TABLE category (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100)
);
  1. 在mysql中手工录入分类表中的数据。
INSERT INTO category (name) VALUES ('Action');
INSERT INTO category (name) VALUES ('Comedy');
INSERT INTO category (name) VALUES ('Drama');
  1. 创建WEB项目,导入必要的jar包。

在项目的WEB-INF/lib目录下导入以下jar包:

  • mybatis.jar
  • mysql-connector-java.jar
  • javax.servlet.jar
  1. 列表模块功能,按照名称模糊查询。

首先在Movie类中定义电影的属性和对应的getter和setter方法:

public class Movie {
    private int id;
    private String name;
    private int categoryId;

    // getter and setter methods
}

然后在MovieMapper接口中定义查询电影列表的方法:

public interface MovieMapper {
    List<Movie> getMoviesByName(String keyword);
}

接下来在MovieMapper.xml中实现该方法:

<select id="getMoviesByName" parameterType="String" resultType="Movie">
    SELECT * FROM movie WHERE name LIKE CONCAT('%', #{keyword}, '%')
</select>

MovieServlet中处理请求,并调用Mybatis查询电影列表:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String keyword = request.getParameter("keyword");
    List<Movie> movies = movieMapper.getMoviesByName(keyword);
    request.setAttribute("movies", movies);
    request.getRequestDispatcher("movies.jsp").forward(request, response);
}

movies.jsp页面中展示查询结果:

<%-- movies.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Movies</title>
</head>
<body>
    <h1>Movies</h1>
    <form action="movies" method="GET">
        <input type="text" name="keyword" placeholder="Search by name" />
        <input type="submit" value="Search" />
    </form>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Category</th>
            </tr>
        </thead>
        <tbody>
            <% for (Movie movie : (List<Movie>)request.getAttribute("movies")) { %>
            <tr>
                <td><%= movie.getId() %></td>
                <td><%= movie.getName() %></td>
                <td><%= movie.getCategoryId() %></td>
            </tr>
            <% } %>
        </tbody>
    </table>
</body>
</html>
  1. 添加模块功能。

MovieMapper接口中定义添加电影的方法:

public interface MovieMapper {
    void addMovie(Movie movie);
}

接下来在MovieMapper.xml中实现该方法:

<insert id="addMovie" parameterType="Movie">
    INSERT INTO movie (name, category_id) VALUES (#{name}, #{categoryId})
</insert>

MovieServlet中处理请求,并调用Mybatis添加电影:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = request.getParameter("name");
    int categoryId = Integer.parseInt(request.getParameter("categoryId"));
    Movie movie = new Movie();
    movie.setName(name);
    movie.setCategoryId(categoryId);
    movieMapper.addMovie(movie);
    response.sendRedirect("movies");
}

add_movie.jsp页面中展示添加电影表单:

<%-- add_movie.jsp --%>
<%@ 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_movie" method="POST">
        <input type="text" name="name" placeholder="Movie name" />
        <select name="categoryId">
            <% for (Category category : categories) { %>
            <option value="<%= category.getId() %>"><%= category.getName() %></option>
            <% } %>
        </select>
        <input type="submit" value="Add" />
    </form>
</body>
</html>
  1. 使用ajax验证电影名称的唯一性。

MovieMapper接口中定义查询电影名称是否存在的方法:

public interface MovieMapper {
    int countMoviesByName(String name);
}

接下来在MovieMapper.xml中实现该方法:

<select id="countMoviesByName" parameterType="String" resultType="int">
    SELECT COUNT(*) FROM movie WHERE name = #{name}
</select>

MovieServlet中处理ajax请求,并调用Mybatis查询电影名称是否存在:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = request.getParameter("name");
    int count = movieMapper.countMoviesByName(name);
    response.getWriter().print(count);
}

add_movie.jsp页面中使用ajax验证电影名称的唯一性:

<%-- add_movie.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Add Movie</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <script>
        $(function() {
            $("input[name='name']").on("blur", function() {
                var name = $(this).val();
                $.get("check_movie_name", { name: name }, function(count) {
                    if (count > 0) {
                        alert("Movie name already exists!");
                    }
                });
            });
        });
    </script>
</head>
<body>
    <h1>Add Movie</h1>
    <form action="add_movie" method="POST">
        <input type="text" name="name" placeholder="Movie name" />
        <select name="categoryId">
            <% for (Category category : categories) { %>
            <option value="<%= category.getId() %>"><%= category.getName() %></option>
            <% } %>
        </select>
        <input type="submit" value="Add" />
    </form>
</body>
</html>
  1. 修改模块功能。

MovieMapper接口中定义修改电影的方法:

public interface MovieMapper {
    void updateMovie(Movie movie);
}

接下来在MovieMapper.xml中实现该方法:

<update id="updateMovie" parameterType="Movie">
    UPDATE movie SET name = #{name}, category_id = #{categoryId} WHERE id = #{id}
</update>

MovieServlet中处理请求,并调用Mybatis修改电影:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    int id = Integer.parseInt(request.getParameter("id"));
    String name = request.getParameter("name");
    int categoryId = Integer.parseInt(request.getParameter("categoryId"));
    Movie movie = new Movie();
    movie.setId(id);
    movie.setName(name);
    movie.setCategoryId(categoryId);
    movieMapper.updateMovie(movie);
    response.sendRedirect("movies");
}

edit_movie.jsp页面中展示修改电影表单:

<%-- edit_movie.jsp --%>
<%@ 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_movie" method="POST">
        <input type="hidden" name="id" value="<%= movie.getId() %>" />
        <input type="text" name="name" value="<%= movie.getName() %>" />
        <select name="categoryId">
            <% for (Category category : categories) { %>
            <option value="<%= category.getId() %>" <% if (category.getId() == movie.getCategoryId()) { %>selected<% } %>><%= category.getName() %></option>
            <% } %>
        </select>
        <input type="submit" value="Save" />
    </form>
</body>
</html>
  1. 删除模块功能。

MovieMapper接口中定义删除电影的方法:

public interface MovieMapper {
    void deleteMovie(int id);
}

接下来在MovieMapper.xml中实现该方法:

<delete id="deleteMovie" parameterType="int">
    DELETE FROM movie WHERE id = #{id}
</delete>

MovieServlet中处理请求,并调用Mybatis删除电影:

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    int id = Integer.parseInt(request.getParameter("id"));
    movieMapper.deleteMovie(id);
    response.sendRedirect("movies");
}

movies.jsp页面中添加删除电影的链接:

<%-- movies.jsp --%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Movies</title>
</head>
<body>
    <h1>Movies</h1>
    <form action="movies" method="GET">
        <input type="text" name="keyword" placeholder="Search by name" />
        <input type="submit" value="Search" />
    </form>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Category</th>
                <th>Actions</th>
            </tr>
        </thead>
        <tbody>
            <% for (Movie movie : (List<Movie>)request.getAttribute("movies")) { %>
            <tr>
                <td><%= movie.getId() %></td>
                <td><%= movie.getName() %></td>
                <td><%= movie.getCategoryId() %></td>
                <td>
                    <a href="edit_movie?id=<%= movie.getId() %>">Edit</a>
                    <form action="delete_movie" method="POST" style="display: inline;">
                        <input type="hidden" name="id" value="<%= movie.getId() %>" />
                        <input type="submit" value="Delete" onclick="return confirm('Are you sure?')" />
                    </form>
                </td>
            </tr>
            <% } %>
        </tbody>
    </table>
</body>
</html>
  1. 在添加与修改页面中,下拉框显示所属分类,其中数据从分类表中获取。

MovieServlet中查询分类列表并传递给页面:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<Category> categories = categoryMapper.getCategories();
    request.setAttribute("categories", categories);
    request.getRequestDispatcher("add_movie.jsp").forward(request, response);
}

add_movie.jsp页面中展示下拉框:

<%-- add_movie.jsp --%>
<%@ 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_movie" method="POST">
        <input type="text" name="name" placeholder="Movie name" />
        <select name="categoryId">
            <% for (Category category : (List<Category>)request.getAttribute("categories")) { %>
            <option value="<%= category.getId() %>"><%= category.getName() %></option>
            <% } %>
        </select>
        <input type="submit" value="Add" />
    </form>
</body>
</html>
  1. 代码规范及注释。

在代码中添加适当的注释,遵循命名规范,保持代码的可读性和易于维护性

JSP-Servlet+Mybatis技能测试题代码怎么写1	启动mysql数据库创建两张表 电影表、电影分类表10分2	在mysql中手工录入分类表中的数据10分3	创建WEB项目导入必要jar包10分4	完成列表模块功能按照名称模糊查询10分5	完成添加模块功能10分6	使用ajax验证电影名称的唯一性10分7	完成修改模块功能10分8	完成删除模块功能10分9	在添加与修改页面中下拉框显示所

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

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