SpringMVC---理解认识和使用

SpringMVC的认识

什么是SpringMVC?

image

SpringMVC只是基于Spring的一个MVC框架,理解SpringMVC需要事先理解以下几个关键的概念:
- 前端控制器(DispatchServlet)
- HandlerMapper(处理器映射器)
- HandlerAdapter(处理器适配器)
- 视图解析器(ViewResolver)
- 页面控制器(controlller)

image

SpringMVC和经典的ServletMVC架构的异同

  • 两个控制器(前端控制器和页面控制器)
  • 视图解析器和Forward以及Dispatch的区别
  • 携带数据的方式不同(Request.setAttribute()以及ModelAndView)
  • SpringMVC面向方法的url映射(Servlet是面向Servlet类)
  • 四大注解的使用(@Service,@Repository,@Controller,@Component)
  • 模块化开发,解耦的目的就是为了复用。

SpringMVC项目的搭建流程

两个关键:
- Web.xml配置(1.DispatchServlet的配置 2.Content-param的配置“classpath”和一般配置的处理)
- spring-servlet.xml的配置(1.context:component-scan 2.视图解析器的配置VewResolver 3.注解映射的支持mvc:annotation-driver )

jar包的导入:

image

SpringMVC的几个应用

HelloSpringMVC的实现:

步骤操作效果
步骤一配置web.xml以及helloworld-servlet.xml
步骤二创建Controller处理url请求
步骤三创建跳转的.jsp并获取Controller中的数据(键-值)网页显示HelloSpringMvc

配置详情:

步骤一:
- web.xml

<web-app id="WebApp_ID" version="2.4"
   xmlns="http://java.sun.com/xml/ns/j2ee" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

   <display-name>Spring MVC Application</display-name>

   <servlet>
      <servlet-name>HelloWeb</servlet-name>
      <servlet-class>
         org.springframework.web.servlet.DispatcherServlet
      </servlet-class>
      <load-on-startup>1</load-on-startup>
   </servlet>

   <servlet-mapping>
      <servlet-name>HelloWeb</servlet-name>
      <url-pattern>/</url-pattern>
   </servlet-mapping>

</web-app>
  • hello-servlet.xml
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   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.tutorialspoint" />

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

</beans>

步骤二:

@Controller
@RequestMapping(“/hello”)
public class HelloController{
    @RequestMapping(method=RequestMethod.GET)
    public String sendMsg(Modelmap model ){
        model.addAttribute("msg","Hello SpringMVC!");
        return "hello";
    }


}


步骤三:


...
<body>
    <h1>${msg}</h1>
</body>

Form表单的处理

步骤操作效果
步骤一xml文件的配置
步骤二Student实体类的创建
步骤三@Controller类的创建,并在类中分别定义跳传Form表单和处理结果的方法
步骤四两个jsp的创建一个是包含Form表单的提交信息界面一个是提交后展示提交结果的界面提交信息界面点击提交之后跳转到信息展示界面

前两步省略…

步骤三:

@Controller
public class MsgManager{

    @RequestMapping("/msgEdit")
    public String jumpToForm(){

        return "form";


    }


    @RequestMapping("/subMsg")
    public String manageResult(ModelMap model,Student stu){
        model.addAttribute("name",stu.getName());
        model.addAttribute("age",stu.getAge());
        model.addAttribute("hobbys",stu.getHobbys());
        model.addAttribute("height",stu.getHeight())

        return "result";

    }

}

步骤四:

  • form.jsp
<body>
    <form: form method="POST" action="/subMsg">
    <table>
    <tr>
        <td><form:label path="name">Name</form:label></td>
        <td><form:input path="name" /></td>
    </tr>
    <tr>
        <td><form:label path="age">Age</form:label></td>
        <td><form:input path="age" /></td>
    </tr>
    <tr>
        <td><form:label path="id">id</form:label></td>
        <td><form:input path="id" /></td>
    </tr>
    <tr>
        <td colspan="2">
            <input type="submit" value="Submit"/>
        </td>
    </tr>
    </form>


</body>
  • result.jsp

<body>
    <h1>学生信息展示结果</h1>
    <table>
        <tr>
            <td>姓名:</td>
            <td>${name}</td>

        </tr>

        ...


    </table>    


</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值