mvc在bs系统下的应用

----------------------------------------------------

在web.xml中配置前端控制器(系统提供的一个servlet类  只需配置即可  无需程序员开发 )

--------------------------------------------------------------

------------------------

非注解适配器

使用A适配器能够执行实现Controller接口的handler

package org.ssm.controller;

import java.util.ArrayList;
import java.util.List; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;
import org.ssm.po.Items; //实现controller接口的处理器
public class ItemsController1 implements Controller{ public ModelAndView handleRequest(HttpServletRequest arg0,
HttpServletResponse arg1) throws Exception {
// TODO Auto-generated method stub
//调用service查找 数据库,查询商品列表,这里使用静态数据模拟
List<Items> itemsList = new ArrayList<Items>();
//向list中填充静态数据 Items items_1 = new Items();
items_1.setName("联想笔记本");
items_1.setPrice(6000f);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!"); Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000f);
items_2.setDetail("iphone6苹果手机!"); itemsList.add(items_1);
itemsList.add(items_2); //这个方法需要返回modelAndView 所以创建
ModelAndView modelAndView=new ModelAndView();
//这个方法九相当于request.setAttribute
modelAndView.addObject("itemsList", itemsList);
//指定视图
modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp"); return modelAndView;
} }

使用B适配器能够执行 实现HttpRequestHandler接口的handler

