您的位置:首页 > 编程语言 > Java开发

Spring MVC学习笔记 1:入门篇

2014-03-05 11:12 204 查看
springMVC基于模型-视图-控制器模式,可以帮助你建立一个像spring框架本身一样,灵巧和松耦合的web应用程序。

1,请求的生命周期:



用户在web界面中提交一个表单web请求就产生了,web请求犹如一个快递员,他携带着发件方和收件方的消息,web请求从离开浏览器到得到响应,中间经历几次停留,每一次停留都卸下一些消息并得到更多的消息。

web请求离开浏览器后的第一个节点是dispatchServlet(普通的前端servlet),dispatchServlet根据映射找到具体的控制器,跳转到控制器后,请求卸下消息,等待处理结果,并准备反馈响应消息,这些消息被称为模型(model),不过仅向用户反馈未加工的数据是不够的,一般需要反馈用户可接收的视图(一般是jsp),因此控制器要做的最后一件事情就是将模型数据和视图名称封装到modeAndView中发送给dispatchServlet。

最后servlet收到响应消息,知道了要反馈的模型和视图,然后根据模型和视图渲染一个web界面,通过响应对象反馈给web浏览器。

2,如何使用:

首先需要导入相关依赖包:



在web_info下新建 servlet_name.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 配置控制器映射,分发请求给指定的控制器处理 -->
<bean id="simpleUrlHandlerMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/hello.do">helloController</prop>
<!--<prop key="/Login.do">loginController</prop>-->
</props>
</property>
</bean>

<!-- 视图映射器,通过视图名次映射某某目录下的的JSP,例如映射名称为hello,那么则返回hello.jsp -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-APP/test/" />
<property name="suffix" value=".jsp" />
<property name="order" value="0"/><!-- 映射器优先级 -->
</bean>

<!-- 定义控制器 -->
<bean id="helloController" class="com.autophone.webapp.contraller.contraller.HelloController">
</bean>
</beans>


在web.xml中配置新建的 servlet_name.xml

<servlet>
<servlet-name>s_name</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>s_name</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--注:当DispatcherServlet载入后,它会根据serveltName找serveltName-servlet.xml,然后载入其中的bean到spring的上下文 -->


编写控制器:

public class HelloController implements Controller {

public ModelAndView handleRequest(HttpServletRequest request,
HttpServletResponse response) throws Exception {
Map map=request.getParameterMap();

//反馈消息给界面
//request.setAttribute("hello_2", "Hello World!");
response.setContentType("text/html;charset=utf-8");
String account = request.getParameter("username");

request.setAttribute("result", "success!");
//跳转到视图控制器定义的目录下的,hello.jsp界面
return new ModelAndView("hello");
//json形式返回
//String json="[{result:'success'}]";
//PrintWriter pw = response.getWriter();
// pw.print(json.toString());
// pw.close();
//return null;
}
}


编写界面,略
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: