zoukankan      html  css  js  c++  java
  • SpringMVC上

    SpringMVC是Spring框架内置的MVC的实现.SpringMVC就是一个Spring内置的MVC框架.

    MVC框架,它解决WEB开发中常见的问题(参数接收、文件上传、表单验证、国际化、等等),而且使用简单,与Spring无缝集成。 支持 RESTful风格的 URL 请求 。

    采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性。

    SpringMVC流程:

    01、用户发送出请求到前端控制器DispatcherServlet。

    02、DispatcherServlet收到请求调用HandlerMapping(处理器映射器)。

    03、HandlerMapping找到具体的处理器(可查找xml配置或注解配置),生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。

    04、DispatcherServlet调用HandlerAdapter(处理器适配器)。

    05、HandlerAdapter经过适配调用具体的处理器(Handler/Controller)。

    06、Controller执行完成返回ModelAndView对象。

    07、HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet。

    08、DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)。

    09、ViewReslover解析后返回具体View(视图)。

    10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

    11、DispatcherServlet响应用户。

    1.1.  @RequestMapping

    @RequestMapping注解主要是设置SpringMVC请求的映射路径

    所谓的映射路径,就是匹配请求路径和执行方法关系的路径.

    请求路径:http://localhost:8080/springmvc/method1.do

    映射路径:@RequestMapping(value="/method1")

    @RequestMapping 用于贴在控制器的类上或者方法上面

    如果是贴在控制器的类上面,那么在访问这个类的方法之前必须先加上类上的对应的名称

    类似于 项目下面的 模块名称

    如果贴在方法上面,就是访问此方法的资源名称

    @Controller
    @RequestMapping("/request")  //访问时候必须加上,类似模块名称
    public class RequestController {
        @RequestMapping(value="/method1") //资源名称 
        public void method1() {
        }
    }

    1.1.1.  方法限制

    就是设置请求的method类型.如果发送过来的请求与方法设置的method不一样,就不能访问执行方法.

    请求method : GET , POST

      <form action="${pageContext.request.contextPath }/login.do" method="get">
        <input type="submit" value="登录">
      </form>
    
        /**
         * 接收的请求,必须是POST
         * @return
         */
        @RequestMapping(value="login",method=RequestMethod.POST)
        public String login(){
            System.out.println("-登录-");
            return "/login.jsp";
        }

    1.1.1.  参数限制

    1.就是请求里面必须包括哪些参数,或不包括哪些哪些.

    2.参数包括哪些值,不包括哪些值

    限制参数格式:

    1.参数必须包括:params={"username","password"}

    2.参数不能包括:params={"!userid"}

    3参数值必须是指定的值:params={"username=zhangsan"})

    4.参数值必须不是指定的值:params={"userid!=123"})

    请求:没有后台方法指定的参数'

    <h4>登录页面</h4>
    <form action="${pageContext.request.contextPath}/request/method1.do" method="post">
        账号:<input name="username"><br>
        密码:<input type="password" name="pwd"><br>
        <button type="submit">登录</button>
    </form>
    
    后台代码
        /**
         * 需求:登录时必须包括用户名,密码
         * @return
         */
        @RequestMapping(value="login2",params={"username","password"})
        public String login2(){
            System.out.println("-登录-");
            return "/login.jsp";
        }

    SpringMVC的方法默认可以注入 JavaWeb开发常用的数据共享对象

    HttpServletRequest

    HttpServletResponse

    HttpSession

    获取这些共享对象以后,就可以向之前的Servlet一样,做任何数据共享以及页面跳转操作'

    /*
     * Spring的方法默认可以注入 JavaWeb开发常用的数据共享对象 
    HttpServletRequest
    HttpServletResponse
     * HttpSession 以后开发 按需注入
     */
    @RequestMapping(value = "/method0")
    public void method0(HttpServletRequest req, 
                        HttpServletResponse resp,
                        HttpSession session) {
        //TODO
    }
  • 相关阅读:
    VisualVM 分析full GC问题记录
    HTTPS协议、TLS协议、证书认证过程解析
    java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)
    java.lang.StringBuilder和java.lang.StringBuffer (JDK1.8)
    MVC中自带的异步((Ajax.BeginForm)无效
    百度富文本编辑器UEDITOR
    只有在配置文件或 Page 指令中将 enableSessionState 设置为 true 时,才能使用会话状态。还请确保在应用程序配置的 // 节中包括 System.Web.SessionSta
    【知识碎片】CSS 篇
    js 将json字符串转换为json对象的方法解析
    【知识碎片】Asp.Net 篇
  • 原文地址:https://www.cnblogs.com/dedema/p/11172823.html
Copyright © 2011-2022 走看看