这是最初 servlet 容器加载 web.xml 文件的流程。在 web.xml 中,我们将指定所有请求都由作为 DispatcherServlet 的 Spring FrontController 处理。我们通过添加以下代码来包含它
<servlet>
<servlet-name>dispatcher</servlet-name>
<servletclass>org.springframework.web.servlet.DispatcherServlet</servletclass>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
此处它指示 url 请求是否为 *.htm 它由 dispatcherServlet 处理,然后 dispatcherServlet 加载 dispatcher-servlet.xml 。我们需要通过编写特定的url请求来提及到控制器的映射,例如
<bean name="/insert.htm" class="com.controller.MyController"></bean>
所以在bean中我们提到它的请求/insert.htm
告诉servlet在提到的类中查找。您需要在ex方法上方使用@RequestMapping的Annotation
@RequestMapping("/insert.htm")
public ModelAndView insert(HttpServletRequest req,Student student)
{
String name=req.getParameter("name");
int id=Integer.parseInt(req.getParameter("id"));
student.setId(id);
return new ModelAndView("display","Student",student);//It returns a view named display with modelclass name as `Student` and model object student
}
因此,当出现 Request url 时,/insert.htm
它会执行上述方法,它只返回一个 ModelAndView 对象,只返回一个视图。它再次转到 dispatcher-servlet.xml 并查找视图解析器,要添加的正常代码是
<bean id="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver"
p:prefix="/WEB-INF/jsp/"
p:suffix=".jsp" />
因此,它从中获取逻辑视图名称并将前缀和后缀附加到它。最后它在视图中显示内容。因此它在视图解析器前缀和后缀中查找显示内容,最后返回 /WEB-INF/jsp/ display.jsp .显示jsp内容