dispatcherservlet怎么获取webapplicationcontext

dispatcherservlet怎么获取webapplicationcontext,第1张

使用Spring MVC,配置DispatcherServlet是第一步。

DispatcherServlet是一个Servlet,所以可以配置多个DispatcherServlet。

DispatcherServlet是前置控制器,配置在webxml文件中的。拦截匹配的请求,Servlet拦截匹配规则要自已定义,把拦截下来的请求,依据某某规则分发到目标Controller(我们写的Action)来处理。

“某某规则”:是根据你使用了哪个HandlerMapping接口的实现类的不同而不同。

先来看第一个例子:

Xml代码

<load-on-startup>1</load-on-startup>是启动顺序,让这个Servlet随Servletp容器一起启动。

<url-pattern>form</url-pattern>会拦截form结尾的请求。

<servlet-name>example</servlet-name>这个Servlet的名字是example,可以有多个DispatcherServlet,是通过名字来区分的。每一个DispatcherServlet有自己的WebApplicationContext上下文对象。同时保存的ServletContext中和Request对象中,关于key,以后说明。

在DispatcherServlet的初始化过程中,框架会在web应用的WEB-INF文件夹下寻找名为[servlet-name]-servletxml的配置文件,生成文件中定义的bean。

上下文,即语境、语意,是语言学科(语言学、社会语言学、篇章分析、语用学、符号学等)的概念。

语意分析(semantic analysis)技术系指将一长串的文字或内容,从其中分析出该个段落的摘要以及大意,甚至更进一步,将整篇文章的文意整理出来。此项技术可以应用在解读影片、音讯等档案,使得搜索引擎能够搜寻到文字以外的物件,方便使用者省去大量时间观看影片、聆听音讯,同时也可以帮助使用者提前了解影片与音讯的内容。

语境是语言学科(语言学、社会语言学、篇章分析、语用学、符号学等)的概念。

语境概念最早由人类学家马林诺夫斯基所提出,分为情景语境和文化语境。也可以区分成语言性语境和社会性语境。

语境(语言的文化背景、情绪景象、时空环境等)的介入,一方面使多义的语言符号趋向单义,另一方面又使语言符号节外生枝,增生出语境意义。语境意义甚至可以掩盖语言符号自身具有的意义而成为交际的主信息。语境也控制着交际者对语言符号的选用。我们这里所谓的语境意义,是指在语境中,语言符号实际具有的涵义,包括赋予义和解释义。

汉语中,"上下文"一词的出处,最早可追溯到唐代贾公彦《周礼义疏·秋官》。

《周礼·秋官》"原文:"若国札丧 ,则令赙补之 ;若国凶荒 ,则令委之 ;若国师役 ,则令槁之 ;若国有福事 ,则令庆贺之 ;若国有祸灾 ,则令哀吊之。凡此五物者 ,治其事故。贾公彦 [义疏 :此一"经" ,据上下文皆据诸侯国 ;此文虽单言"国"亦据诸侯而言。

贾疏是说 :"小行人职"一"经" ,根据上下文 ,皆是以诸侯国为据而言 ;这段文字中虽单说一个"国"字 ,也是指诸侯国 ,"令"的对象是诸侯。这样看来 ,贾疏所用"上下文"一词 , 已经具有语境的的含义。

在Javaweb中,上传下载是经常用到的功能,对于文件上传,浏览器在上传的过程中是以流的过程将文件传给服务器,一般都是使用commons-fileupload这个包实现上传功能,因为commons-fileupload依赖于commons-io这个包,所以需要下载这两个包commons-fileupload-121jar和commons-io-132jar。

1、搭建环境

创建Web项目,将包导入到项目lib下

2、实现文件上传

(第一种上传的方法)

新建uploadjsp页面

12345678910111213141516<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 401 Transitional//EN" ";

新建处理文件上传的Servlet

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667package comload; import javaioFile;import javaioIOException;import javautilList;import javaxservletServletContext;import javaxservletServletException;import javaxservletannotationWebServlet;import javaxservlet);  }}

(第二种上传的方法)

新建Jsp页面(同上,只是路径改变下)

12345678910111213141516<%@ page language="java" contentType="text/html; charset=UTF-8"  pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 401 Transitional//EN" ";

建立Servlet处理上传

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263package comload; import javaioFile;import javaioFileOutputStream;import javaioIOException;import javaioInputStream;import javaioOutputStream;import javaxservletServletException;import javaxservletannotationMultipartConfig;import javaxservletannotationWebServlet;import javaxservlet);  }}

