zoukankan      html  css  js  c++  java
  • spring MVC框架(入门篇)-3 后端控制器(上)

    用后端控制器(上)

    概述SpringMVC后端控制器:


    为了方便开发人员快捷地建立适合特定应用的后端控制器,springMVC实现Controller接口,

    自定义了许多特定控制器。这些控制器的层次关系如下:

    -AbstractController 
    -AbstractUrlViewController 
    -UrlFilenameViewController 
    -BaseCommandController 
    -AbstractCommandController 
    -AbstractFormController 
    -AbstractWizardFormController 
    -SimpleFormController -------------简单的表单控制器
    -CancellableFormController 
    -MultiActionController 
    -ParameterizableViewController 
    -ServletForwardingController 
    -ServletWrappingController

    我们以比较有特色的两个控制为例:

    下面先介绍第一个后端控制器--------SimpleFormController-------简单表单控制器

    步骤一 建立一个后端控制器 RegControl.java  还有一个用户的pojo类:User.java

    这个类要继承SimpleFormController 后端控制器

     1 package com.test;
     2 
     3 import javax.servlet.http.HttpServletRequest;
     4 import javax.servlet.http.HttpServletResponse;
     5 
     6 import org.springframework.validation.BindException;
     7 import org.springframework.web.servlet.ModelAndView;
     8 import org.springframework.web.servlet.mvc.SimpleFormController;
     9 
    10 import com.pojo.User;
    11 
    12 /**
    13  * 后端控制器
    14  * 
    15  * @author xzt
    16  *
    17  */
    18 
    19 
    20 @SuppressWarnings("deprecation")
    21 public class RegControl extends SimpleFormController {
    22     // 重写构造方法
    23     public RegControl() {
    24 
    25         super();
    26         // 指明是哪个pojo对象,form传过来的值会与之一一对应
    27         setCommandClass(User.class);
    28         // TODO Auto-generated constructor stub
    29     }
    30     /*概述此步要点:
    31      * 
    32      * (1)继承 SimpleFormController 类
    33      * (2)构造器中调用 setCommandClass 方法绑定定命令对象(这里为User类)
    34      * (3)转换formbean为User类进行业务逻辑操作
    35     */
    36     protected ModelAndView processFormSubmission(HttpServletRequest arg0, HttpServletResponse arg1, Object formbean,
    37             BindException arg3) throws Exception {
    38         User user = (User) formbean;
    39         ModelAndView mav = new ModelAndView("reg");
    40         mav.addObject("message", "Hello World!");
    41         mav.addObject("user", user);
    42         return mav;
    43     }
    44 
    45     protected ModelAndView showForm(HttpServletRequest arg0, HttpServletResponse arg1, BindException arg2)
    46             throws Exception {
    47         return null;
    48     }
    49 
    50 }
     1 package com.pojo;
     2 
     3 public class User {
     4     
     5     private String username;
     6     private String password;
     7     public User() {
     8         super();
     9         // TODO Auto-generated constructor stub
    10     }
    11     public String getUsername() {
    12         return username;
    13     }
    14     public void setUsername(String username) {
    15         this.username = username;
    16     }
    17     public String getPassword() {
    18         return password;
    19     }
    20     public void setPassword(String password) {
    21         this.password = password;
    22     }
    23     
    24     
    25     
    26 
    27 }

    步骤二:配置web.xml(这个不需要变,和前面的一样)

    步骤三 配置spmvc-servlet.xml文件(需要添加后端控制器类的配置)

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
     3 <beans>
     4     <!--在spring中一切资源都被视为bean -->
     5     <bean id="simpleUrlHandlerMapping"
     6         class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
     7         <property name="mappings">
     8             <props>
     9                 <prop key="/my.do">MyControl</prop>
    10                 <prop key="/login.do">LoginControl</prop>
    11                 <prop key="/reg.do">RegControl</prop>
    12             </props>
    13         </property>
    14     </bean>
    15     <!-- 在访问的jsp页面的前后加上前缀和后缀 -->
    16     <bean id="viewResolver"
    17         class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    18         <property name="prefix" value="/jsp/" />
    19         <property name="suffix" value=".jsp" />
    20     </bean>
    21 
    22     <!-- 说明: my.do 的请求将给名为 MyControl 的 bean 进行处理。 -->
    23     <bean id="MyControl" class="com.test.MyController"></bean>
    24     <bean id="LoginControl" class="com.test.LoginControl"></bean>
    25     <bean id="RegControl" class="com.test.RegControl"></bean>
    26 
    27 
    28 
    29 </beans>

    步骤四  根据配置文件完善相应页面

    需要完善两个界面:login.jsp 和 reg.jsp

     注意要使用post方式提交才会显示

     1 只贴出部分代码
     2 <body>
     3     <form action="<%=basePath%>reg.do" method="post">
     4         用户名:<br> <input type="text" name="username"> <br>
     5         密码:<br> <input type="password" name="password">
     6         <input type="submit"> <input type="reset">
     7         
     8     </form>
     9     ${什么的干活}
    10 
    11 </body>
     1   </head>
     2   
     3   <body>
     4   
     5   <h1>显示登录信息</h1>
     6     用户名 :${user.username}
     7    <br>
     8    密码:${user.password}
     9     
    10     
    11   </body>

    步骤五: 启动服务器

    提交信息:自动跳转页面

     中文会显示乱码,这个问题后续会添加过滤器解决

     

  • 相关阅读:
    [GIT]指定分支下创建分支
    [架构]辨析: 高可用 | 集群 | 主从 | 负载均衡 | 反向代理 | 中间件 | 微服务 | 容器 | 云原生 | DevOps
    [Linux]常用命令之【vi/grep/find】
    [Linux]常用命令之【netstat/ps/lsof/ss/kill/】
    [Linux]常用命令之【nl/sed/awk/wc/xargs】
    移动端vw页面适配方案在vue项目中的应用
    关于跨域,你应该知道的
    关于call、apply和bind,请看这篇
    JavaScript数组常用API方法汇总
    JS浅拷贝与深拷贝实现方式
  • 原文地址:https://www.cnblogs.com/xyblogs/p/9026801.html
Copyright © 2011-2022 走看看