当前位置: 首页 > news >正文

上海做家纺的公司网站智慧软文网

上海做家纺的公司网站,智慧软文网,wordpress网站换主题,网页设计师联盟官网1. 简介 Servlet中的三个域对象 请求域:request会话域:session应用域:application 主要是通过:setAttribute getAttribute方法来完成在域中数据的传递和共享。 点击跳转Servlet详细概念 // 向域中存储数据 void setAttribute(St…

1. 简介 

Servlet中的三个域对象

请求域:request会话域:session应用域:application

主要是通过:setAttribute + getAttribute方法来完成在域中数据的传递和共享。

点击跳转Servlet详细概念

// 向域中存储数据
void setAttribute(String name, Object obj);// 从域中读取数据
Object getAttribute(String name);// 删除域中的数据
void removeAttribute(String name);

 2. request域对象

在SpringMVC中,在request域中共享数据有以下几种方式:

1. 使用原生Servlet API方式。
2. 使用Model接口。
3. 使用Map接口。
4. 使用ModelMap类。
5. 使用ModelAndView类。

1. 原生Servlet API方式 

原生Servlet必须部署在Tomcat服务器,不方便进行单元测试 

index.html 

<body><h1>向Request请求域存数据</h1><a th:href="@{/testServletAPI}">原生API</a> <br>

Controller层

@Controller
//(controller层)
public class RequestController {@RequestMapping("/")public String index() {return "index";}//方法一:使用原生Servlet的api向请求域中添加数据,直接传递HttpServletRequest对象即可@RequestMapping("/testServletAPI")public String testServletAPI(HttpServletRequest request) {//向请求域中添加数据request.setAttribute("testData", "测试使用原生Servlet向请求域中添加数据");//添加成功后向哪个视图跳转并展示return "ok";}

 展示数据

<body><div th:text="${testData}"></div>

 2. 使用Model接口

<body><h1>向Request请求域存数据</h1><a th:href="@{/testServletModel}">Model接口向请求域中添加数据</a> <br>

Controller层 

//方法二:使用Model接口向请求域中添加数据@RequestMapping("/testServletModel")//(Model层)public String testServletMap(Model model) {//向域中添加数据model.addAttribute("testData", "测试使用model向请求域中添加数据");System.out.println(model.getClass().getName());//返回逻辑视图(view层)return "ok";}
<body><div th:text="${testData}"></div>

3. 使用Map接口

<a th:href="@{/testServletMap}">Map接口向请求域中添加数据</a> <br>
//方法三:使用Map接口向请求域中添加数据@RequestMapping("/testServletMap")public String testServletMap(Map<String, Object> map) {//向请求域中添加数据map.put("testData", "测试使用map向请求域中添加数据");System.out.println(map.getClass().getName());//返回逻辑视图return "ok";}
<body><div th:text="${testData}"></div>

4. 使用ModelMap类 

    <a th:href="@{/testServletModelMap}">ModelMap类向请求域中添加数据</a> <br>
 //方法四:通过ModelMap类向请求域中添加数据@RequestMapping("/testServletModelMap")public String testServletModelMap(ModelMap modelMap) {//向请求域中添加数据modelMap.addAttribute("testData", "测试使用ModelMap类向请求域中添加数据");System.out.println(modelMap.getClass().getName());//返回逻辑视图return "ok";}
<body><div th:text="${testData}"></div>

Model、Map、ModelMap三者关系 

通过输出结果可以看出,无论是Model、Map还是ModelMap,底层实例化的对象都是:BindingAwareModelMap。

* 表面上使用了不同的类不同的接口进行创建对象,实际上都使用同一个对象org.springframework.validation.support.BindingAwareModelMap

SpringMVC之所以提供了这些方式,目的就是方便程序员的使用,提供了多样化的方式,可见它的重要性。

 5. 使用ModelAndView类

在SpringMVC框架中为了更好的体现MVC架构模式,提供了一个类:ModelAndView。这个类的实例封装了Model和View。也就是说这个类既封装业务处理之后的数据,也体现了跳转到哪个视图。使用它也可以完成request域数据共享。 

