楚雄java培训学校告诉你web前端编程该怎样学习?

楚雄java培训学校告诉你web前端编程该怎样学习?,第1张

做了那么多年Web编程,仔细想想,其实本质上就那点事儿,你抓住了几个重点问题,北大青鸟http://wwwkmbdqncn/分享学起来一点都不难。

1理解浏览器/服务器结构(B/S)

B/S是从90年代的客户端/服务器端发展而来,共同点都是由一个(或一组)服务器来服务多个客户端。差别在于:首先,C/S结构的客户端可能是由不同语言编写的,例如VB,Delphi,PowerBuilder等,B/S结构中浏览器成为了一个通用的客户端,程序以Web的方式呈现,不需要安装,服务器端的升级就意味着所有客户端的升级,这和C/S相比是个翻天覆地的变化。

其次B/S的访问协议也标准化为HTTP(s),而不是原来各种各样的私有协议。

最后B/S结构中的服务器面向全球用户访问,而不像C/S那样仅仅是局域网,所以压力更大,挑战更大。

2Web页面是怎么组成的

简单来说就是HTML+CSS+Java,我们看到的Web界面就是由这三者组成。

HTML负责结构,CSS负责展现,而Java负责行为。

我们说的前端开发也主要是做这一块,对于前端工程师,需要能理解DOM模型,以及如何通过java(例如JQuery等框架)来操作DOM模型。

3浏览器和服务器是怎么打交道的

当然是HTTP!HTTP说穿了就是浏览器和服务器聊天是的一种约定,这个约定确保双方互相理解。

完整的HTTP是非常复杂的,《HTTP权威指南》一书厚达700多页。

其实我们最常用,也是最重要的也就那么几点:

(1)GET和POST。GET从服务器端获取数据,POST向服务器端发送数据(由此引出上传问题)

(2)HTTP是个没有状态的协议,需要通过额外的机制来维持状态(例如登录状态),常用的方法就是cookie。

(3)理解HTTP状态码

(4)理解同步vs异步(由此引出AJAX,以及JQuery等框架)

4URL和代码的映射

理解url和代码之间的关联,例如wwwxxxcomaction=login这样的url是怎么和后端的业务代码关联起来的

这样的规则是在哪里定义的用代码、注解还是配置文件

后端的业务代码该如何组织相信现在不会有人把业务逻辑都写到Servlet当中了,所以需要很多MVC框架像Struts,SpringMVC来组织代码,让系统清晰易懂。

5数据的验证、转换和绑定

如何保证浏览器发过来的数据是符合要求的

例如不能为空、不超过8个字符、两个密码必须相等,出错了得给出错误提示。

浏览器发过来的数据都是形如username=liuxin&password=123456这样简单的文本,但是后台程序却有着丰富的数据类型,什么String,Date,Integer等等。所以需要把文本变成指定语言的类型。

类型转换以后,后端的业务代码怎么才能有效的使用呢最简单的就是弄一个key:value这个样的Map出来,业务代码直接用mapget(key)即可。高级一点的可以把页面发来的数据直接绑定到对象的属性上,并且支持数组,嵌套等复杂的结构。

例如username=liuxin&userpassword=123456可以绑定到一个叫User的对象,其中有两个属性userName和password。

先说解决办法吧,后面在分析:

1把/tomcat/webapps/目录清空,删掉该文件夹的所有内容,

2修改/tomcat/conf/webxml文件:

<servlet><servlet-name>default</servlet-name><servlet-class>orgapachecatalinaservletsDefaultServlet</servlet-class><init-param><param-name>debug</param-name><param-value>0</param-value></init-param><init-param><param-name>listings</param-name><param-value>true</param-value></init-param><load-on-startup>1</load-on-startup></servlet

3修改/tomcat/conf/serverxml文件:

<Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"xmlValidation="false" xmlNamespaceAware="false"><!-- SingleSignOn valve, share authentication between web applications Documentation at: /docs/config/valvehtml --><!-- <Valve className="orgapachecatalinaauthenticatorSingleSignOn" /> --><!-- Access log processes all example Documentation at: /docs/config/valvehtml --><!-- <Valve className="orgapachecatalinavalvesAccessLogValve" directory="logs" prefix="localhost_access_log" suffix="txt" pattern="common" resolveHosts="false"/> --><!----><Context path="/ser" docBase="D:\project\myProject\editor\WebRoot"></Context><!--<Context path="/mvc" docBase="D:\project\myProject\你的项目名\WebRoot"></Context>--></Host>

