JavaWeb

[北京圣思园Java Web培训视频]_001.HTML常见标签深入详解

HTML是一种弱标签,可以不用成对出现。浏览器引擎对此标签智能,一般都能正确解析。

HTML标签都是死的,只需要知其意,用的时候再去查即可。

html属性值可以用双引号、单引号,或者不用引号,直接写属性值。

2011/8/2 23:53:09

标签默认type为text。

样式表应用规则(优先级从低到高):浏览器默认、外部样式表、内嵌样式表、行内样式表。

2011/8/3

HTTP是一种基于请求、响应的无状态协议。HTTP 1.0/1.1,1.1中引入了持续连接的机制。

URL格式:protocol://hostname(IP Address):[port][abs_path],一般情况下我们只需输入域名,浏览器会我们默认添加上http://,80端口。当没有abs_path时,必须以“/”形式给出,通常下这个工作也是浏览器为我们添加了。

使用Telnet工具可以看到浏览器请求/响应的慢动作。

TomCat是用纯Java语言编写的。TomCat使用前一定要配置环境变量,Java_Home。//CATALINA_HOME

2011/8/7

终于接触到JSP、servlet了。接触得越多,越有点消化不了。

2011/8/7

MyEclipse中集成了一个Tomcat服务器,但是我们一般不同它,将它disable。然后手动配置一个外部的Tomcat,将外部Tomcat“形式上”集成到MyEclipse中,以后对Tomcat启动、关闭都在MyEclipse中操作即可。

Tomcat中conf目录中server.xml文件是服务器的配置文件,我们在部署项目(Web Application)时可以对它进行配置。Context即上下文,path属性为逻辑地址(上下文路径),docBase属性为物理地址,将docBase映射为path路径。

JSP一般是不需要配置web.xml文件的,servlet是必须配置web.xml文件。

对于JSP文件修改后不需要重启服务器,对于servlet修改后必须要重启服务器,可以通过reloable为ture设置服务器检查到文件修改后自动重载。

我们可以将servlet看作是嵌套了HTML代码Java类,将JSP看作是嵌套了Java代码的HTML页面。

2011/8/8

get和post方法的本质区别是请求格式不同,查询字符串(query string)在get方法中是和url中地址一起发送给服务器的,而在post方法中查询字符串是作为请求体一起发送给服务器的。

2011/8/14

JSP

HTML页面中嵌入Java代码,加入新标签(),在该标签中可以写任何Java代码,这些Java代码都是在服务器端执行,可以将结果响应给客户端。

JSP和Servlet在本质上是一样的。JSP文件在被客户端请求时,服务器调用Jsp Parser将Jsp编译成Servlet源文件(一个Java类),然后服务器调用JDK将对应Servlet编译成Servlet字节码,JVM执行字节码。从该过程可以看出JSP文件会被解析成Servlet,所以JSP和Servlet在本质上相同。

JSP源代码中包含两部分:JSP元素和Template data。模版数据即原始的HTML标签,jsp引擎不会处理模版元素,直接将模版元素响应给客户端。JSP元素就是标签()中的Java代码,JSP引擎会对其进行处理。

JSP中注释:普通HTML注释(),会发送到客户端。JSP注释(隐藏注释)(),不会发送到客户端。

编译器指令(directive):page指令,include指令。。

包含指令中file属性,file=“相对路径/绝对路径"。

JSP内置对象9个:request、response、pageContext、session、application、out、config、page、exception。

out.println换行指发送给客户端的HTML源代码换行,out.print指HTML源代码不换行。

标签指浏览器解析html源代码呈现出来的内容换行,这是两个不同概念。

2011/9/18

Web应用部署方法:1、直接配置tomcat安装目录下的conf目录中的server.xml文件,在倒数第四行上加上。

path属性即上下文路径,是映射到docBase物理路径的逻辑路径。注意:path不是Web项目名,可以任意命名。path必须以“/”开头。docBase中的物理路径可以直接为反斜线“\”。

2、通过MyEclipse中“Deploy MyEclipse J2EE Project to Server...”方式。

3、直接将Web应用文件夹复制到tomcat安装目录下的webapps目录下,Web应用文件夹叫什么名字,在浏览器中URL的端口后就输入什么名字,也就是上下文路径。

2011/9/20

request、session、application这3个对象的生命周期(有效范围)是逐个增加的,request只在一个请求范围内,application是在整个服务器运行过程中。

