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
    }
  • 相关阅读:
    Something I know about WebDynpro
    Details about support package implementation
    CRM Middleware Performance Topics
    Way to configure the logon navigaion layouts via Business Roles in CRM
    DOM 常用节点类型和方法
    第一届 xdef 会议日程
    去除百度音乐盒广告的chrome插件 持续更新
    从人人网抓取高校数据信息,包括,省份 高校 院系 (提供最终SQL文件下载)
    PHP 与 JSON
    解决HTTPS 发送请求走socket问题
  • 原文地址:https://www.cnblogs.com/dedema/p/11172823.html
Copyright © 2011-2022 走看看