springMVC运行流程
用户访问
简单点,直接在body中写一个链接
<body>
<a href="index">点击测试</a>
</body>
web容器加载
用户在页面上发出一个请求,web.xml容器加载springMvc.xml文件
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!--加载mvc.xml文件,配置文件的位置-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spingMvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<!--应答所有请求-->
<url-pattern>/</url-pattern>
</servlet-mapping>
springMvc.xml拦截
web.xml文件放行后到达springMvc.xml核心控制器,这里面你可以相应文件配置
<!--配置自动扫描的包-->
<context:component-scan base-package="com.test"/>
<!--配置视图解析器:把返回的方法解析为实际表现层,也就是去调用.jsp界面-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--文件存在路径-->
<property name="prefix" value="/WEB-INF/html/"/>
<!--文件后缀-->
<property name="suffix" value=".jsp"/>
</bean>
<!--根路径加载静态资源文件-->
<mvc:resources location="/WEB-INF/css/" mapping="/css/**" />
<mvc:resources location="/WEB-INF/js/" mapping="/js/**" />
<mvc:resources location="/WEB-INF/img/" mapping="/img/**" />
<mvc:default-servlet-handler/>
<mvc:annotation-driven/>
控制器实现
@Controller
public class Hello {
/**
* 使用requestMapping来映射web请求的URL,也就是用户界面中的a请求链接
* 返回值通过视图解析器servlet.xml文件中的internalResourceViewResolver解析为实际图,具体操作为 prefix+retrun值+.jsp。也就是去加载/WEB-INF/html/Main.jsp文件
*/
@RequestMapping("/index")
public String helloworld(){
System.out.println("Hello World!");
return "Main";
}
}
这里只是到控制器实现就结束了,在System.out.println(“Hello World!”);代表后续业务层service的实现,service去访问entity实体层,实体层再对持久层(数据库)进行相关操作,例如增删改查等。整个大致流程就这样。
实现效果截图
首先打开页面。由于界面我是放在项目WEB-INF下面
所以在外界不能直接访问,我直接在web.xml文件里面直接设置为欢迎页
启动Tomcat服务器,进入test.jsp界面
点击测试。请求成功,注意地址栏变化,实际上映射的是/WEB-INF/html/Main.jsp中的内容