表单验证:客户端验证、服务器端验证,可以直接输入URL进入服务器端验证,从而绕过客服端验证,所以服务器端验证必须要有。

JS脚本中获取表单中标签方法:1、通过标签id属性(id属性只能在前端(JS)中使用),username = document.getElementById(id),“username.value == "",username.value.length == 0”,这两种方法可以验证用户名为空。如果表单没有写action,则默认提交给自己。表单默认提交方法为get。

2、通过标签name属性(既可以在前端使用,也可以在服务器端使用),username = document.getElementByName(name)[0],username为一个数组,取出第一个元素。

类型为checkbox的标签元素有checked属性,为一个布尔值。

getElementByTagName("input"),通过标签名获得标签对象。有了标签对象就可以反过来获得标签对象的所有属性:name、value、id等。

3、通过表单名字(name),找到表单,在通过表单中的标签名字(name)找到特定标签,即可定位到具体标签。然后再“.value、.value.length”等具体验证。

JavaBean

JavaBean本质上是一个Java类。JSP侧重生成动态网页,JavaBean侧重事务处理。

JSP--->>JSP+JavaBean--->>JSP+Servlet+JavaBean,后者即为MVC(Model,View,Controller)设计模式。

View即为一个结果呈现,也就是JSP页面,Controller即一个一个Servlet,Servlet去调用不同的Model(Java类)。模型跟数据库打交道。Servlet不跟数据库打交道。

JavaBean是一个public类,有一个不带参数的构造方法,通过setXXX设置属性、通过getXXX获得属性。为什么要满足这三个条件?因为可以通过反射机制调用set、get方法。

JavaBean规则:

1. 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量的值,即更改或获取属性,在类中可以使用两个方法:

getXxx(),用来获取属性xxx。

setXxx(),用来修改属性xxx。

2. 对于boolean类型的成员变量,即布尔逻辑类型的属性,允许使用"is"代替上面的"get"和"set"。

3. 类中方法的访问属性都必须是public的。

4. 类中如果有构造方法,那么这个构造方法也是public的并且是无参数的。

---摘自百度百科

JSP中访问JavaBean语法:导入JavaBean类,声明JavaBean对象,访问JavaBean属性。

2011/9/21

id为beanInstanceName,即JavaBean对象的一个引用。class为JavaBean类的完全限定名。

,property即bean对象的具体成员变量,name即为id值,也就是一个具体的bean对象,value即将要设置的值。

JavaBean的范围:scope(生命周期),page(默认值),request,session,application。page即当前页面,存活范围最小,当前页面结束即结束JavaBean对象。

bean为request作用域时,同一个request中的不同jsp页面可以共享bean对象,request消失bean消失。1、在别的页面中通过request.getAttribute("id/name")获得上个页面的bean对象。2、直接,。

JavaBean中对于boolean类型变量可以定义get方法或者is方法,不必一定要get方法,也只有boolean类型变量为特例。

2011/9/23

表单在没有写action属性时,提交给当前页面,在没有写method属性时,默认以get方法提交,get方法提交表单时,表单中的value值都是随同URL一起提交。提交的URL格式为:url+"?name=value&name=value&..."。

处理乱码:统一所有编码,包括请求和响应。客服端到服务器的请求字符编码默认为ISO-8859-1,服务器对JSP呈现字符编码为utf-8。

修改tomcat服务器web.xml默认编码。

Servlet

Servlet(接口)---实现类:GenericServlet(抽象类),GenericServlet直接子类:HttpServlet(抽象类)。

HttpServlet类中:service方法和doXXX方法的关系:“There's almost no reason to override the service method.”,从客服端来的请求首先是到达service方法,然后通过service方法发到相应的doXXX方法。该service方法是从GenericServlet类中继承下来的方法,tomcat源码中的实现是:首先将ServletRequest(Response)强转为HttpServletRequest(Response),然后调用自身的另一个protected型service方法。

自身的service方法在实现时:首先获得请求方法名字,然后根据方法名字调用对应的doXXX方法,比如说请求方法为GET,就去调用doGet方法,注意:请求方法名字为大写GET,这是HTTP协议所要求。

在HttpServlet中提供的doGet、doPost方法都是直接返回错误信息,所以我们需要在自己定义的Servlet类中重写这些方法。

request中的setAttribute方法在底层实现就是用的一个HashMap,即键值对,setAttribute(String name,Object obj),当name重复时覆盖原先的obj。在getAttribute时,如果name不存在就返回一个null。