(第三种上传的方法)

这里使用的是jspSmartUpload包上传下载,笔者认为这种上传下载较为简单,但是好像不是很多人用,不懂。

创建HTML页面

123456789101112131415161718192021222324252627<!DOCTYPE html><html><head><meta ;

创建Servlet处理上传文件

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182package comload; import javaioIOException;import javaioPrintWriter; import javaxservletServletException;import javaxservletannotationWebServlet;import javaxservlet);  } }

注意:代码 int count = susave("/share");表示你需要先建个文件夹,所以你可以先在Webcontent建立一个,然后将项目取消部署,再重新部署进去之后就会在运行那边建立起一个文件夹了!

或者你可以直接找到运行的路径,然后建立share文件夹。

3、实现文件下载

(第一种文件下载)

注意:该代码是直接访问Servlet类的

123456789101112131415161718192021222324252627282930313233343536373839404142package comload; import javaioFileInputStream;import javaioIOException;import javaioInputStream;import javaioOutputStream; import javaxservletServletException;import javaxservletannotationWebServlet;import javaxservlet);  } }

(第二种下载方法)

新建jsp页面选择下载

<%@ page language="java" contentType="text/html; charset=UTF-8"

  pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 401 Transitional//EN" ";

创建Servlet类进行下载(注意:该下载如果文件名是中文的话,一样会出现乱码现象)

package comload;

 import javaioBufferedInputStream;import javaioFile;import javaioFileInputStream;import javaioIOException;import javaioInputStream;import javaioOutputStream;import javanetURLEncoder; import javaxservletServletException;import javaxservletannotationWebServlet;import javaxservlet);  }}

(第三种下载的方法)

同上的jsp页面代码,这里就不再重复了。

新建Serlvet类,实现下载功能(注意:这里文件名就算是中文名,也不会出现乱码问题了!)

package comload;

 import javaioBufferedInputStream;import javaioFile;import javaioFileInputStream;import javaioIOException;import javaioInputStream;import javaioOutputStream;import javanetURLEncoder; import javaxservletServletException;import javaxservletannotationWebServlet;import javaxservlet>

今天小编要跟大家分享的额文章是关于Web前端新手要了解的Web前端小技巧。Web前端看上去好像是搞文艺的,整天都要“符合顾客的审美”,但其实它的重点主要是在功能方面,要超越桌面应用程序

Web应用程序必须提供简单、直观和即时响应的用户界面,让他们的用户花更少的精力和时间。

为了帮助大家更好的提高工作效率,今天小编就为大家带来了这篇Web前端小技巧的文章,希望能够对大家有所帮助。

一、界面元素的需求

在Web前端设计中,简单清新的页面是很重要的。在任何时候,用户的屏幕上显示的模块越多,那他将花费更多的时间去搞清楚所有模块的作用。当模块很少时,可用的功能变得更加明显更容易被发现。简化界面显然是不容易的,尤其是如果你不想限制应用程序的功能的时候。

当你点击Kontain

搜索框的搜索链接时,会出现一个类似于下拉菜单的层。所以,如果您需要来缩小搜索范围,您可以选择菜单中你所需要的类型。这些选项的聚合简化了搜索框。

我们需要了解用户的习惯,去掉不需要的部分,只显示最常用的部分。

你可以用d出式菜单和 *** 作来做这件事,这在桌面软件中很常见。决定该保留什么隐藏什么不是一个简单的任务,也会取决于重要性和 *** 作时的频繁程度。

二、专门 *** 作

根据情况选择合适的控件是很重要的。不同情况下可以用不同的方式处理,带有目的性的控件会比其他控件能够更好地完成他们的目标工作。

例如,拿日历和下拉列表来做比较,显然日历选择器相比下拉列表不是很方便,在日历里你可以直接通过点击选择你想要的某一天。日历选择器也会让你更容易看到日期、周期和月份(特别是工作日和休息日),因此能够让用户更快做出选择。

三、禁用按下按钮

在Web应用程序的表单问题中,如果你快速地点击两次或者更多次“提交”按钮,这个表单会被多次提交。这个问题是因为它会重复创建相同的项目。其实这个问题不难,大多数Web应用程序来说做到这一点是非常必要的。

它有两层维护:客户端和服务器端

。我们不会通过服务器端维护是因为这将取决于您使用的编程语言和你的后端架构。基本上你应该做的就是在提交过程中添加一个检测机制,去检查被提交的内容是否重复,并且是否需要阻止提交。

四、d出窗口的阴影

