第九章Spring MVC how2j案例

一、

1.导入springmvc项目,试运行看到效果

 

 2.①创建项目springmvc

②导入jar包

③配置web.xml

<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>

配置Spring MVC的入口 DispatcherServlet,把所有的请求都提交到该Servlet

④创建springmvc-servlet.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="/index">indexController</prop>
            </props>
        </property>
    </bean>
    <bean id="indexController" class="controller.IndexController"></bean>
</beans>

这是Spring MVC的 映射配置文件
表示访问路径/index会交给id=indexController的bean处理
id=indexController的bean配置为类:IndexController

补充:

bean:

Java面向对象,对象有方法和属性,那么就需要对象实例来调用方法和属性(即实例化);

凡是有方法或属性的类都需要实例化,这样才能具象化去使用这些方法和属性;

规律:凡是子类及带有方法或属性的类都要加上注册Bean到Spring IoC的注解;(@Component , @Repository , @ Controller , @Service , @Configration)

把Bean理解为类的代理或代言人(实际上确实是通过反射、代理来实现的),这样它就能代表类拥有该拥有的东西了

我们都在微博上@过某某,对方会优先看到这条信息,并给你反馈,那么在Spring中,你标识一个@符号,那么Spring就会来看看,并且从这里拿到一个Bean(注册)或者给出一个Bean(使用)

3.控制类 IndexController

控制类 IndexController实现接口Controller ,提供方法handleRequest处理请求
SpringMVC通过 ModelAndView 对象把模型和视图结合在一起

ModelAndView mav = new ModelAndView("index.jsp");
mav.addObject("message", "Hello Spring MVC");

表示视图是index.jsp
模型数据是 message,内容是 “Hello Spring MVC”

4.index.jsp

5.restart tomcat,重启测试

6.原理:

用户访问 /index
根据web.xml中的配置 所有的访问都会经过DispatcherServlet
 根据 根据配置文件springmvc-servlet.xml ,访问路径/index
会进入IndexController类
 在IndexController中指定跳转到页面index.jsp,并传递message数据
 在index.jsp中显示message信息

 二、视图定位

1.下载完整项目,试运行看到效果

 如果代码写成这样,就表示跳转到页面 index.jsp

new ModelAndView("index.jsp");

所谓的视图定位,指的是代码还是写成这样,但是会跳转到 /WEB-INF/page/index.jsp

new ModelAndView("index");

2.与前一个项目对比。

①修改springmvc-servlet.xml,增加

<bean	id="viewResolver"	class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/page/" />
<property name="suffix" value=".jsp" />
</bean>

其作用是把视图约定在/WEB-INF/page/*.jsp这个位置

②修改IndexController

把IndexController类的这一行代码

 ModelAndView mav = new ModelAndView("index.jsp");

修改为

 ModelAndView mav = new ModelAndView("index");

③移动index.jsp

在WEB-INF下新建目录page

把index.jsp移动到 WEB-INF/page 目录下

 三、注解方式

1.与前一个项目对比

①修改IndexController

在类前面加上@Controller 表示该类是一个控制器

在方法handleRequest 前面加上 @RequestMapping("/index") 表示路径/index会映射到该方法上

注意:不再让IndexController实现Controller接口

@Controller
public class IndexController {
    @RequestMapping("/index")
    public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response)

②修改springmvc-servlet.xml

去掉映射相关的配置,因为已经使用注解方式了

增加

<context:component-scan base-package="controller" />

表示从包controller下扫描有@Controller注解的类

问题:

1.tomcat一定要restart一下,不然就运行不出来

2.第一次自己做的时候出现了500,并且蹦出来很多错误。然后我重新做了一遍,仔仔细细将jar包复制进去就做出来了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值