springMvc请求路径解析
⼀开始我的代码是:
//index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
springmvc考试选择题<body>
<h2>Hello World!</h2>
<%--href="some"时是到发布的项⽬⽬录下:访问⽹址是localhost/springmvc/some
href="/some"是直接到服务器下:访问⽹址是localhost/some--%>
<a href="some.do">请求</a>
</body>
</html>
<!--中央调度器-->
<servlet>
<servlet-name>springmvc</servlet-name>
<!--写的那个servlet-->
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>l</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<!--servlet的映射路径:是jsp通过这个路径请求后,再通过springmvcservlet-class是谁-->
<!--写”/“会把所有的静态请求都交给中央调度器,所以如果ggg.html也会给handler,会发⽣不到404的错误,不建议使⽤-->
<!--如果写”/*“的话,会把所有的请求都交给中央调度器,包括动态index.jsp,所以不能使⽤-->
<!--⽤*.do或者*.go可以解决这个问题:1.让提交请求的路径后⾯加上.do 例如:<a href="some.do">
2.在注册的时候也写上"/请求路径.do"
3.<url-pattern>*.do</url-pattern>
即所有后缀为.do的请求都可以被中央调度器接收了,不加就不⽤接收了-->
<!---->
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd">
<!--注册处理器:bean的id必须以"/"开头,因为id是⼀个路径-->
<bean id="/some.do" class="com.abc.handler.SomeHandler"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
</beans>
//someHandler.java
public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv = new ModelAndView();
//setViewName:响应视图叫什么名字,这个名字应该写相对于webapp路径下的名称(发布到服务器时项⽬的根⽬录)
mv.setViewName("welcome");
mv.addObject("message","helloSpringMvc");
return mv;
}
}
现在修改的是index.jsp⾥的<a href="some.do">,修改为<a href="/some.do">,发现访问⽹址是localhost/some,待续。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论