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
- J2EE轻量级框架--4.05学习心得
- J2EE轻量级框架--3.26学习心得
- J2EE轻量级框架--3.27学习心得
- J2EE轻量级框架--3.28学习心得
- J2EE轻量级框架-3.29学习心得
- J2EE轻量级框架--3.30学习心得
- J2EE轻量级框架--4.01学习心得
- J2EE轻量级框架--4.02学习心得
- J2EE轻量级框架--4.03学习心得
- J2EE轻量级框架--4.04学习心得
- J2EE轻量级框架—3.31学习心得
- [整理]j2ee常用轻量级框架
- 我谈webwork----轻量级的j2ee框架
- J2EE轻量级框架--3.24学习笔记
- J2EE轻量级框架--3.25学习笔记
- j2ee学习心得
- j2ee学习心得
- 基于J2EE轻量级容器构件框架:异常处理
- gcc和gdb教程
- 对联广告
- 1008
- PCIE BAR空间
- HDOJ 1267 下沙的沙子有几粒?(递推)
- J2EE轻量级框架--4.05学习心得
- C++将两个整数交换次序后输出
- StringBuffer和二维数组
- HTML 基础
- C++ 输入一个0-6的整数,转化成星期输出
- Activity生命周期的通俗理解
- iOS关键字
- 视图控制器中navigationItem中backBarButtonItem设置问题
- Android React-Native系列之<二>零基础学习React-Native控件之View