分析:

重新redeploy的时候, tomcat 会同步你本地的文件 ,因为本地没有相应的文件夹导致文件丢失。

这只是在开发过程中会遇到的问题 实际应用中 tomcat 只会 startupbat/sh shutdownbat/sh

我们这样做,其实就是给工程配置虚拟路径,这样tomcat在启动的时候直接找到工程了,

上传的就不会仅仅只在/tomcat/webapps/目录,而直接到了你的工程里,

不管你怎样重启项目,或者清理缓存,上传的文件依然存在!

先说服务器控件,把大部分属性序列化成ViewState,后台可以很方便的进行交互,但是当你页面里服务器控件多,或者有一个GridView的时候,ViewState隐藏表单的值会惊人的长而服务器控件的各个事件,也是通过提交表单的方式将消息传递到服务器,再由服务器响应这样带来的纯粹只是开发上的便利,运行效率是无法谈起的

就我个人感觉,MVC其实是想把ASPNET的网站从传统冗余的ViewState里解放出来在MVC里通过最传统的POST或者GET传值,这样不仅利于我们控制,而且生成的页面简洁的多

这些都是一些网上的说法和我自己的经验,具体用不用还是看你因为就算用服务器控件,也是可以编译通过的

至于呈现数据的话,我感觉这个不算什么问题啊可能你没接触过那些解释型语言,在不用服务器控件的环境下,若得到单个数据,用<%%>标签输出即可;若得到一个集合数据,进行遍历就可以循环展示

从 ASPNET MVC 迁移是一个多步骤过程。 本文介绍:

若要迁移配置和 Identity 代码,请参阅将配置迁移到 ASPNET Core并迁移身份验证和 Identity ASPNET Core。

在 Visual Studio 中创建 ASPNET MVC 项目的示例以进行迁移:

使用要迁移到的新 ASPNET Core 项目创建新的解决方案:

在 ASPNET Core 30 及更高版本的项目中,NET Framework 不再是受支持的目标框架。 你的项目必须面向 NET Core。 包含 MVC 的 ASPNET Core 共享框架是 net Core 运行时安装的一部分。 使用项目文件中的 MicrosoftNETSdkWeb SDK 时,会自动引用共享框架:

XML

有关详细信息,请参阅 框架引用。

在 ASPNET Core 中, Startup 类:

有关详细信息,请参阅 ASPNET Core 中的应用启动。

在 "ASPNET Core" 项目中,打开 " 启动 cs " 文件:

C#

ASPNET Core 应用必须选择包含中间件的框架功能。 上一个模板生成的代码添加以下服务和中间件:

此现有配置包括将示例 ASPNET MVC 项目迁移所需的内容。 有关 ASPNET Core 中间件选项的详细信息,请参阅 ASPNET Core 中的应用启动 。

在 ASPNET Core 项目中,将添加新的空控制器类和视图类作为占位符使用与要从中进行迁移的任何 ASPNET MVC 项目中的控制器和视图类相同的名称。

ASPNET Core WebApp1 项目已包含与 ASPNET MVC 项目相同的名称的最小示例控制器和视图。 这将用作 ASPNET mvc 控制器的占位符,以及要从 ASPNET mvc WebApp1 项目迁移的视图。

有关详细信息,请参阅 在 ASPNET Core MVC 中使用控制器处理请求 和 ASPNET Core MVC 中的视图。

可以测试每个控制器终结点,但在本文档的后面部分介绍了布局和样式。

在 ASPNET MVC 5 及更早版本中,静态内容是从 web 项目的根目录承载的,与服务器端文件混合。 在 ASPNET Core 中,静态文件存储在项目的web 根目录中。 默认目录为 {content root}/wwwroot ,但可以对其进行更改。 有关详细信息,请参阅 ASPNET Core 中的静态文件。

将 ASPNET MVC WebApp1 项目中的静态内容复制到 ASPNET Core WebApp1 项目中的 wwwroot 目录:

将 ASPNET MVC 项目布局文件复制到 ASPNET Core 项目:

将 ASPNET MVC 项目共享布局文件复制到 ASPNET Core 项目:

在 ASPNET Core 项目中,打开 _Layout。 进行以下更改,使其与下面显示的已完成代码相匹配:

