SpringMVC入门之一

1.SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都DispatcherServlet
DispatcherServlet负责转发每一个Request请求给相应的Handler,Handler处理以后再返回相应的视图(View)和模型(Model),返回的视图和模型都可以不指定,即可以只返回Model或只返回View或都不返回。
DispatcherServlet是继承自HttpServlet的,既然SpringMVC是基于DispatcherServlet的,那么我们先来配置一下DispatcherServlet,好让它能够管理我.
以下为web.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
   <!-- springmvc配置 -->
   <servlet>
      <servlet-name>dispatcherServlet</servlet-name>
       <!-- 可以自定义servlet.xml配置文件的位置和名称,默认为WEB-INF目录下,名称为[<servlet-name>]-servlet.xml,如spring-servlet.xml
     <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/dispatcherServlet-servlet.xml</param-value>&nbsp; 默认
    </init-param>
    --> 
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      <!-- load-on-startup标记容器是否在启动的时候实例化并调用其init()方法的优先级。
                        它的值表示servlet应该被载入的顺序
                        当值为0或者大于0时,表示容器在应用启动时就加载并初始化这个servlet;
                       如果值小于0或未指定时,则表示只有在第一次请求的容器才在该servlet调用初始化函数
                       正值越小,servlet的优先级越高,应用启动时就越先加载。
                       值相同时,容器就会自己选择顺序来加载。 -->
      <load-on-startup>1</load-on-startup>
     </servlet>
<servlet-mapping>
      <servlet-name>dispatcherServlet</servlet-name>
      <url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>

 
以下为dispatcherServlet-servlet.xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- 自动扫描的包名 -->
<context:component-scan base-package="com.Ace.controller"></context:component-scan>
<!-- 启用springmvc注解 -->
<context:annotation-config />
<!-- 默认的注解映射的支持 -->
<mvc:annotation-driven />
<!-- 视图解释类 -->
      <!-- DispatcherServlet会利用一些特殊的bean来处理Request请求和生成相应的视图返回。
                    关于视图的返回,Controller只负责传回来一个值,然后到底返回的是什么视图,是由视图解析器控制的,在jsp中常用的视图解析器是InternalResourceViewResovler,它会要求一个前缀和一个后缀
                  在上述视图解析器中,如果Controller返回的是/hello,那么通过视图解析器解析之后的视图就是/WEB-INF/Views/hello.jsp -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewReso lver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
<property name="prefix" value="/WEB-INF/Views/" /> 
<!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 -->
<!-- 对转向页面的路径解析。prefix:前缀, suffix:后缀 -->
<property name="suffix" value=".jsp" />
</bean>
<!-- 处理器 -->
</beans>
以下为Controller层:
package com.Ace.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class Test1Controller {
@RequestMapping(value="page/{name}/{age}",method=RequestMethod.GET)
public String getName(ModelMap map,@PathVariable("name")String name,@PathVariable("age") int age){
map.addAttribute("name", name);
map.addAttribute("age", age);
return "name";
}

}
View层:( WEB-INF/Views/name.jsp下
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
      <base href="<%=basePath%>">
      <title>My JSP 'name.jsp' starting page</title>
   </head>
   <body>
     ${name} <br>
     ${age }
   </body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

为你写诗_xue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值