ServletRequest接口的ServletInputStream常用于文件上传,ServletResponse接口的ServletOutputStream常用于文件下载。

Servlet的生命周期:初始化阶段(init方法),响应客户请求(service方法),中止阶段(destroy方法)。

在servlet的整个生命周期内,init方法只会被调用一次。

servlet类被tomcat装载后,首先会创建一个实例,而且只会创建一个实例,因为它是单实例的,多线程的。所以servlet是单例模式的一个具体使用。

web.xml中的中添加子元素,元素内容设置为数字,按照数字的先后顺序在启动tomcat服务器时自动加载这些servlet。

2011/9/24

0:59:09

关于tomcat的Web Application部署另外方法:通过tomcat自带的web应用(manager)来实现deploy,该应用还可以start、stop、reload、undeploy每个应用。

tomcat自带的web应用有5个:“/”、“/docs”、“/examples”、“/host-manager”、“/manager”。在tomcat的web.xml文件中手动部署应用时,Context元素的path属性的值就是在webapps目录中的文件夹名字。有一个web应用是例外:ROOT文件夹对应的path值为“/”。

“undeploy” web应用后,tomcat会将webapps中的应用文件夹和war文件同时删除,这是不可恢复性的操作。

当servlet容器启动一个web应用时,它会为web应用创建唯一一个ServletContext对象。

Servlet/JSP多线程同步问题

Servlet单实例多线程,对于成员变量,所有线程共享成员变量,就可能在多用户(多线程)情况下出现成员变量紊乱问题。

解决同步问题方案:1、取消成员变量,使用局部变量,2、实现SingleThreadModel接口(不推荐),3、使用同步代码块(synchronized{})(不推荐)。

“ A cookie, a small amount of information sent by a servlet to a Web browser, saved by the browser, and later sent back to the server. A cookie's value can uniquely identify a client, so cookies are commonly used for session management. ”

服务器通过请求、响应来读取cookie、发送cookie。

Session

当客服端第一次向服务器发出请求时,server会创建一个session,并将session以cookie的形式响应给client,当client再次向server发出请求时,也会同样将存放有session信息的cookie一同发送个server,server在接收到request时首先会检查request中的cookie并匹配服务器中存在的session以判断发出当前request的client是否已经存在。

默认情况下:tomcat会在接受到一个请求时,检查到request中没有session信息时会自动创建一个session,然后创建一个Cookie对象,name为这种格式:“JSESSIONID”,value为一个128位二进制数(16进制表现形式)的随机字符串。

在谷歌浏览器中测试:禁用cookie后,很多网站根本无法登陆,现在的网站的登陆功能基本上都是基于cookie的session。

默认情况下,JSP网页都是支持session的。也可以通过显示声明页面支持session:。

Filter(过滤器)

过滤器对请求进行预处理,然后交接给Servlet,Servlet对请求处理完后将响应交接给过滤器,过滤器再对响应进行收尾处理,然后再发送给客户端。

过滤器中一定要调用doFilter方法,以便将请求传到过滤器链中的后续过滤器,不然的话请求就会在此处停止,客服端根本就接受不到响应,因此什么内容也没有。

filter的使用需要在web.xml文件中手动配置,IDE并不会自动给我们自动生成配置。

filter是一个非常特殊的servlet,它在servlet容器启动时由servlet容器自动加载它,并生成它的一个对象。

任何一个过滤器一旦出现错误,都会导致web应用启动失败,因为过滤器是随web应用启动时加载的。

串联过滤器工作流程,按照web.xml文件中元素的先后顺序形成filter链。

Listener(监听器)

ServletContextListener、ServletContextAttributeListener。“the implementation class must be configured in the deployment descriptor for the web application.”,。

监听器是利用观察者模式来实现的。

2011/9/25   1:06:20

HttpSessionListener、HttpSessionAttributeListener。

EL(Expression Language)表达式语言

语法:${exp},EL默认对象(内置对象):pageContext、pageScope、requestScope、sessionScope、applicationScope、param。

EL只能在JSP中使用,这些内置对象(隐含对象)就像request、session、application对象一样,只是简化了先前的写法。

jsp自定义标签

自定义标签的处理类必须继承javax.servlet.jsp.tagext.TagSupport类、或者javax.servlet.jsp.tagext.BodyTagSupport类,前者是后者的直接父类。

步骤:1、创建标签处理类,2、创建标签库描述文件,3、在JSP文件中引入标签库,然后插入标签。