更新启动 CSS 包含项以匹配以下已完成的代码:

已完成的启动 CSS 包含的替换标记:

HTML

更新 jQuery 和启动 JavaScript 包含项以匹配以下已完成的代码:

一、缓存

为了避免每次请求都去访问后台的资源,我们一般会考虑将一些更新不是很频繁的,可以重用的数据,通过一定的方式临时地保存起来,后续的请求根据情况可以直接访问这些保存起来的数据,这种机制就是所谓的缓存机制。缓存分为页面输出缓存,内存数据缓存和缓存依赖等。从设计原则来说,易变性、敏感性的信息不适合进行缓存,同时缓存的内容也是易丢失的,在代码中不能完全依赖于缓存的数据,需要保证在缓存的数据丢失后也能进行正确的处理。

1、页面输出缓存

通过对输出的页面进行缓存,每次新的用户请求调用相同的 Action 时,相同的内容不需要重新创建一次而直接输出。页面输出缓存的使用非常简单,在 Action 上使用 [OutputCache] 特性标记即可生效。页面输出缓存可控制缓存的内容所存储的位置,例如是在服务器端存储缓存的页面内容还是在客户端存储缓存的页面内容;也可使用 Duration 参数控制缓存的失效绝对时间和间隔时间,甚至能使用 VaryByParam 参数对不同的请求参数分别进行缓存。页面输出缓存非常适合于内容比较固定的前端页面的缓存。

2、内存数据缓存

通常情况下,数据是保存在数据库、磁盘文件等存储介质中的,而应用程序访问这些资源是一项很费时的操作。如果先将这些资源中的数据缓存到内存缓存区中,当应用程序需要这些数据时,直接从缓存区中提取,就可以减少系统开销,显著提高可使用的用户并发数等。内存数据缓存需考虑缓存的内容更改失效后如何清空其他已经被缓存的相关联的数据问题。

3、EFCache

众所周知,NHiberate 提供了二级缓存功能。现在,如果你使用的是 Entity Framework 6 或更高版本的 Entity Framework ,你也可考虑使用 EFCache 组件来为 Entity Framework 提供二级缓存支持,其实质上也是属于内存数据缓存。EFCache 的特点是使用上非常方便,仅需定义如下的代码无需其他复杂的额外的配置即可实现二级缓存。如需定义特定的缓存策略,如缓存的过期时间,控制数据缓存的范围,也仅需继承 CachingPolicy 类并 override 其部分方法即可。你甚至可以通过实现 ICache 接口来实现自定义的缓存模型以替换默认的 InMemoryCache 。

二、Stream压缩

对响应流进行压缩,其作用是减少网络开销,提高系统的响应速度。目前的浏览器通常都支持 gzip 和 deflate 压缩解压功能,因此你通常无效考虑浏览器的兼容性问题。启用 gzip 和 deflate ,既可通过 IIS 配置实现,在 MVC 中也可通过编写自定义的 ActionFilter 实现。在压缩之前和压缩之后 Stream 的大小差异通常都是惊人的,其压缩率通常都在5-10倍以上。

三、js和css文件的压缩和打包

1、js 和 css 文件的压缩

其实质就是生成较小的文件,减小下载这些文件的网络开销,提供系统的响应速度。压缩 js 和 css 文件还有个好处是通常还可以起到代码混淆的作用。在 YbSoftwareFactory 的 MVC 解决方案中,使用的是 Microsoft Ajax Minifier 组件,可在代码编译的过程中自动对所配置的 js 和 css 进行压缩,基本上文件的大小都可减少一半以上

2、js、css文件的打包

其目的是进行 js 文件和 css 文件的合并,当前主流浏览器的并发连接数默认情况下通常都是 6 个,如果前端页面同时请求的服务器资源(如 img 文件、js 文件、css 文件以及各类 url 请求等)超过6个,通常就需要进行排队下载。进行 js 文件、css 文件的打包合并,通常可以在一次请求中就完成未打包之前需多次请求才能完成的工作,通过减少前端浏览器的连接请求,在某种意义上也是可提高系统的响应速度的。

外网上满足部署ASPNET MVC的条件了吗?比如NET 版本。检查globalasax里的映射规则。自定义的HtmlHelper中引用的相对路径。

天下数据--专业运营香港服务器、韩国服务器、美国服务器等等海外优质服务器!

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 楚雄java培训学校告诉你web前端编程该怎样学习?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情