`

springMVC controller层的request和对应view层的request区别

 
阅读更多

web容器用resin,项目采用springMVC,关键配置如下:

<bean

        class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="prefix" value="/WEB-INF/view/" />

        <property name="suffix" value=".jsp" />

    </bean>

 

控制器层有个方法如下:

 @RequestMapping("/forum")
    public String forum(HttpServletRequest request, HttpServletResponse response, Model model) throws IOException {

      	System.out.println("controller getContextPath: " + request.getContextPath());
      	System.out.println("controller getServletPath: " + request.getServletPath());
    	System.out.println("controller query string: " + request.getQueryString());
    	request.setAttribute("controllerrequest", request);
return "/templates/" + systemConfig.getAppName() + "/forum"; }

 返回的页面forum.jsp页面部分代码如下:

 

<%
	out.print(request.getContextPath());
	out.print("---");
	out.print(request.getServletPath());
	out.print("---");	
	out.print(request.getQueryString());
	out.print("---");	
	out.print(request.equals(request.getAttribute("controllerrequest")));
	
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
//以下省略

 

控制器层结果:

controller getContextPath: /bbs7

controller getServletPath: /forum.do

controller query string: fid=1988&filter=type&fval=g6559g80b2g89c2g70b9

 

view层输出:

/bbs7---/WEB-INF/view/templates/baby/forum.jsp---fid=1988&filter=type&fval=g6559g80b2g89c2g70b9---false

 

controller层和view层的request有什么异同呢?从打印的结果来看,可以得出如下结论:

(1)这两个request是两个不同的对象

(2)这两个request拿到的getContextPath()是相同的,因为都是拿同一个应用于的ContextPath

(3)两个request 拿到的servletPath是不同的,controller层拿到的是最初请求的servlet路径,view层拿到的是请求经过mvc处理转发之后,jsp页面的路径

(4)两个request 拿到的 queryString是一样的,原因是mvc请求转到view层的时候,把最初请求的queryString带上了

 

 

 

分享到:
评论

相关推荐

    springmvc demo

    页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常...

    SpringMvc源码

    页面控制器/动作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;

    springMVC入门_Java系列教程

    Controller接收request, response参数,然后返回ModelAndView(其中的Model不是Object类型,而是Map类型)。但在其它的Web Framework中,Action返回值一般都只是一个View Name;Model则需要通过其它的途径(如...

    SpringMVC示例

    注解)、ModelAttribute注解如修饰POJO类型的入参、SessionAttributes注解引发的异常处理、JstlView、mvc_view-controller标签转换成注解、自定义视图、重定向、Employee管理RESTRUL_CRUD_显示所有 员工信息、...

    spring+springmvc+mybatis的整合

    WebApplicationContext acc = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getServletContext()); ls = (LoginService) acc.getBean("MyService"); 而讲义上的实现: [java] view ...

    springMVC架构学习交流

    Controller接收request, response参数,然后返回ModelAndView(其中的Model不是Object类型,而是Map类型)。但在其它的Web Framework中,Action返回值一般都只是一个View Name;Model则需要通过其它的途径(如...

    springmvc的一个简单实例

    spring的mvc应用的简单实例 package com.spring.mvc.controller;... view.addObject("name", request.getParameter("name")); view.addObject("result", "sucess");*/ return new ModelAndView("/Login") ; } }

    跟我学SpringMVC

    页面控制器/动 作/处理器为Controller接口(仅包含ModelAndView handleRequest(request, response) 方法)的实现(也可以是 任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常...

    SpringMVC Employee Demo

    本次实践内容包括RequestMapping关键字修饰类和方法(请求方式、请求参数&请求头、Ant风格路径)、PathVariable注解、HiddenHttpMethodFilter 过滤器(将Get请求转换成PUT、DELETE请求)、RequestParam 注解、...

    spring_MVC源码

    本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,现在这一篇补上。下面开始贴代码。 文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下。 先说...

    SpringMVC-SSH全注解

    &lt;property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /&gt; &lt;property name="suffix" value=".jsp" /&gt; &lt;!-- 配置jdbc --&gt; &lt;value&gt;classpath:jdbc.properties ...

    Logincontroller.java

    package com.springmvc.controller; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet....

    spring mvc 3.2 参考文档

    view-controller (MVC)框架是围绕 DispatcherServlet 设计的,并分发请求到处理程序(handler),Spring MVC支持可配置的处理程序映射(handler mapping),视图解析(view resolution)、 区域设置(locale)和主题解析...

    Spring MVC 入门实例

    如果你手上有一本《Spring in Action》, 那么你最好从第三部分"Spring 在 Web 层的应用--建立 Web 层"开始看, 否则那将是一场恶梦! 首先, 我需要在你心里建立起 Spring MVC 的基本概念. 基于 Spring 的 Web 应用...

    JS组件Bootstrap Table使用方法详解

    b、springMvc Controller里面对应的方法获取数据 [js] view plain copy public JsonResult GetDepartment(int limit, int offset, string orderId, string SellerId,PortId,CardNumber,Success,maxrows,...

    单点登录源码

    本系统是基于RBAC授权和基于用户授权的细粒度权限控制通用平台,并提供单点登录、会话管理和日志管理。接入的系统可自由定义组织、角色、权限、资源等。用户权限=所拥有角色权限合集+用户加权限-用户减权限,优先级...

    carcar.sql

    自从来公司后都没用过jsp当界面渲染了,因为前后端分离不是很好,反而模板引擎用的比较多,thymeleaf最大的优势后缀为html,就是只需要浏览器就可以展现页面了,还有就是thymeleaf可以很好的和spring集成.下面开始学习. ...

Global site tag (gtag.js) - Google Analytics