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>

    步骤五: 启动服务器

    提交信息:自动跳转页面

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

     

  • 相关阅读:
    leetcode108 Convert Sorted Array to Binary Search Tree
    leetcode98 Validate Binary Search Tree
    leetcode103 Binary Tree Zigzag Level Order Traversal
    leetcode116 Populating Next Right Pointers in Each Node
    Python全栈之路Day15
    Python全栈之路Day11
    集群监控
    Python全栈之路Day10
    自动部署反向代理、web、nfs
    5.Scss的插值
  • 原文地址:https://www.cnblogs.com/xyblogs/p/9026801.html
Copyright © 2011-2022 走看看