谷哥的小弟
历任研发工程师,技术组长,项目经理;曾于2016年、2020年两度荣获CSDN年度十大博客之星。
十载寒冰,难凉热血;多年过去,历经变迁,物是人非。
然而,对于技术的探索和追求从未停歇。
坚持原创,热衷分享,初心未改,继往开来!
展开
-
JavaWeb核心技术系列教程(33)——相对路径与绝对路径
在使用重定向、请求转发和超链接时均涉及到路径问题,在本节教程中我们重点讲解相对路径与绝对路径。在重定向中不以/开头的路径表示相对路径。那么,究竟什么是相对路径呢?在该示例中,假若我们要访问FirstServlet,那么其完整路径为:原创 2019-10-15 22:08:30 · 523 阅读 · 0 评论 -
JavaWeb核心技术系列教程(32)——国际化
所谓的国际化就是指软件应具备支持多种语言和地区的功能,也就是说软件能针对不同国家和地区的来访用户,提供符合来访者阅读习惯的页面和数据。由于国际化internationalization的首字母i和尾字母n之间有18个字符,因此国际化被简称为il8n。原创 2019-10-08 16:54:57 · 455 阅读 · 0 评论 -
JavaWeb核心技术系列教程(31)——JSTL I18N标签库
在JSTL中I18N标签库是国际化、格式化标签库,它包含实现Web应用程序的国际化标签和格式化标签。例如,设置JSP页面的本地信息、设置JSP页面的时区、按照本地格式显示日期等。在JSP页面中,可使用taglib指令引入I18N标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>该标签库中的函数和Java中相关方法基本一致;故,在此省略针对各标签的详细讲解,我们以示例的形式学习I18N标签库中常原创 2019-10-08 00:40:11 · 453 阅读 · 0 评论 -
JavaWeb核心技术系列教程(30)——JSTL Functions标签库
为简化JSP页面中对字符串的操作,JSTL中的Functions标签库中提供了一套自定义 EL函数。在JSP页面中,可使用taglib指令引入Functions标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>该标签库中的函数和JavaSE中相关方法基本完全一致;故,在此省略针对各函数的详细讲解,我们以示例的形式学习Functions标签库中常用函数。原创 2019-10-08 00:17:13 · 544 阅读 · 0 评论 -
JavaWeb核心技术系列教程(29)——JSTL Core标签库
Core标签库是JSTL中的核心标签库,该库中包含Web应用中通用操作的标签。在JSP页面中,可使用taglib指令引入Core标签库:<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 在此,我们对该库中的常用标签进行详细讲解。原创 2019-10-07 23:48:03 · 696 阅读 · 0 评论 -
JavaWeb核心技术系列教程(28)——JSTL入门
之前,我们介绍了JSP常用便签以及JSP自定义标签。其实,早在从JSP 1.1规范开始JSP就支持使用自定义标签了,使用自定义标签极大地降低了JSP页面的复杂度,同时增强了代码的重用性;所以,自定义标签在WEB应用中被广泛使用。故,许多WEB应用厂商都开发出了自己的一套标签库,这导致出现了许多功能相同的标签,令开发人员无从选择,无所适从,手忙脚乱。为了解决该问题,Sun公司研发了一套JSP标准标签库(Java Server Pages Standard Tag Library),简称JSTL。原创 2019-10-07 16:57:57 · 432 阅读 · 0 评论 -
JavaWeb核心技术系列教程(27)——EL表达式隐式对象
在介绍JSP技术时,我们学习了JSP的隐式对象。类似地,在EL技术中同样提供了隐式对象。在此,详细介绍EL中11个隐式对象。原创 2019-10-06 22:24:59 · 792 阅读 · 0 评论 -
JavaWeb核心技术系列教程(26)——EL表达式基本语法
Servlet和JSP分工明确,各司其职:Servlet负责业务逻辑,即:获取表单数据、流程处理、分发与重定向;而JSP负责数据的显示 。假若,我们在开发过程中仍然在JSP中编写Java代码则显然违背了Servlet和JSP这两者的分工原则,而且造成JSP页面繁杂、可读性较差、且不易维护。为进一步简化JSP页面中访问数据的操作JSP2.0规范推出了表达式语言Expression Language,简称EL表达式。EL表达式核心用途在于替代基于<%= %>形式的Java表达式以及基于<% %>形式的Java片原创 2019-10-06 19:53:15 · 655 阅读 · 0 评论 -
JavaWeb核心技术系列教程(25)——JSP应用示例
在本节教程中,我们通过几个案例来巩固之前学习的JSP理论基础知识。原创 2019-10-05 21:18:26 · 711 阅读 · 0 评论 -
JavaWeb核心技术系列教程(24)——JSP最佳实践
通过之前的学习,我们知道:从本质上来讲,JSP就是一个Servlet。所以,JSP和Servlet都可以用于开发动态web资源。可是,如果让JSP既用Java代码产生动态数据又做页面美化会导致代码难以维护;同理,如果让Servlet既处理逻辑又负责HTML的显示则会导致程序臃肿繁杂,代码可读性和复用性都非常差。鉴于它们各自的特点,在长期的软件实践中,人们逐渐把Servlet作为Web应用中的控制器(Controller)组件来使用而把JSP作为数据显示(View)模板来使用。原创 2019-10-05 16:13:00 · 397 阅读 · 0 评论 -
JavaWeb核心技术系列教程(23)——JSP标签
我们常在JSP页面中嵌套Java代码实现某种功能,但是过多的Java代码会使JSP页面繁杂凌乱,非常不利于程序的调试和维护。为了减少JSP页面中的Java代码,Sun公司允许在JSP页面中使用标签实现原由Java代码编写的功能。在本节教程中,我们将介绍JSP常用标签及其用途。原创 2019-10-05 12:44:07 · 707 阅读 · 0 评论 -
JavaWeb核心技术系列教程(22)——JSP隐式对象
JSP隐式对象又被称为JSP内置对象。JSP隐式对象由JSP引擎自动创建,我们可以在JSP页面中直接使用这些对象。JSP当中有哪些隐式对象呢?它们又是在何时创建的呢?为了加深对于JSP隐式对象的理解,我们准备如下示例:原创 2019-10-04 21:22:55 · 661 阅读 · 0 评论 -
JavaWeb核心技术系列教程(21)——JSP指令
JSP指令用于设置整个JSP页面的属性。也就是说:JSP指令用于告知JSP引擎如何处理JSP页面中代码。在JSP 2.0规范中定义了三个指令: page指令、include指令、taglib指令。在此,我们对其分别对其进行详细介绍。原创 2019-10-04 16:47:45 · 507 阅读 · 0 评论 -
JavaWeb核心技术系列教程(20)——JSP基本语法
默认情况下,当JSP页面被翻译成Servlet程序时,JSP中包含的脚本片段、表达式、前端代码都将被翻译至Servlet的_jspService( )方法中。此时,JSP脚本片段中定义的变量都将成为_jspService( )方法中的局部变量,JSP脚本片段中定义的方法也都将插人到_jspService( )方法中。此时,因为在方法中再定义方法造成语法错误。为了解决类似问题,在JSP技术中提供了声明。原创 2019-10-04 12:29:44 · 632 阅读 · 0 评论 -
JavaWeb核心技术系列教程(19)——JSP入门及运行原理
JSP(全称JavaServer Pages)是由Sun公司研发的建立在Servlet规范之上的动态网页开发技术。在我们之前的学习中常用HTML显示页面 ,但是,HTML页面是静态的,也就是说:我们无论何时访问该页面看到的总是同样的内容。在不少情况下,静态页面的短板难以实现动态的效果;例如,每次打开新闻页面时浏览次数需动态生成;每次打开火车购票页面看到的车票余额需动态生成;每次打开天气预报页面需动态生成近期天气情况。显然,单纯地依靠HTML时无法完成类似的开发工作。此时,我们可使用Servlet技术将页面动原创 2019-10-04 11:20:31 · 788 阅读 · 0 评论 -
JavaWeb核心技术系列教程(18)——Listener
Listener也称之为监听器,它是JavaWeb三大组件(Servlet、Filter、Listener)之一。JavaWeb开发中我们有时需要监听域对象HttpServletRequest、HttpSession、ServletContext的创建与销毁及其属性变化,概述如下:原创 2019-10-04 00:43:40 · 643 阅读 · 0 评论 -
JavaWeb核心技术系列教程(17)——Filter
Filter也称之为过滤器,它是JavaWeb三大组件(Servlet、Filter、Listener)之一。它主要用于对用户请求进行预处理和对响应结果进行后处理。也就是说:使用Filter技术可在HttpServletRequest到达Web资源之前,拦截客户的HttpServletRequest并根据需要检查HttpServletRequest,亦可修改HttpServletRequest;使用Filter技术可在HttpServletResponse到达客户端之前,拦截原创 2019-10-03 19:16:34 · 641 阅读 · 0 评论 -
JavaWeb核心技术系列教程(16)——HttpSession
十多年过去了,我早已离开了石家庄。我在北国超市使用的折叠式的会员卡也早已落入生活的尘埃里。 今日,当我再去商场办理会员卡的时候店员也不会再给我一张纸质的会员卡了,只需要提供手机号就可以。每当我去商场购物,只需要报自己的手机号店员就可以查询到我的姓名、消费详情、家庭住址、消费总额、积分额度等信息。换句话说:会员卡的相关信息不再掌握在我自己手中而是保存在了商场里。Cookie技术可以将用户的信息保存在各自的浏览器中,并且可以在多次请求下实现 数据的共享。但是,如果传递的信息比较多,Cookie技术会增大服务..原创 2019-09-30 14:09:04 · 750 阅读 · 1 评论 -
JavaWeb核心技术系列教程(15)——Cookie
十多年前,我在美丽的石家庄。裕华路旁有家本地非常出名的商场,叫做北国超市;超市的二楼有一家运动服装专卖店。为了能够享受购物优惠,我在专卖店办了一张折叠式的会员卡(类似于纸质的存折),卡上标注了我的姓名、手机号、家庭住址、消费总额、积分额度等信息。每次去店里买东西,店员都会依据我的消费记录计算优惠额度并累加本次所得积分。类似地,在客户端与Web服务器通信的过程中Cookie的功能就类似于这种折叠式的会员卡。当浏览器访问Web服务器时,服务器可将信息存放在Cookie中再返回至客户端。当浏览器再次访问服务器时都原创 2019-09-29 20:56:04 · 648 阅读 · 0 评论 -
JavaWeb核心技术系列教程(14)——请求转发与请求包含
假若客户端浏览器发起的请求很复杂,单独一个Servlet不能够完成业务处理需要其它Servlet协同。此时,需在当前Servlet中调用其它Servlet的service( )方法协助处理。但是,自Servlet 2.1开始不能在Servlet中调用其它Servlet的service( )方法。在此情况下,我们可使用RequestDispatcher接口实现请求转发和请求包含。原创 2019-09-29 10:25:38 · 821 阅读 · 0 评论 -
JavaWeb核心技术系列教程(13)——请求重定向
有时候,客户端发起请求;但是,服务端Servlet可能无法完成全部工作。这时, 我们需要使用请求重定向来完成后续的工作。所谓请求重定向,指的是Web服务器接收到客户端的请求后让客户端重新发送指向其它资源的请求。为了实现请求重定向,在HttpServletResponse接口中定义了sendRedirect( ) 方法。该方法用于生成302响应码和Location响应头,从而通知客户端重新访问 Location响应头中指定的URL原创 2019-09-28 22:40:54 · 668 阅读 · 0 评论 -
JavaWeb核心技术系列教程(12)——HttpServletRequest应用示例
在本节教程中,通过示例的方式介绍HttpServletRequest常见应用场景及其使用方式。原创 2019-09-28 19:41:41 · 676 阅读 · 0 评论 -
JavaWeb核心技术系列教程(11)——HttpServletRequest对象详解
HttpServletRequest接口继承自 ServletRequest专门用于封装HTTP请求消息。由于HTTP请求消息分为状态行、请求消息头、请求消息体(实体信息)三部分;因此,在HttpServletRequest接口中对应地定义了与请求行、请求消息头、请求消息体(实体信息)相关的方法。在此,我们分别对这些方法进行详细介绍。原创 2019-09-27 18:14:11 · 930 阅读 · 0 评论 -
JavaWeb核心技术系列教程(10)——HttpServletResponse应用示例
在本节教程中,通过示例的方式介绍HttpServletResponse常见应用场景及其使用方式。原创 2019-09-27 11:37:28 · 1124 阅读 · 0 评论 -
JavaWeb核心技术系列教程(09)——HttpServletResponse对象详解
Servlet最核心的工作就是处理客户端请求并向客户端作出响应。为此,针对Servlet的每次HTTP请求,Web服务器在调用service (HttpServletRequest request,HttpServletResponse response)方法之前,都会创建HttpServletRequest 和HttpServletResponse。其中,HttpServletRequest用于封装HTTP请求消息,简称request对象;HttpServletResponse用于封装HTTP响应消息,原创 2019-09-26 17:18:50 · 812 阅读 · 0 评论 -
JavaWeb核心技术系列教程(08)——ServletContext
ServletContext接口是Servlet程序与Servlet容器之间进行通信的接口。Servlet容器在启动 Web应用时,会为其创建与之对应的ServletContext对象。每个Web应用都有一个唯一的ServletContext对象,它代表了当前Web应用。当Servlet容器初始化Servlet对象时,ServletContext对象随着ServletConfig对象提供给了Servlet。我们可通过ServletConfig对象的getServletContext( )方法获取Servle原创 2019-09-26 14:50:39 · 678 阅读 · 0 评论 -
JavaWeb核心技术系列教程(07)——ServletConfig
在Servlet运行期间,经常需要一些辅助信息。例如:文件使用的编码方式等。为此,我们可在Servlet的配置文件web.xml中可使用init-param标签为Servlet配置初始化参数。当Servlet配置了初始化参数后Servlet引擎在创建Servlet实例对象时会自动将这些初始化参数封装到ServletConfig对象中并在调用servlet的init( )方法时将ServletConfig对象传递给Servlet。所以,可通过ServletConfig对象得到当前web.xml中设置的初始化参原创 2019-09-26 00:01:49 · 527 阅读 · 0 评论 -
JavaWeb核心技术系列教程(06)——HttpServlet
javax.servlet.http.HttpServlet是一个抽象类,它继承自javax.servlet.GenericServlet。HttpServlet类为Servlet接口提供了与HTTP协议相关的通用实现。在HTTP的请求消息中请求方式有 GET、POST、HEAD、PUT、DELETE、 TRACE、OPTIONS和CONNECT共8种。故,在HttpServlet其提供了对应的doXXX( )方法用于依据不同类型的HTTP请求作出对应的响应,例如:doGet( )、doPost( )...原创 2019-09-25 22:42:23 · 801 阅读 · 0 评论 -
JavaWeb核心技术系列教程(05)——GenericServlet
javax.servlet.GenericServlet是一个抽象类,该类实现了Servlet接口、ServletConfig,接口以及java.io.Serializable接口。GenericServlet抽象类为Servlet接口提供了通用(generic)实现,它与任何网络应用层协议无关。在GenericServlet抽象类中service(ServletRequest req, ServletResponse res)为抽象方法,定义如下:原创 2019-09-25 20:46:43 · 485 阅读 · 0 评论 -
JavaWeb核心技术系列教程(04)——Servlet入门详解及原理剖析
Servlet由Sun公司研发,它是一种运行在Web服务器中的小型Java程序。Servlet通过HTTP协议接收Web客户端的请求并对其作出响应。其实,关于Servlet的作用,我们只看它的名字也能知晓一些端倪:Serv是Server(Service)的缩写;let后缀表示"小"的含义.比如:booklet表示小册子,townlet表示小镇,lakelet表示小湖…server表示服务器;所以把Server(Service)与let后缀融合在一起的Servlet表示服务端的小程序。嗯哼,这么说是不是就更原创 2019-09-25 20:15:49 · 1108 阅读 · 2 评论 -
JavaWeb核心技术系列教程(03)——HTTP协议
HTTP是Hyper Text Transfer Protocol的缩写,即超文本传输协议。它是一种请求/响应式的协议,客户端在与服务器端建立连接后就可以向服务器端发送请求,这种请求被称作HTTP请求;服务器端接收到请求后会做出相应的响应,这种响应被称为HTTP响应。为克服HTTP 1.0的缺陷,在改进后的HTTP 1.1版本中支持持久连接;也就是说在同一个连接上可传送多个HTTP请求和响应,从而减少了建立和关闭连接的消耗和延时。基于HTTP 1.1的客户端和服务器端通信过程中当客户端与服务器端建立连接后原创 2019-09-23 00:57:23 · 2232 阅读 · 0 评论 -
JavaWeb核心技术系列教程(02)——Web服务器Tomcat
Web服务器(Web Server)也称为WWW(WORLD WIDE WEB)服务器,它的核心功能是依据客户端的请求将对应数据返回至客户端。Tomcat最初是由Sun的软件架构师詹姆斯·邓肯·戴维森开发的。后来,詹姆斯·邓肯·戴维森将其变为开源项目,并由Sun贡献给Apache软件基金会。Tomcat在成为Apache开源软件组织的软件项目后得到了广大开源代码志愿者的大力支持,可与目前大部分的主流Web服务器(IIS、Apache服务器)一起工作,而且运行稳定、可靠且高效。Tomcat已成为目前开发企业J原创 2019-09-22 15:07:56 · 1631 阅读 · 0 评论 -
JavaWeb核心技术系列教程(01)——Web技术概述
对于C/S架构和B/S架构,我们不能简单粗暴地判断孰优孰劣。它们各有所长,各有所短,各自有着不同的应用场景。至于到底选择哪个架构进行项目开发,我们应从实际需求出发、各方权衡。写到这,又让我想起童鞋们的争论:哪种语言最好?在回答这个问题之前,我们不妨先思考另外一个问题:好的标准是什么?语言本身没有高低优劣之分,只不过它们擅长的领域不同,有着各自不同的应用场景。例如:C语言擅长做底层开发,Java适合做Web系统,Python擅于数据分析。原创 2019-09-20 21:42:54 · 1756 阅读 · 3 评论