在d出菜单和窗口下的阴影不止是看起来很漂亮这么简单。它们帮助菜单或者窗口通过强调从背景中脱颖而出

。它们还通过周围暗色调区域来屏蔽掉背景内容的噪音。

这种技术来源于传统的桌面软件,帮助用户把他们的焦点放在出现的窗口上。由于大多数情景窗口是不容易从桌面程序中辨识出来,所以阴影帮助他们更接近于读者,因为这种类似于三维的立体感,让用户更好分辨出。

五、空白状态时你要做什么

当你的页面处在一个空白阶段时,你是怎么利用的

当在页面或者查询结果没有信息时,告诉用户如何才能处理这些空白区域是跟用户最好的交谈。例如,一个项目管理应用程序的网页可能会列出用户的项目,但如果没有项目,你可以提供一个创建项目的链接。即使已经有创建项目的按钮存在在页面上,但这还是大大有利的。

通过空白状态去激励用户行为,可以大大减少“d出”,并且帮助您的潜在客户,更好地了解该系统如何工作。

六、按钮按下的状态

本人很喜欢页面上看起来很立体的小按钮。其实默认输入按钮可能不适合在一些情况下,而文字链接很多时候不是很讨人喜欢。那么,当你把你的链接弄得看上去像按钮时,它们的 *** 作也应该和按钮一样,当然包括被“按动”的效果。

这不是一个纯粹的视觉调整。提供即时反馈给用户将使应用程序感觉更有响应性。

你可以通过CSS为按钮增加按下的效果。

七、在登陆页面提供注册的链接

这个大家应该都是懂的,无论你点进大大小小的网站,不干点啥都要注册个账号。现在这个流量比油贵的年代,哪个站长不设置个注册才傻呢。

一些没有注册你的应用程序的用户将不可避免地停在你的登录页面上。他们想要使用你的应用程序,但是却不能立刻找到注册页面,这样的用户体验,会让你永远的失去这个用户。

八、关联导航

站在用户角度思考为什么他会点这个,那么他下一步想看见的是什么就给他什么链接。你不需要在每个地方显示同样的导航链接因为在用户可能不是在每个环境中都需要它们。

Web应用程序也可以受益于这种上下文关联的控件,因为这些控件通过只显示用户需要的内容来帮助整洁界面,并非显示所有的内容。

以上就是小编今天为大家分享的关于Web前端新手要了解的Web前端小技巧!的文章,希望本篇文章能够对正在从事Web前端工作的小伙伴们有所帮助。想要了解更多Web前端相关知识记得关注北大青鸟Web前端培训官网。最后祝愿小伙伴们工作顺利!

声明:内容与均来源于网络(部分内容有修改),版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

AIRX三次方 •帮助年轻人获得适应未来社会的新技术能力

 专注 AR+VR+Unity+Unreal+CV+AI方向

WebGL是HTML5 canvas元素的扩展,现已广泛用于开发需要3D可视化的Web应用程序。它是一种3D图形API,基于OpenGL ES 20。为了简化开发,市面上有一些流行的基于WebGL的框架:

Threejs:Threejs是一个基于JavaScript的库,它以低复杂度在Web浏览器上创建3D内容,是轻量级的,可以在HTML5 canvas,SVG和WebGL的帮助下执行渲染。

Scenejs:Scenejs是基于WebGL的库,它使用JavaScript在Web浏览器上进行3D可视化。它与Threejs不同,因为它旨在快速呈现大量可单独拾取的对象。此功能使该库可用于工程和数据可视化应用程序。

谁开发了WebGL?一位名叫Vladimir Vukicevic的美裔塞尔维亚软件工程师完成了基础工作,并领导了WebGL的创建。在2007年,Vladimir开始为HTML文档的Canvas元素开发OpenGL原型。2011年3月,Kronos Group创建了WebGL。

主流浏览器(例如Google Chrome,Mozilla Firefox,Safari和Opera)都支持它,有些浏览器(例如Internet Explorer 11)并不完全支持WebGL。此外,WebGL是一种低级API,因为它被设计为直接与图形卡进行交互。因此,具有低图形卡内存的设备可能会带来严重的性能问题。

1、WebGL与OpenGL之间的主要区别

WebGL基于OpenGL ES,它缺少常规OpenGL具有的许多功能,例如仅支持顶点和片段着色器。OpenGL具有WebGL所不具备的功能,例如几何体着色器,曲面细分着色器和计算着色器。

WebGL主要用于浏览器。OpenGL确实需要本机驱动程序,并且主要用于安装软件。

