1、创建一个web工程
2、导入springmvc相关包
3、在web.xml中配置使用SpringMVC的前端控制器处理所有请求(给提示(DispatcherServlet提示项))
注意:指定springmvc配置文件位置,所有请求写/而不是/*
4、随便写一个类一个方法就来处理请求
流程:
1)、发请求
2)、SpringMVC根据请求地址找到哪个Controller的RequestMapping注解就是这个地址
3)、找到就执行方法处理请求
4)、方法执行完成的返回值,作为页面地址直接转发到这个页面(配置视图解析器可以帮我们进行简化拼串)
环境:
windonws 7 , jdk 1.7 , tomcat 7.0 ,eclipse
1、导包
首先spring四大核心架包,包括(beans , core , expression ,aop ),加上日志记录(commons-logging),
在加上springweb(web)和webmvc(webmvc)整合jar包。
2.写配置文件
web.xml:
alt+/ 倒数第二个
自动配置springmvc的前端控制器,作用是用DispatcherServlet处理所有的应用程序的请求。
只需修改2处,参数值:类路径下的配置文件 ,和
<url-pattern> / <url-pattern> /* : 导致.jsp页面不能访问 /:但是如果写/,jsp页面就能访问
1 <servlet> 2 <servlet-name>springDispatcherServlet</servlet-name> 3 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 4 <init-param> <!-- 指定springmvc 配置文件位置 --> 5 <param-name>contextConfigLocation</param-name> 6 <param-value>classpath:springmvc.xml</param-value> 7 </init-param> 8 <!-- load-on-startup:springDispatcherServlet默认项项目启动的时候就创建 --> 9 <load-on-startup>1</load-on-startup> 10 </servlet> 11 <servlet-mapping> <!-- Map all requests to the DispatcherServlet for handling --> 12 13 <servlet-name>springDispatcherServlet</servlet-name> 14 <url-pattern>/</url-pattern>
配置springmvc.xml:
新建一个源码包config,InternalResourceViewResolver 翻译: 内部资源视图解析器
关键代码如下: 如何写InternalResourceViewResolver ,<bean class="internalRsesource">alt+/
记得在配置文件勾选 context,
<!--包扫描 --> <context:component-scan base-package="com.atguigu.controller"></context:component-scan> <!--视图解析器:简化我们方法的返回值,帮我们自动拼接页面地址 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- mm --> <!--prefix 加前缀-->
<property name="prefix" value="/WEB-INF/pages/"> </property>
<!--suffix 加后缀-->
<property name="suffix" value=".jsp"></property>
</bean>
</beans>
3.建立一个index.jsp //首页,服务器启动的窗口
<body>
<a href="lookmm">看美女</a> //超链接跳转
</body>
4. 在/WEB-INF目录下建一个包,/pages, 在包内建立两个jsp文件,用于跳转的目的地。
1)、mm.jsp 关键代码如下:
<body> <h1>看我美吗?</h1> </body>
2)、success.jsp
<body> <h3>成功</h3> </body>
5.在src包下建一个类,
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller //翻译:控制器, 标注在类名上,映射成功,会有 s 的标记 public class MMController { @RequestMapping("/lookmm") //RequestMapping 翻译:请求映射 标注在方法上 public String hahaha() { System.out.println("哈哈,我要去看MM了"); return "success"; //也可以换成 "mm" 则跳转到--看我美吗? // /WEB-INF/pages/mm.jsp // /WEB-INF/pages/success.jsp //直接写页面地址。从当前项目的根目录下开始写 //视图解析器会帮我们根据前后缀自动拼串 } }
隐私数据设置:
有些数据,不能让用户直接敲地址就能访问,所以设置如下:
1、不允许用户直接可以敲页面地址来访问页面
2、将其作为受保护的页面(/WEB-INF/下即可);受保护的资源只有程序帮我们转发我们才能过去;
3、我们可以不指定【】配置文件的位置,默认找
/WEB-INF/springDispatcherServlet-servlet.xml
1、转发重定向?
敲地址---看到页面(一次请求)转发
敲地址---看到页面(二次请求)重定向