前言
.NET C#到Java没那么难,都是面向对象的语言,而且语法还是相似的,先对比一下开发环境,再到Servlet,再到MVC,都是一样一样的,只是JAVA的配制项比较多而已,只要配好一个,后面都是copy,简直so easy,而且用myeclipse可以省一些配制
Java与.NET的区别不在它们的本身,最大的区别在于他们背后的力量,相信大家都能感觉得到,我就不多说。
系列目录
一、.NET C#到Java没那么难,开发环境篇
三、.NET C#到Java没那么难,MVC篇
四、.NET C#到Java没那么难,MVC框架篇
五、.NET C#到Java没那么难,DB框架篇
六、.NET C#到Java没那么难,Nosql框架篇
七、.NET C#到Java没那么难,微服务篇
八、.NET C#到Java没那么难,大数据篇
.NET C#到Java没那么难,Servlet篇 目录 1. Servlet 和 Ashx(一般处理程序) 2. Servlet 和 JSP 3. Servlet的生命周期 4. Java Filter 和 HttpModule,ActionFilter 5.JSTL,EL 和 Razor 表达式 6. JSP内置9大对象,可和ASP.NET 对应 7. Servlet 示例代码 8. Servlet 国际化
1. Servlet 和 Ashx(一般处理程序)
Java Web和ASP.NET也是有相似的,java web的核心是Servlet,Jsp其实本质都是Servlet,而Servlet的流程可以比较清晰看到整个前后台是怎么工作的,类似.NET的ashx一般处理程序,Java是MVC的主要倡导者,随着web技术发展,Servlet主要被当作Controler使用,Jsp作为View使用,这在许多MVC框架有所体现.得益于开源社区的活跃,流行的Java MVC框架都比较成熟了.
2. Servlet 和 JSP
jsp最终也是转化被成Servlet,.java就是一个Servlet
当一个JSP文件第一次被请求的时候,Tomcat首先会把这个JSP文件转换成一个Java源文件。在转换过程中如果发现JSP文件有语法错误,转换过程将中断,并向服务端和客户端输出出错信息。如果转换成功,Tomcat用javac把该Java源文件编译成相应的.class文件并将该.class文件加载到内存中。
3. Servlet的生命周期
1).Servlet生命周期分为三个阶段:
1,初始化阶段:调用init()方法
2,响应客户请求阶段:调用service()方法
Service()方法内部对请求的类型(get/post)进行了判断,自动调用doPost/doGet
3,终止阶段:调用destroy()方法
2).Servlet的单例多线程:
单例:Servlet只在用户第一次请求时被实例化,并且是单例的,在服务器重启或关闭时才会被销毁。
多线程:当请求到达时,Servlet容器(Tomcat...)通过线程池中可用的线程给请求者并执行Service方法,每个线程执行一个单一的 Servlet 实例的 service() 方法
4. Java Filter 和 HttpModule,ActionFilter 1).Java Filter
Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。
它主要用于对用户请求进行预处理,也可以对HttpServletResponse进行后处理。使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。
Java Filter过滤器
2).HttpModule 和 ActionFilterHttpModule 是asp.net WebForm 的Filter
浅谈HttpModule
ActionFilter 是 asp.net MVC 的Filter
四种基本Filter概述
5.JSTL,EL 和 Razor 表达式
把代码标签化,表达式化,让前端人员也能维护,实现前后端分离
1). JSTL标签JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。
JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。
2).EL表达式EL(Expression Language) 目的:为了使JSP写起来更加简单。
它提供了在 JSP 中简化表达式的方法。它是一种简单的语言,基于可用的命名空间(PageContext 属性)、嵌套属性和对集合、操作符(算术型、关系型和逻辑型)的访问符、映射到 Java 类中静态方法的可扩展函数以及一组隐式对象。
这里对比的是Razor表达式
6. JSP内置9大对象,可和ASP.NET 对应 1).request对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。
2).response和out对象response对象包含了响应客户请求的有关信息,它是HttpServletResponse类的实例。
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
response和out
session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个
WebApplication开始,直到客户端与服务器断开连接为止。它是HttpSession
类的实例.
page对象就是指向当前JSP页面本身,有点象类中的this指针,它是java.lang.Object类的实例
pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是
说他可以访问到本页所在的SESSION,也可以取本页面所在的application的
某一属性值,他相当于页面中所有功能的集大成者,它的本类名也叫
page和pageContext
5).application对象application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器
的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前
后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何
地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和
关闭决定了application对象的生命。它是ServletContext类的实例。