J2EE轻量级框架--4.05学习心得

来源:互联网 发布:淘宝抢货神器 编辑:程序博客网 时间:2024/05/14 18:43

今天老师讲了一下springmvc的相关知识,特做如下归纳:

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。


springMVC学习:主要是WEB端表现层所封装的MVC框架。


(重要)Spring Web MVC处理请求的流程:图见springmvc.docx图2-1
具体执行步骤如下:
1、  首先用户发送请求————>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图2-1中的1、2步骤;
2、  页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在Spring Web MVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图2-1中的3、4、5步骤;
3、  前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图2-1中的步骤6、7;
4、  前端控制器再次收回控制权,将响应返回给用户,图2-1中的步骤8;至此整个结束。


springMVC:
M:Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据)和服务层(行为)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
V: View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
C:Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。也就是说控制器做了个调度员的工作。




在代码中体现:首先我们需要一个springmvc.xml配置文件
在其中(了解)
<!-- 配置SimpleUrlHandlerMapping路径映射器 -->
 <bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!-- 配置url和应用控制器映射 -->
  <property name="mappings">
  <props>
  <prop key="login.do">lc</prop>
  </props>
  </property>
 </bean>


然后
<bean id="lc" class="com.lovo.mvc.controller.LoginController"></bean>      (id="lc"是在上面<prop key="login.do">lc</prop>中的lc)
 
 <!-- 配置视图解析器,只使用于使用JSP作为视图资源 -->
 <bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
  <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
  <property name="prefix" value="/"/>      (value="/"等于/WebRoot)
  <property name="suffix" value=".jsp"/>   (value=".jsp"是以.jsp结尾)
 </bean>


在controller包中,实现Controller接口,实现
public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {}
方法
String userName = arg0.getParameter("userName");得到表单数据,与request类似


mv.addObject("userName", userName);
mv.setViewName("/jsp/success");
上述两种用法类似request的EL标签和跳转
具体代码如下
public class LoginController implements Controller{


public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
ModelAndView mv = new ModelAndView();
String userName = arg0.getParameter("userName");      (在login.jsp中有action为login.do的)
String password = arg0.getParameter("password");

System.out.println(userName);
System.out.println(password);

mv.addObject("userName", userName);

mv.setViewName("/jsp/success");      (是在WebRoot下jsp里的success.jsp)
return mv;
}
}


(重要)在springMVC中,最重要的是springmvc的前端控制器(核心控制器)
通过在WEB-INF文件夹下的web.xml配置文件中,使用
 <servlet>
  <servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/classes/springmvc.xml</param-value>      (初始化数据,通过/WEB-INF/classes/springmvc.xml读取配置文件数据)
  </init-param>
  </servlet>
  <servlet-mapping>
  <servlet-name>springmvc</servlet-name>
  <url-pattern>*.do</url-pattern>
  </servlet-mapping>
来进行配置


归纳:在springmvc上述代码中,


1.首先通过配置springmvc.xml文件


2.配置SimpleUrlHandlerMapping路径映射器→配置视图解析器,只使用于使用JSP作为视图资源


3.在配置SimpleUrlHandlerMapping路径映射器中property name="mappings"的props下的prop中将login.do类似于取别名为lc(<!-- 配置url和应用控制器映射 -->),


4.然后通过<bean id="lc" class="com.lovo.mvc.controller.LoginController"></bean>将其配置


5.通过配置视图解析器,只使用于使用JSP作为视图资源中上述的代码,来规定其代码的格式


6.然后在LoginController类中进行了一些测试,并且通过mv.setViewName("/jsp/success");进行了页面的跳转


7.其中("/jsp/success")因为5中的格式其实路径为:/springmvc/WebRoot/jsp/success.jsp

0 0
原创粉丝点击