如何在 jsp 应用程序管理其他 servlet 中将 servlet 作为第一页加载
How to load servlet as first page in jsp application manage other servlets
我想在我的简单 jsp 应用程序中加载一个 servlet 作为第一页。因此,我在此 URL 映射中添加了 servlet。
<servlet>
<servlet-name>StudentController</servlet-name>
<servlet-class>com.stu.controller.StudentController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StudentController</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这就是上面提到的servlet的Get方法。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path = request.getServletPath();
if (path.equals("/addstudent")) {
createStudent(request, response);
......
else {
searchAll(request, response);
}
}
protected void searchAll(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<StudentDTO> coList = null;
coList = StudentDAO.searchStudentList();
if (coList != null) {
request.setAttribute("stulist", coList);
} else {
request.setAttribute("msg", "No Record Found.");
}
RequestDispatcher rd = request.getRequestDispatcher("home.jsp");
rd.forward(request, response);
}
这按预期工作,但问题是我尝试创建另一个名为 CourseController 的 servlet,并将其映射到 web.xml
<servlet>
<servlet-name>CourseController</servlet-name>
<servlet-class>com.stu.controller.CourseController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CourseController</servlet-name>
<url-pattern>/course/</url-pattern>
</servlet-mapping>
而servlet的Get和之前一样。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path = request.getServletPath();
if (path.equals("/addcourse")) {
createCourse(request, response);
......
}
并且我尝试在 home.jsp 页面中使用锚标记访问 servlet。
<a href="${pageContext.request.contextPath}/newstudent">Create Student</a>
<br/>
<a href="${pageContext.request.contextPath}/course/newcourse/">Create Course</a>
但是我在尝试连接 CourseController servlet.
时一直收到 404 错误
这与 StudentController servlet 中的 searchAll 方法有关 return。我知道这里的映射有问题。但我不知道那是什么。
请帮忙。
谢谢你。
您需要配置唯一的 url 模式,因此如果您有多个 servlet,“/”将无法工作。
假设您的第一个 servlet 具有 url-模式“/newstudent”,您可以将其配置为欢迎文件:
<welcome-file-list>
<welcome-file>newstudent</welcome-file>
</welcome-file-list>
我想在我的简单 jsp 应用程序中加载一个 servlet 作为第一页。因此,我在此 URL 映射中添加了 servlet。
<servlet>
<servlet-name>StudentController</servlet-name>
<servlet-class>com.stu.controller.StudentController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>StudentController</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这就是上面提到的servlet的Get方法。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path = request.getServletPath();
if (path.equals("/addstudent")) {
createStudent(request, response);
......
else {
searchAll(request, response);
}
}
protected void searchAll(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<StudentDTO> coList = null;
coList = StudentDAO.searchStudentList();
if (coList != null) {
request.setAttribute("stulist", coList);
} else {
request.setAttribute("msg", "No Record Found.");
}
RequestDispatcher rd = request.getRequestDispatcher("home.jsp");
rd.forward(request, response);
}
这按预期工作,但问题是我尝试创建另一个名为 CourseController 的 servlet,并将其映射到 web.xml
<servlet>
<servlet-name>CourseController</servlet-name>
<servlet-class>com.stu.controller.CourseController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CourseController</servlet-name>
<url-pattern>/course/</url-pattern>
</servlet-mapping>
而servlet的Get和之前一样。
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String path = request.getServletPath();
if (path.equals("/addcourse")) {
createCourse(request, response);
......
}
并且我尝试在 home.jsp 页面中使用锚标记访问 servlet。
<a href="${pageContext.request.contextPath}/newstudent">Create Student</a>
<br/>
<a href="${pageContext.request.contextPath}/course/newcourse/">Create Course</a>
但是我在尝试连接 CourseController servlet.
时一直收到 404 错误这与 StudentController servlet 中的 searchAll 方法有关 return。我知道这里的映射有问题。但我不知道那是什么。
请帮忙。
谢谢你。
您需要配置唯一的 url 模式,因此如果您有多个 servlet,“/”将无法工作。
假设您的第一个 servlet 具有 url-模式“/newstudent”,您可以将其配置为欢迎文件:
<welcome-file-list>
<welcome-file>newstudent</welcome-file>
</welcome-file-list>