@WebServlet("/admin/searchke") public class SearchKe extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String searchKey = req.getParameter("searchKey"); CoursesDao courseDao = new CoursesDao(); if (searchKey != ""){ Courses courses = courseDao.getCourseByISBN(searchKey); List<Courses> courseList = new ArrayList<>(); if (courses != null){ courseList.add(courses); } req.setAttribute("courses", courseList); req.getRequestDispatcher("/WEB-INF/pages/manage-course.jsp").forward(req, resp); }else { CoursesService courseService = new CoursesService(); List<Courses> courses = courseService.getCourseList(); req.setAttribute("courses", courses); req.getRequestDispatcher("/WEB-INF/pages/manage-course.jsp").forward(req, resp); } } }
时间: 2024-02-14 09:24:36 浏览: 129
这是一个基于Servlet的Java Web应用程序中的SearchKe类。它处理/admin/searchke的GET请求,获取名为searchKey的参数并将其用于从CoursesDao获取课程。如果searchKey不为空,则只返回与searchKey匹配的课程;否则,返回所有课程。最后,将课程列表作为属性添加到请求中,并将请求转发到manage-course.jsp页面。
相关问题
@WebServlet("/*") public class StartServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { RequestDispatcher dispatcher = req.getRequestDispatcher("/main.html"); dispatcher.forward(req, resp); } } 这个servlet执行后,为什么显示的main.html没有css格式,但是我在本地打开main.html文件的时候它的静态页面css是正常加载的
这可能是因为在servlet中将请求转发到main.html时,路径没有正确处理。在servlet中,请求转发的路径是相对于servlet上下文的。所以,如果你在main.html中使用的是相对路径引用CSS文件,那么在servlet中请求转发后,相对路径就会改变,导致CSS文件无法加载。
你可以尝试在main.html中使用绝对路径来引用CSS文件,或者在servlet中使用绝对路径来转发请求。例如:
```java
@WebServlet("/*")
public class StartServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/main.html");
dispatcher.forward(req, resp);
}
}
```
在这个例子中,我们将请求转发到了WEB-INF文件夹下的main.html文件,这样就可以使用绝对路径来引用CSS文件了。
@WebServlet("/admin/searchLikekey") public class SearchLikeKey extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String searchKey = req.getParameter("searchKey"); CoursesDao courseDao = new CoursesDao(); if (searchKey != ""){ List<Courses> courseList = courseDao.getCourseByLikeISBN(searchKey); req.setAttribute("courses", courseList); req.getRequestDispatcher("/WEB-INF/pages/te-course.jsp").forward(req, resp); }else { CoursesService courseService = new CoursesService(); List<Courses> courses = courseService.getCourseList(); req.setAttribute("courses", courses); req.getRequestDispatcher("/WEB-INF/pages/te-course.jsp").forward(req, resp); } } }
这是一个 Java Servlet,它处理了一个 URL 为 "/admin/searchLikekey" 的 GET 请求。在 doGet 方法中,它首先获取请求参数 "searchKey" 的值。然后,它创建了一个 CoursesDao 对象,并使用 getCoursesByLikeISBN 方法来获取一个以 searchKey 为关键字的课程列表。如果 searchKey 不为空,它将这个课程列表设置为请求属性 "courses",然后将请求转发到 "/WEB-INF/pages/te-course.jsp" 页面。如果 searchKey 为空,它会调用 CoursesService 类的 getCourseList 方法来获取所有的课程列表,并将其设置为请求属性 "courses",然后将请求转发到 "/WEB-INF/pages/te-course.jsp" 页面。
阅读全文