一开始我的代码是:
1//index.jsp<%@ page contentType="text/html;charset=UTF-8" language="java" %> 2<html> 3<body> 4<h2>Hello World!</h2> 5<%--href="some"时是到发布的项目目录下找:访问网址是http://localhost/springmvc/some 6href="https://my.oschina.net/some"是直接到服务器下找:访问网址是http://localhost/some--%> 7 <a href="some.do">请求</a> 8 9</body> 10</html>
web.xml内部分
1<!--中央调度器--> 2 <servlet> 3 <servlet-name>springmvc</servlet-name> 4 <!--写的那个servlet--> 5 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 6 <init-param> 7 <param-name>contextConfigLocation</param-name> 8 <param-value>classpath:springmvc.xml</param-value> 9 </init-param> 10 </servlet> 11<servlet-mapping> 12 <servlet-name>springmvc</servlet-name> 13 <!--servlet的映射路径 :是jsp通过这个路径请求后,再通过springmvc找servlet-class是谁--> 14 <!--写”/“会把所有的静态请求都交给中央调度器,所以如果ggg.html也会给handler,会发生找不到404的错误,不建议使用--> 15 <!--如果写”/*“的话,会把所有的请求都交给中央调度器,包括动态index.jsp,所以不能使用--> 16 <!--用*.do或者*.go可以解决这个问题:1.让提交请求的路径后面加上.do 例如:<a href="some.do"> 17 2.在注册的时候也写上"/请求路径.do" 18 3.<url-pattern>*.do</url-pattern> 19 即所有后缀为.do的请求都可以被中央调度器接收了,不加就不用接收了--> 20 <!----> 21 <url-pattern>*.do</url-pattern> 22</servlet-mapping>
springmvc.xml
1<?xml version="1.0" encoding="UTF-8"?> 2<beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 5<!--注册处理器:bean的id必须以"/"开头,因为id是一个路径--> 6<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"/> 7 8</bean></beans> 9 10//someHandler.java public ModelAndView handleRequest(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception { 11 ModelAndView mv = new ModelAndView(); 12 //setViewName:响应视图叫什么名字,这个名字应该写相对于webapp路径下的名称(发布到服务器时项目的根目录) 13 mv.setViewName("welcome"); 14 mv.addObject("message","helloSpringMvc"); 15 16 return mv; 17 18 } 19}
现在修改的是index.jsp里的<a href="some.do">,修改为<a href="https://my.oschina.net/some.do">,发现访问网址是http://localhost/some,待续。