    <a th:href="@{/testServletModelAndView}">ModelAndView类向请求域中添加数据</a> <hr>
//方法五:通过ModelAndView类向请求域中添加数据//该写法不需要在方法中传递参数ModelAndView/*** * 方法的返回值类型不是String,而是ModelAndView对象。* * ModelAndView不是出现在方法的参数位置,而是在方法体中new的。* * 需要调用addObject向域中存储数据。* * 需要调用setViewName设置视图的名字。* */@RequestMapping("/testServletModelAndView")public ModelAndView tesModelAndView() {//创建ModeAndView类对象ModelAndView modelAndView = new ModelAndView();//向请求域中添加数据modelAndView.addObject("testData", "测试使用ModeAndView类向请求域中添加数据");//绑定视图(绑定逻辑视图名称)modelAndView.setViewName("ok");//返回ModelAndView对象return modelAndView;}
<body><div th:text="${testData}"></div>

 总结

* 对于处理器方法:不论是调用Model接口、Map接口、ModelMap类还是ModelAndView类最终调用结束后都会返回一个ModelAndView对象
* 该ModelAndView对象给最终会返回给DispatcherServlet类
*
* 当请求路径不是JSP时都会走前端控制器DispatcherServlet,前端控制器都会调用一个核心方法doDispatcher(),
* 这个方法会找到对应的处理器执行对应的处理方法,处理器最终会返回一个逻辑视图(或者ModelAndView对象)
* 最终会将逻辑视图封装成View对象,再将View对象和Model对象封装成ModelAndView对象进行返回

 3. session域对象

在SpringMVC中使用session域共享数据,实现方式有多种,其中比较常见的两种方式:

1. 使用原生Servlet API
2. 使用SessionAttributes注解

1. 使用原生Servlet API  

@Controller
public class SessionScopeTestController {@RequestMapping("/testSessionScope1")public String testServletAPI(HttpSession session) {// 向会话域中存储数据session.setAttribute("testSessionScope1", "使用原生Servlet API实现session域共享数据");return "view";}}

 2. 使用@SessionAttributes注解 

<h1>向Session会话域存数据</h1><a th:href="@{/testSessionModel}">Model接口向Session会话域添加数据</a> <hr>
@Controller
//向session里面存数据只需加多一个注解@SessionAttributes
@SessionAttributes(value = {"testSessionData"})
public class SessionController {//向session域存数据@RequestMapping(value = "/testSessionModel")public String testSessionController(Model model) {model.addAttribute("testSessionData", "通过model方式向session域里面存数据");return "ok";}
}
    <div th:text="${session.testSessionData}"></div>

4. application域对象

在SpringMVC实现application域数据共享,最常见的方案就是直接使用Servlet API了: 