标签库描述文件后缀名为:“.tld”,tag library descriptor,它是一个xml格式的文件。该文件必须放在WEB-INF文件夹中。

2011/9/25   15:22:31

JavaScript

JS程序库:jQuery、dojo、ExtJS。

var定义变量关键字,语句结束对于分号写与否不强求。变量:全局变量、局部变量。

在一个函数内不用var声明一个变量的话,它就是一个全局变量,加上var后就是一个局部变量。定义在函数外的变量一定是全局变量。

with语句,with(对象){语句组}。for(变量 in 对象){语句组}。

JS中内置对象(默认对象、隐含对象):Date、Array。

2011/9/25   22:40:42

html入门圣思园视频,Java Web学习历程-(基于圣思园视频教程)相关推荐

  1. Java Web 学习路线

    Java Web 学习路线 实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java ...

  2. Java Web 学习路线(2018)

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了. 大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总 ...

  3. java web学习项目20套源码完整版

    java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...

  4. 2019年Java Web学习笔记目录

    Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...

  5. java web学习笔记(持续更新)

    java web学习笔记 一.Java Web简介 二.认识Servlet 1.什么是Servlet? 2.请求路径 3.tomcat 4.Servlet的使用 三.Servlet简单应用 1.创建S ...

  6. Web学习历程记录(七)——Tomcat

    Web学习历程记录--Tomcat Web 静态Web资源 指Web页面中供人们浏览的数据始终是不变的 动态Web资源 指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容 ...

  7. WEB学习路线2020完整版+附视频教程

    WEB学习路线2020完整版+附视频教程,适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利.高薪水的职业了.所以现在学习web前端开发的技术人员也是日益增多了,但是 ...

  8. 圣思园java.doc_Java Web学习历程-(基于圣思园视频教程)

    JavaWeb [北京圣思园Java Web培训视频]_001.HTML常见标签深入详解 HTML是一种弱标签,可以不用成对出现.浏览器引擎对此标签智能,一般都能正确解析.HTML标签都是死的,只需要 ...

  9. Java学习路线导航,带你入门到精通(附Java全套学习资源)

    最近也有很多小伙伴来向我请教,他们大多是一些Java刚入门的新手,还不了解Java这个行业,也不知道Java零基础该从何学起,开始的时候非常迷茫,所以今天写了这篇文章,具体来说说Java的学习路线. ...

  10. java web学习笔记-jsp篇

    转载自:http://www.cnblogs.com/happyfans/archive/2015/03/17/4343571.html 1.java web简介 1.1静态页面与动态页面   表现形 ...

最新文章

  1. Tomcat - ClassFormatException的解决方法
  2. PostMessage()和SendMessage()
  3. C++ boost thread学习(二)
  4. mysql 同一张表 某个字段更新到另一条数据上_面试基础:数据库MySQL基础入门(下)...
  5. 让IDA Pro输出能让gcc编译器直接编译的.s汇编文件
  6. eval在类型转换的妙用
  7. Java第十次作业--多线程
  8. emacs的使用方法
  9. 微信小程序自定义变量使用,静态变量
  10. Commonjs规范及Node模块实现
  11. python logger 服务器_python——logger模块
  12. 创建设计模式 - Singleton设计模式(最佳实践与示例)
  13. MathType7新版本数学公式编辑器上线功能特性
  14. Emmagee 2.5 在MUMU模拟器上启动后直接失败,换成夜神模拟器可以正常使用
  15. linux 5.5安装万兆网卡驱动,CentOS 5.5 更新网卡驱动 bnx2 version: 2.0.2
  16. UE4角色受击动画,随机播放音效
  17. Jexl表达式引擎(1)
  18. 仪表板展示|DataEase可视化数据分析工具中的仪表板跳转和联动设置
  19. shell softech 面料_户外软壳面料及各品牌的技术
  20. 网上收集的几个花指令

热门文章

  1. python基础:sys模块
  2. Java项目:SSM会议室预约系统
  3. Elastic-Job介绍
  4. QComboBox下拉框
  5. vue移动端app项目
  6. ECharts柱状图常见效果
  7. 简述游戏抽奖机制运用的心理学知识(上)
  8. pboc c语言 开发,APDU
  9. r语言跟python哪个适合数据分析_R语言 vs Python对比:数据分析哪家强?
  10. Window10系统下通过SMB协议连接和断开资源服务器