package org.ssm.controller;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.web.HttpRequestHandler;
import org.ssm.po.Items; public class ItemsController2 implements HttpRequestHandler{
//这个handler对应的适配器类是 org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
public void handleRequest(HttpServletRequest arg0, HttpServletResponse arg1)
throws ServletException, IOException {
// TODO Auto-generated method stub
//调用service查找 数据库,查询商品列表,这里使用静态数据模拟
List<Items> itemsList = new ArrayList<Items>();
//向list中填充静态数据 Items items_1 = new Items();
items_1.setName("联想笔记本");
items_1.setPrice(6000f);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!"); Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000f);
items_2.setDetail("iphone6苹果手机!"); itemsList.add(items_1);
itemsList.add(items_2);
arg0.setAttribute("itemsList", itemsList);
//早期servlet程序转发操作
arg0.getRequestDispatcher("/WEB-INF/jsp/items/itemsList.jsp").forward(arg0, arg1); //使用哪个适配器都可以 但是这个适配器 可以通过response对象 来设置响应数据的格式 } }

----------

jsp页面

--------------------

非注解映射器

-----------------------------

视图解析器

-f---------------------

注解映射器、适配器

------------------------------------

使用注解方式开发的handler

package org.ssm.controller;

import java.util.ArrayList;
import java.util.List; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import org.ssm.po.Items; //使用注解开发的handler 不需要实现接口 这个注解和spring阶段 把action对象注入bean容器时使用的注解一样 导入的包也一样
//要明白 这里就是把该headler注入进spring容器中
@Controller
//使用注解标识这是一个handler
public class ItemsController3 {
//这里边可以编写任意多个方法 没有之前实现指定的接口时 只能覆写指定接口的局限性
//使用注解标识映射路径 即将来访问的路径 建议映射路径和类名一样 action写不写都行
//@RequestMapping实现对query1方法的一个映射 一个方法对应一个url
@RequestMapping("/query1.action")
public ModelAndView query1()throws Exception{
//调用service查找 数据库,查询商品列表,这里使用静态数据模拟
List<Items> itemsList = new ArrayList<Items>();
//向list中填充静态数据 Items items_1 = new Items();
items_1.setName("联想笔记本");
items_1.setPrice(6000f);
items_1.setDetail("ThinkPad T430 联想笔记本电脑!"); Items items_2 = new Items();
items_2.setName("苹果手机");
items_2.setPrice(5000f);
items_2.setDetail("iphone6苹果手机!"); itemsList.add(items_1);
itemsList.add(items_2);
//创建modelAndView
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject(itemsList);
//指定视图
modelAndView.setViewName("/WEB-INF/jsp/items/itemsList.jsp");
return modelAndView;
} }

然后再配置文件中配置该handler   推荐使用注解扫描方式(对标记@Controller类中标识有@RequestMapping的方法进行映射  在@RequestMapping里边定义映射的url)

否则 一个handler类就需要配置一个bean

--------------------------------

视图解析器的前缀和后缀配置

注意:如果配置了前缀和后缀  那么 在handler设置视图路径的时候 就不能在指定完整的路径了  但是有一个handler除外

不能指定完整路径的handler:1.实现Controller接口 以及2.注解方式实现的handler

1.

2.

路径为:

在配置了前缀和后缀之后  仍然需要指定完整路径的handler:实现了HttpRequesstHandler接口的handler

路径仍然为:

----------------------------

springMVC入门截图的更多相关文章

  1. 【Spring】SpringMVC入门示例讲解

    目录结构: // contents structure [-] SpringMVC是什么 Spring MVC的设计原理 SpringMVC入门示例 1,复制Jar包 2,Web.xml文件 3,My ...

  2. Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...

  3. SpringMVC入门第二天

    SpringMVC第二天 1.   回顾 1.Springmvc介绍? Springmvc是Spring公司 2.Springmvc入门程序 第一步:Web工程 第二步:导Jar包 第三步:web.x ...

  4. 3.2.1 SpringMVC入门

    一. SpringMVC入门 1. MVC介绍 MVC全名 是Model View Controller, 是模型(model) - 视图(view) - 控制器(controller) 的缩写, 它 ...

  5. SpringMVC入门学习(二)

    SpringMVC入门学习(二) ssm框架 springMVC  在上一篇博客中,我简单介绍了一下SpringMVC的环境配置,和简单的使用,今天我们将进一步的学习下Springmvc的操作. mo ...

  6. SpringMVC入门学习(一)

    SpringMVC入门学习(一) ssm框架 spring  SpringMVC是一个Java WEB框架,现在我们知道Spring了,那么,何为MVC呢? MVC是一种设计模式,其分为3个方面 mo ...

  7. springMVC入门(一)

    1.   SpringMVC入门 1.1SpringMVC是什么 Spring web mvc和Struts2都属于表现层的框架,它是Spring框架的一部分,我们可以从Spring的整体结构中看得出 ...

  8. SpringMVC.入门篇《二》form表单

    SpringMVC.入门篇<二>form表单 项目工程结构: 在<springmvc入门篇一.HelloWorld>基础上继续添加代码,新增:FormController.ja ...

  9. SpringMVC.入门篇.一.HelloWorld

    SpringMVC.入门篇<一>HelloWorld 项目包结构如下: HelloController.java 代码 package com.charles.controller; im ...

随机推荐

  1. 【网络协议】ICMP协议、Ping、Traceroute

        ICMP协议 ICMP常常被觉得是IP层的一个组成部分,它是网络层的一个协议.它传递差错报文以及其它须要注意的信息.ICMP报文通常被IP层或更高层(TCP.UDP等)使用,它是在IP数据报内 ...

  2. Item 8:析构函数不要抛出异常 Effective C++笔记

    Item 8: Prevent exceptions from leaving destructors. 析构函数不要抛出异常 因为析构函数经常被自己主动调用,在析构函数中抛出的异常往往会难以捕获,引 ...

  3. jcaptcha进阶

    1.改动CaptchaServiceSingleton类.使用带參构造方法来创建DefaultManageableImageCaptchaService对象. watermark/2/text/aHR ...

  4. 基于Websocket的火拼俄罗斯(基础)

    传统的HTTP请求是由浏览器发起,然后呢服务端接收到请求之后呢返回一个数据.那么这样一次来回之后呢请求就断了.但是WebSocket它不一样,它同样是由浏览器去发起一个请求但是这个请求是一个WebSo ...

  5. [javascript] jQuery系列之目录汇总

    最近一个月写了些关于jQuery的文章,谢谢大家的支持.文章仅我个人观点,也许有不对的地方,请指出.这个系列还在更新中 一:jQuery基础系列: jQuery温习篇---强大的JQuery选择器 j ...

  6. Oracle数据库学习1------数据库安装及客户端配置

    1.注册Oracle账户: 注册地址:https://login.oracle.com/mysso/signon.jsp 注意:注册的时候尽量使用外国的邮箱,因为使用国内的邮箱可能收不到Oracle发 ...

  7. vue2.x阅读笔记

    v-once 作用: 只赋值一次 注意: 包括子项都是只赋值一次 模板 1.v-text v-html 2.{}语法 3.如果是html的属性,则用v-bind绑定,简写: 注意: 1.可以使用jav ...

  8. Tomcat应用通过Nat123部署到外网(Tomcat+Nat123)

    这里吐槽下,我先想到的方式是用花生壳域名解析,但是花生壳坑太多不易新手操作,用户体验做的不好.然后度娘后才知道有Nat123这个比花生壳简易操作的软件. 1.到nat123官网下载客户端  http: ...

  9. Module, Package in Python

    1.To put it simple, Module是写好的一系列函数或变量,文件以.py为后缀,可以在其他Module中整体或部分引用. PS: 在Module中[结尾或开头]加入if __name ...

  10. 【Oracle】搭建DG(DataGuard)

    操作系统:OEL 5.6 Oracle 版本:11.2.0.4.0 DataGuard规划说明 DATABASE_ROLE DB_NAME IPADDR Primary lgr 192.168.10. ...