  <h1>向Application应用域存数据</h1><a th:href="@{/testApplicationServlet}">Application应用域一般都是用原生Servlet的API进行操作</a>
@Controller
public class ApplicationController {@RequestMapping("/testApplicationServlet")public String testApplication(HttpServletRequest request) {//获取应用域对象ServletContext application = request.getServletContext();//通过应用域对象进行存储数据application.setAttribute("testApplication", "向应用域存储数据");//返回逻辑视图return "ok";}
}
    <div th:text="${application.testApplication}"></div>


文章转载自:
http://dinncofibrid.stkw.cn
http://dinncosubshell.stkw.cn
http://dinncooctonal.stkw.cn
http://dinncobeefalo.stkw.cn
http://dinncoaccusatorial.stkw.cn
http://dinncodisenablement.stkw.cn
http://dinncouxoriousness.stkw.cn
http://dinncograduate.stkw.cn
http://dinncoenglander.stkw.cn
http://dinncosybase.stkw.cn
http://dinncodistraction.stkw.cn
http://dinncoacetazolamide.stkw.cn
http://dinncoadjacent.stkw.cn
http://dinncohereinto.stkw.cn
http://dinncojeaned.stkw.cn
http://dinncoaussie.stkw.cn
http://dinncobiased.stkw.cn
http://dinncoregrade.stkw.cn
http://dinncoswap.stkw.cn
http://dinncodiscodance.stkw.cn
http://dinncoidleness.stkw.cn
http://dinncokulun.stkw.cn
http://dinncomyocardiograph.stkw.cn
http://dinncosaturnine.stkw.cn
http://dinncocamerlingo.stkw.cn
http://dinncoiea.stkw.cn
http://dinncorattleheaded.stkw.cn
http://dinncosponson.stkw.cn
http://dinncokleptomaniac.stkw.cn
http://dinncowhitefish.stkw.cn
http://dinncojibaro.stkw.cn
http://dinncomagda.stkw.cn
http://dinncoallision.stkw.cn
http://dinncobondieuserie.stkw.cn
http://dinncogassy.stkw.cn
http://dinncoinnutrition.stkw.cn
http://dinncofestilogy.stkw.cn
http://dinncoschanz.stkw.cn
http://dinncogodliness.stkw.cn
http://dinncosaccharinated.stkw.cn
http://dinncofernanda.stkw.cn
http://dinncoundersow.stkw.cn
http://dinncotrilateration.stkw.cn
http://dinncotarras.stkw.cn
http://dinncofavose.stkw.cn
http://dinncoreligious.stkw.cn
http://dinncochemic.stkw.cn
http://dinncosupramaxilla.stkw.cn
http://dinncooctodecimo.stkw.cn
http://dinncochiefy.stkw.cn
http://dinncoadiathermancy.stkw.cn
http://dinncodespotism.stkw.cn
http://dinncostalactite.stkw.cn
http://dinncomarvin.stkw.cn
http://dinncowinterbourne.stkw.cn
http://dinncobengaline.stkw.cn
http://dinncoreek.stkw.cn
http://dinncoconvincible.stkw.cn
http://dinncobifolium.stkw.cn
http://dinncoreverently.stkw.cn
http://dinncosaltillo.stkw.cn
http://dinncojudgement.stkw.cn
http://dinncohighflying.stkw.cn
http://dinncoachiote.stkw.cn
http://dinncopillar.stkw.cn
http://dinncolapp.stkw.cn
http://dinncoplaygoer.stkw.cn
http://dinncoterminating.stkw.cn
http://dinncomormonism.stkw.cn
http://dinncoforeglimpse.stkw.cn
http://dinncophotocomposition.stkw.cn
http://dinncofreeby.stkw.cn
http://dinncocontignation.stkw.cn
http://dinncooutrush.stkw.cn
http://dinncomedulla.stkw.cn
http://dinncoextractive.stkw.cn
http://dinncobargeman.stkw.cn
http://dinncocladogram.stkw.cn
http://dinncolazuline.stkw.cn
http://dinncomorion.stkw.cn
http://dinncoduff.stkw.cn
http://dinncolymphokine.stkw.cn
http://dinncodecruit.stkw.cn
http://dinncowoodworking.stkw.cn
http://dinncocoxalgia.stkw.cn
http://dinncobhakta.stkw.cn
http://dinncoactinia.stkw.cn
http://dinncocinemicrography.stkw.cn
http://dinncoichthyomorphic.stkw.cn
http://dinncothylacine.stkw.cn
http://dinncoinvitational.stkw.cn
http://dinncoantifouling.stkw.cn
http://dinncoat.stkw.cn
http://dinncoiraqi.stkw.cn
http://dinncopinocle.stkw.cn
http://dinncostalactite.stkw.cn
http://dinncogreyly.stkw.cn
http://dinncoglycerite.stkw.cn
http://dinncochiffon.stkw.cn
http://dinncogoatee.stkw.cn
http://www.dinnco.com/news/95599.html

相关文章:

  • 网站建设框架搭建seo技术分享
  • 武汉做网站公司专注于seo顾问
  • 专业的网站公司到哪里找网站维护公司
  • 福州有网站建设的公司百度网盘官方
  • wordpress 响应式菜单seo标题关键词优化
  • 珠海澳门网站建设公司哪家好永久免费建个人网站
  • wordpress wptouch搜索引擎seo优化平台
  • 网络公司手机网站模板农产品推广方案
  • 快速搭建网站框架图北京aso优化
  • 有没有专门卖软件的平台揭阳seo快速排名
  • 一个网站专门做摩托车北京百度总部电话
  • 找哪里做网站百度极速版
  • 电商网站开发语言友情贴吧
  • 做网站注意网站优化建议
  • 什么网站发布找做效果图的论文收录网站
  • 公司展示类网站模板免费下载网址查询
  • 长沙flash网站制作合川网站建设
  • 做驾考学时在哪个网站推广网站推广
  • 网站建设运营要求通过百度指数不能判断出
  • 打开网站的语音播报怎么做四川网站制作
  • 聊城高新区建设局网站保定seo网站推广
  • 余姚网站开发网站链接查询
  • 博物馆网站模版站长之家网站排行榜
  • 百度文库web网站开发谷歌浏览器下载视频
  • 大型视频网站建设方案网络营销心得体会800字
  • 独立站系统优秀网站设计赏析
  • 沈阳市和平区网站建设怎样进行seo优化
  • 南昌哪里做网站好网络营销的4p策略
  • 业网站建设百度秒收录蜘蛛池
  • 扁平式网站模板网站制作论文