WebGL用于Web应用程序,而OpenGL用于许多视频游戏。

WebGL更易于学习和开发应用程序。如果你熟悉WebGL,则可以轻松学习OpenGL。

在WebGL中,它可以使用2D纹理来伪造3D纹理。在OpenGL中,不需要这样做,因为它具有很多功能,例如几何体和着色器。

在WebGL中,从一开始就被迫学习使用着色器和缓冲区。在OpenGL中,并非如此。

WebGL具有较少的功能,因此学习曲线较少。OpenGL具有更大的学习曲线,因为它具有包括WebGL在内的许多功能。

WebGL基于OpenGL ES 2,而不是纯OpenGL。OpenGL ES是OpenGL的子集。OpenGL ES具有较少的功能,并且对用户来说非常简单。OpenGL具有很多功能并且难以使用。

2、桌面浏览器支持情况

Google Chrome浏览器 :自2011年2月发布第9版以来,所有具有图形卡且驱动程序已更新的平台均已启用WebGL 10。在Windows上,默认情况下,Chrome使用ANGLE(几乎本机图形层引擎)渲染器来翻译OpenGL ES Direct X 90c或110,具有更好的驱动程序支持。在Linux和Mac OS X上,默认渲染器为OpenGL,但是也可以将OpenGL强制为Windows上的渲染器。自2013年9月以来,Chrome还拥有更新的Direct3D 11渲染器,但需要更新的图形卡。

Mozilla Firefox浏览器 :从40版开始,所有具有图形卡且驱动程序已更新的平台均已启用WebGL 10。自2013年以来,Firefox还通过ANGLE在Windows平台上使用DirectX。

Safari:在OS X Mountain Lion,Mac OS X Lion和Mac OS X Snow Leopard上的Safari 51上安装的Safari 60和更高版本实现了对WebGL 10的支持,在Safari 80之前默认情况下已禁用。Safari 12版(在macOS Mojave中可用)具有对WebGL 20的支持,目前作为“实验”功能。

Opera :WebGL 10已在Opera 11和Opera 12中实现,但在2014年默认情况下已禁用。Opera43+支持WebGL 20。

Internet Explorer — Internet Explorer部分支持WebGL 10。最初,它没有通过大多数正式的WebGL一致性测试,但后来Microsoft发布了一些更新。最新的094 WebGL引擎目前已通过Khronos测试的约97%。也可以使用第三方插件(例如IE WebGL)将WebGL支持手动添加到Internet Explorer的早期版本中。

Microsoft Edge:最初的稳定版本支持WebGL 095版(上下文名称:“ experimental-WebGL”),以及从GLSL到HLSL转译器的开源GLSL。版本10240+支持WebGL 10作为前缀。在将来的版本中,WebGL 20被计划为中等优先级。

3、手机浏览器支持情况

BlackBerry 10:从OS 1000版开始,WebGL 10可用于BlackBerry设备。

BlackBerry PlayBook:WebGL 10可通过WebWorks和PlayBook OS 200中的浏览器获得

Android浏览器 :基本上不受支持,但是在固件升级后,索尼爱立信Xperia系列的Android智能手机具有WebGL功能。三星智能手机还启用了WebGL(已在Galaxy SII(412)和Galaxy Note 80(42)上进行了验证)。Google Chrome支持此功能,该功能已取代了许多手机中的Android浏览器(但不是新的标准Android浏览器)。

Internet Explorer : Windows Phone 8x(11+)上提供了WebGL 10

移动版Firefox:从Firefox 4开始,WebGL 10就可用于Android和MeeGo设备。

Google Chrome浏览器:WebGL 10自Google Chrome 25起可用于Android设备,自30版本起默认启用。

Maemo :在诺基亚N900中,从PR12固件更新开始,可在库存的microB浏览器中使用WebGL 10。

MeeGo:“ Web”不支持WebGL 10。但是,可以通过Firefox使用它。

Microsoft Edge:Windows 10 Mobile上提供了Prefixed WebGL 10。

Opera Mobile :Opera Mobile 12支持WebGL 10(仅适用于Android)。

Sailfish *** 作系统:默认的Sailfish浏览器支持WebGL 10。

Tizen:支持WebGL 10。

iOS:WebGL 10在iOS 8中可用于移动Safari。

参考链接:

>

以上就是关于dispatcherservlet怎么获取webapplicationcontext全部的内容,包括:dispatcherservlet怎么获取webapplicationcontext、什么是上下文、JavaWeb下载文件,怎么获取文件下载完毕的状态等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9461034.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存