Ø 一、MyEclipse使用
Eclipse的工作空间必须起名为纯英文的。
JDK开发环境
JRE运行环境
java里边类的访问权限有两种:public和default,修饰符:abstract和final。
一、Java运行环境的配置
第一个问题说明:
编译器的版本过高而运行环境版本过低,会导致出现如下错误:
注意此时的JRE System Library为MyEclipse6.5
两种解决办法:
1)将编译器的版本降低
2)改变运行环境
先选中该工程—>Project—>properties—>java build Path—>libraries—>选中下边的JRE—>remove —>add Library—>JRE System Library—>Next—>Alternate JRE—>制定JRE路径—>finish
完成以后,JRE System Library将变为jdk1.6.0_29。
先选中该工程—>Project—>properties—>Java Compiler
此时即可看到java运行环境也是6.0,如下图所示:
最后在运行java程序则正常了。
总结1:
java build Path可修改编译器;Java compiler可修改运行时环境。
二、以断点的方式查看程序问题 Debug As
如果程序出现问题,最好以断点的方式去运行程序(Debug As)
双击左边部分,会出现一个小蓝点,这就是断点的标志。,如下图:
在要设置断点的地方双击行号左边部分,即可增加一个断点,然后 右键/Run—>Debug As—>Java Application—>在出现的对话框中选YES即可打开Debug视图(Perspective)
》》清除断点(Debug视图下右上角有一个Breakpoints窗口),点击下图中圆圈的叉便可全部删除断点(remove all breakpoints)。
快速查找方法:F5跳入(step into),如下图中红圈内的按钮,
F6图中右边一个按钮(表示跳过此步,执行下一步)
F7跳出此方法并返回开始处。
选中变量—>右键—>Watch就可以查看变量值
在Debug视图下,在增加断点—>Resume(下图中绿色三角按钮)—>即可直接定位到下一个断点处。
最终一定要关闭断点调试。
总结2:
F5:step into
F6:step over
F7:step return
Drop to frame:跳到当前方法的第一行
Resume:跳到下一个断点(如果没有下一个断点,则运行完此程序)
Watch:观察变量或表达式的值。
断点注意的问题:
1.调试完成后,要在breakpoints中清除所有断点
2.一定要结束运行断点的JVM
三、配置MyEclipse的快捷键
Window—>preferences—>输入key
² alt+/ :内容提示
² 快速修复:ctrl+1
² 格式化代码:ctrl+shift+F
² 导入包:ctrl+shift+O
² 向前向后:Alt + 方向键
² 查看方法说明:F2
² 更为大写:Ctrl+shift+x
² 更为小写:Ctrl+shift+y
² 更换两行的位置:Alt+方向键
² 查看类的继承关系:ctrl+T
² 重置透视图:window—>Reset Perspective
² 列出所有的快捷键:Ctrl+shift+L
² 粘贴源码Attach Source
若源码以文件夹形式存放时,选External Folder;
若源码以文件形式存放,则选External File。
² 查看源码:
Ctrl+点击内容 或 ctrl+shift+T,会出现如下面板,然后在红框里边输入要查看的内容即可。
Ø 二、JDK5.0新特性
import static 包名.类名.静态属性|静态方法|*
eg.
Integer i=1; //装箱(把基本类型自动转为对象装入i变量中)
int j=i; //拆箱(把对象自动转为基本类型)
只能用在 数组、或实现Iterator、Iterable接口 的集合类上。
for(变量类型 变量:需迭代的数组或集合){
。。。}
因为Map没有实现Iterable接口,则Map不能直接使用for循环增强来遍历,方法:通过Iterator得到Map的每个key,在通过key,并通用map.get(key)得到key相应的值。
Class类:
public Constructor<T> getConstructor(Class<?>... parameterTypes)
Arrays类:
public static <T> List<T> asList(T... a) T是对象类型
就是 传入数组的时候应传入对象数组
eg: int num[];不行 ,而 Integer num[];就可以,因为Integer修饰的为对象类型的数组,即每一个数组元素都是对象类型。
enum 一个枚举也可有构造函数、字段和方法
带抽象方法的枚举:在创建枚举的每个对象的时候,要实现枚举中的抽象方法。
枚举值相当于类的对象
枚举类的特性:
1.枚举类是一种特殊形式的java类;
2.其中声明的每一个枚举值代表枚举类的一个实例对象;
3.枚举的构造函数必须是私有的.
4.枚举类也可实现接口或继承抽象类。
5.JDK5.0扩展了switch语句,它除了可接收int,byte,short,char外,还可接收枚举类型。
6.若枚举类只有一个枚举值,则可当做单例模式使用。
//相当于用单例模式定义了一类
enum Only{ //class
Only; //Object
}
java.lang
类 Enum<E extends Enum<E>>
常用方法:
name() 名称 ,ordinal() 序号(从0开始),
valueOf(Class<T> enumType,String name),
values()此方法在JDK中没有,但每个枚举类都有该方法,它用于遍历所有枚举值。
反射用在框架中。框架是基于配置文件的
一个类有多个组成成分,如:成员变量,方法,构造方法等。
反射就是加载类,并解剖出类的各个组成成分。
//1. forName(className)-参数必须为完整类路径,但不包括后缀名.java。
Class c1 = Class.forName("javaSE.Person");
//2. getClass()
Class c2 = new Person().getClass();
//3. XXX.clsss
Class c3 = Person.class;
Class类中:
---得到public方法
getConstructor(Class<?>... parameterTypes)
getField(String name)
getMethod(String name,Class<?>... parameterTypes)
---得到所有方法,包括private方法
getDeclaredConstructor(Class<?>... parameterTypes)
getDeclaredField(String name)
getDeclaredMethod(String name, Class<?>... parameterTypes)
剖析出这些方法以后,有什么用?
构造函数--初始化,创建对象
字段--封装数据
方法--执行某个功能
反射类的构造函数
利用构造函数创建对象:
Constructor类中:newInstance(Object... initargs)
eg1. 对于public方法
eg2 :对于private方法
通过暴力反射可以使外界访问类中的私有方法。
反射类的方法
通过Class类中的方法getMethod(String name(方法名称),Class<?>... parameterTypes)得到该类中方法。
然后通过
java.lang.reflect
类 Method中的方法:Object invoke(Object obj, Object... args)
调用。
eg1:注意传入的参数
反射类的main方法
反射类的字段
字段--用来封装数据
开发框架
内省操作JavaBean属性的两种方式:
1) 通过PropertyDescriptor类操作Bean的属性;
2) 通过Introspector类获得Bean对象的BeanInfo,然后通过BeanInfo类获取属性描述器(PropertyDescriptor),通过它可获取某个属性的get/set方法,然后通过反射机制调用。
用JavaBean封装用户数据,
当字段提供了get/set方法时,称为属性。属性是根据有没有get,set方法来判断的。
java.beans
类Class Introspector中
getBeanInfo(Class<?> beanClass)//获取bean的属性,包括其从父类继承的属性
getBeanInfo(Class<?> beanClass,Class<?> stopClass)//仅仅获取bean自身的属性,去除它从父类继承的属性
接口Interface BeanInfo中
PropertyDescriptor[] getPropertyDescriptors()--属性描述器
类Class PropertyDescriptor中
方法getReadMethod(),getWriteMethod()得到属性的get/set方法
eg
1) 阿帕奇开发了beanUtils框架操作bean的属性
接口,不可new对象,原因是:因为接口中有未实现的抽象方法
2) 日期转换两种方式:
方式1:注册日期转换器
方式2:
3) 用map集合填充bean的属性
1) 对于list
2) 对于Map
1) 泛型类型必须为引用类型,不能是基本类型;两边都定义泛型,则必须类型一致,若只一边定义,是允许的;
2) 泛型是给javac编译器使用的,用于限定集合的输入类型,编译器在源代码级别上,即挡住向集合中插入非法数据,当编译完带有泛型的java程序后,生成的class文件中将不再带有泛型信息,以此使程序的运行效率不受影响,此过程称为“擦除”。
3) 泛型的专业术语
以 ArrayList<E> 为例:
l 其中“<>”念做typeof;
l E 称为类型参数变量
l ArrayList<Integer> 的Integer称为实际类型参数
l 整个ArrayList<E>称为泛型类型
l 整个ArrayList<Integer>称为参数化类型(ParameterizedType)
1)自定义泛型方法
2)自定义泛型类
XML-Extensible Markup Language 可扩展标记语言,是w3c组织发布的。
XML技术用于解决什么问题?--数据关系的描述,用作软件的配置文件。
一个XML文件分为如下部分:
1. 最简单的 <?xml version="1.0"?> ---不能包含全角字符
2. 用encoding属性说明文档的字符编码:
<?xml version="1.0" encoding="GB2312"?>
3. 用standalone属性说明文档是否独立:(IE不关注此属性)
<?xml version="1.0" encoding="GB2312" standalone="yes"?>
***工程名->右键->Properties->出现的窗口中Location即为工程路径
XML元素就是XML标签 element对象=标签
格式良好的XML文档有且仅有一个根标签。
XML标签中出现的所有空格和换行,都会被当做标签内容处理。
命名规范:
区分大小写;不能以数字或“_”开头;不能包含空格;名字中间不能包含“:”。
一个标签可有多个属性,每个属性都有自己的名称和取值,属性值用单或双引号引起来。
<input name="test"> name属性名,"test"属性值。
<!-- 注释内容 --> XML声明之前不能写注释,注释不能嵌套。
<![CDATA[内容]]>对于CDATA区的内容,XML会将其原封不动的输出。
指挥解析引擎如何去解析XML文档的内容
<?xml-stylesheet type=”text/css” href=”main.css”?>
在XML技术中,可编写一个文档来约束一个XML文档的书写规范,称为XML约束。
两种约束技术:
(1) DTD语法详解和分析:
ELEMENT 标签
I. 编写DTD约束的两种方式:
l 在XML文档内部:
l 在XML文档外部:book.dtd
在XML文件中引用DTD约束:
1.当引用的DTD文件在本地时:
2.当引用的文件是一个公共文件时,采用如下方式:
II. DTD约束语法细节
l 元素定义
DTD中使用ELEMENT声明一个XML元素,
格式: <!ELEMENT 元素名称 元素类型> --元素类型可以是类型或内容
l 属性定义
通过ATTLIST设置属性
格式:
<!ATTLIST 元素(标签)名
属性1 属性值类型 设置说明
属性2 属性值类型 设置说明
……
>
I.常用属性值类型:
CDATA(字符串) 、ENUMERATED 、ID(必须以字母或“_”开头)、 ENTITY
II.设置说明:
#REQUIRED :必须设置该属性
#IMPLIED :可选
#FIXED :说明该属性为固定值
l 实体定义ENTITY
用于为一段内容创建一个别名。
分为两种:
1.引用实体 :主要是在XML文档中引用
格式:
<!ENTITY 实体名 “实体内容”>
引用方式:&实体名;
eg.
dtd 文件中:
xml文件中,引用实体:
2.参数实体
DTD文件自身使用。
格式: <!ENTITY % 实体名 “实体内容”>
引用方式: %实体名;
l PCDATA 可解析的字符数据(parsed character data)--字符串
l CDATA 字符数据(character data)
1、XML Schema也是一种用于定义和描述XML文档结构与内容的模式语言,克服dtd局限性。
2、XML Schema与DTD比较:
XML Schema符合XML语法结构;
DOM、SAX等XML API很容易解析出XML Schema文档中的内容;
XML Schema对名称空间支持的非常好;
XML Schema比XML DTD支持更多的数据类型,并支持用户自定义类型;
XML Schema定义约束的能力很强大,可对XML实例文档作出细致的语义限制;
XML Schema不能像DTD一样定义实体,比DTD更复杂,但Schema现在已是w3c标准。
3、.xsd扩展名
19,20未看
右键—>Run as->Open Run Dialog->Arguments 窗口中的VM Arguments中可配置JVM内存:在VM Arguments小窗口中输入 -Xmx 80m 代表设定JVM内存为80M。
1024b=1kb,1024*1024=1Mb,1024*1024*1024=1Gb
Exception in thread "main" java.lang.OutOfMemoryError: Java heap
space JVM内存溢出
以前:JVM 默认64M内存,若超过64M,则会抛出异常。
现在:The default value is chosen at runtime based on system configuration
CRUD : create,read,update,delete 增删改查
XML解析方式有两种:dom 和sax
DOM:(Document Object Model)文档对象模型
SAX:(Simple API for XMl)
DOM和SAX解析方式的区别:
DOM解析的优点:对文档的CRUD较为方便,缺点:占用内存较大,故DOM解析文档不能太大。
SAX解析的优点:占用内存少,从上向下读,解析速度快,缺点是只适合做文档的读取,不适合做文档的CRUD。
XML解析开发包:dom4j(最好),Jdom,Jaxp(sun)
1) Jaxp进行DOM解析:
Jaxp开发包:是J2SE的一部分,由javax.xml,org.w3c.dom,org.xml.sax包及子包组成。
在javax.xml.parsers包中,定义了几个工厂类,通过它们可以得到XML文档的DOM或SAX解析器,从而实现对XML文档的解析。
DOM方式解析XML文件:
l 遍历所有标签:
l 使用DOM方式对XML文档进行CRUD操作
***对于每个操作,都首先要得到DOM解析器,然后通过DOM解析器的parse(f)方法得到该文档的document对象。
l C 增加
1.向XML文件中增加节点
2.向XML文件的指定位置增加节点
3.向XML文件的某节点增加属性
l R 读取
l U 更新
l D 删除
1.删除节点
2.删除节点的属性
!!!***完成CRUD任何一个操作之后,都必须要进行的操作:
把更新后的内存写回到XML文件中去,以完成真正的修改:
2) dom4j解析XML文档
1) 简介
dom4j是一个简单、灵活的开放源代码库。dom4j是一个非常优秀的Java XML API。
注意:一般情况下只需导入一个jar包就行了,但是有时解析XML文档时会抛出找不到类异常,此时应该将lib下的相应jar包导入。
查阅dom4j的文档:在docs文件夹中的index-打开->页面的左边栏 quick start -->然后右边的界面就是Dom4j的使用方法。
2) 乱码问题:
XML文档是什么编码就将格式化输出器设置成什么编码。
3) (增删改查)dom4j对XML文档操作
1、读取XML文档
2、增删改之前一般都要先得到document对象
3、增删改操作后必须进行的一步是更新内存
4、增加
在指定位置添加 list
5、删除
删除指定位置的节点
6、更改
修改第二本书的作者为aa
4) XPath提供XML文档数据
查看XPath Tutorial文档
XPath表达式
示例:
选择含有属性id且其值为'b1'的BBB元素
写法: //BBB[@id='b1'] ---!!!注意:值需加单引号!!!多个属性值时使用and连接。
示例:document.selectSingleNode("//user[@username='" + username
+ "' and @password='" + password + "']");
考生成绩管理系统
编程实现如下功能:
1. 用户操作:
添加用户:(a),删除用户 :(b),查询成绩(c)
请输入操作类型:
2.实现学生信息的添加:
添加学生:(a),删除学生 :(b),查询成绩(c)
请输入操作类型:a
请输入学生姓名:学生1
请输入学生准考证号:122133
请输入学生身份证号:12447577767767
请输入学生所在地:邯郸
请输入学生成绩:90
------添加数据成功------
3.实现学生信息查询
添加学生:(a) ,删除学生 :(b) ,查询成绩(c)
请输入操作类型:c
请输入查询学生的准考证号:9898989
您查询的学生信息为:
姓名:啊,身份证号:878787878,准考证号:898989,地区:深入,成绩:90。
4.实现学生的删除功能
添加用户:(a),删除用户 :(b),查询成绩(c)
请输入操作类型:b
请输入要删除的学生姓名:张三
------成功删除-------
5.系统功能分析:
应该从底层向上层开发。
异常:
编译时异常Exception
运行时异常RuntimeException
写好所有的模块之后,首先应做测试,,,然后在使用。。。
面向对象想问题,遇到什么问题,就找相应的对象。
缺点:使用DOM解析XML文档时,需要读取整个XML文档,在内存中构架代表整个DOM树的Document对象,从而再对XML文档进行操作,这种情况,若XML文档特别大,就会消耗计算机的大量内存,并且容易导致内存溢出。
SAX解析允许在读取文档的时候,即可对文档进行处理,而不必等到整个文档装载完才对其操作。
SAX采用事件处理的方式解析XML文件,利用SAX解析XML文档,涉及两个部分:解析器和事件处理器。
解析器可使用JAXP的API创建,创建出SAX解析器后,就可以指定解析器去解析某个XML文档。
解析器采用SAX方式解析某个XML文档时,它只要解析到XML文档的一个组成部分,都会调用事件处理器的一个方法,解析器在调用事件处理器的方法时,它会把当前解析到的XML文件内容作为方法的参数传递给事件处理器。
解析步骤:
自定义的Handler需实现ContentHandler接口或者继承此接口的已知子类均可。
ContentHandler中的几个重要方法:
1) characters(char[] ch,int start,int length) 接收字符数据的通知。
2) startElement(String uri, String localName,String qName,Attributes atts) 接收元素开始的通知。--开始标签
3) endElement(String uri,String localName,String qName) 接收元素结束的通知。--结束标签
方法:断点跟踪 Debug As ...
WEB:网页,用于表示Internet主机上供外界访问的资源。
分为两种:
静态web资源 和 动态web资源。
在java中,动态web资源开发技术统称为Javaweb,java技术开发动态的web资源,即动态web页面。
WebLogic是BEA公司的产品,支持J2EE规范(13门技术),交费。
WebSphere是IBM公司的,支持J2EE规范,交费。
apache开发的Tomcat服务器,支持全部jsp以及Servlet规范,免费。
不能讲apache-tomcat-6.0.30放到中文或者带空格的目录下。
一个机器里可以装多个服务器,不同的服务器产品会监听在不同的端口上。
互联网上常用协议的工作端口: web服务器(基于http的):80,邮件发送(smtp):25,pop3:110,ftp:23,https:433 。
Tomcat无法启动的可能原因:
(1)没有配置JAVA_HOME环境变量;
(2)8080端口被占用
(3)Catalina_home环境变量的设置问题
点击startup.bat的时候启动的服务器是Catalina_home环境变量指定的那个服务器。
apache-tomcat-6.0.36\conf\server.xml中的端口设置:
地址栏解析:
当Tomcat启动出现问题的时候,可以通过查看logs下的日志文件。
WEB应用程序:供浏览器访问的程序,简称WEB应用。
一个web应用由多个静态web资源和动态web资源组成。
组成web应用的文件通常会使用一个目录组织,这个目录称为web应用所在目录。
虚拟目录的映射:Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理。
可在Tomcat服务器的server.xml配置文件中配置:
<Context path="/itcast" docBase="D:\news "/>
path:虚拟目录,实际不存在的目录。是web应用的对外访问路径。
修改了server.xml配置文件以后,必须重启Tomcat服务器!
在地址栏输入http://localhost:8080/itcast/a.html即可访问到news文件夹中的a.html文件。
本机 :localhost
8080:代表访问Tomcat服务器
itcast:虚拟目录,对应news这个web应用。
实际上这种配置是不好的,因为需重启服务器。
Context (上下文)代表web应用
注意:
从tomcat主页进去在Context处找到的定义配置文件的方法(5种):
五个地方可配置Context来管理web应用:
Context elements may be explicitly defined:
· In the $CATALINA_BASE/conf/context.xml file: the Context element information will be loaded by all webapps. ---可在conf/context.xml中配置Context,此处配置的信息会被所有的web应用所共享。
· In the $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default file: the Context element information will be loaded by all webapps of that host.
· In individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The name of the file (less the .xml extension) will be used as the context path. Multi-level context paths may be defined using #(多级访问路径定义时加#号即可), e.g. foo#bar.xml for a context path of /foo/bar. The default web application may be defined by using a file called ROOT.xml(缺省的web应用,访问时直接指定页面即可).
在conf\Catalina\localhost目录下新建一个以.xml为扩展名的文件,写入Context的配置即可,而文件名会被用作path虚拟路径。
若想把一个web应用弄成缺省的,则可以在apache-tomcat-6.0.36\conf\
Catalina\localhost目录下新建一个root.xml文件.
在server.xml中如何将自定义的web应用配置成缺省的?
<Context path="" docBase="D:\news "/> 将path设为空即可。
· Only if a context file does not exist for the application in the $CATALINA_BASE/conf/[enginename]/[hostname]/, in an individual file at /META-INF/context.xml inside the application files. If the web application is packaged as a WAR then /META-INF/context.xml will be copied to $CATALINA_BASE/conf/[enginename]/[hostname]/ and renamed to match the application's context path. Once this file exists, it will not be replaced if a new WAR with a newer /META-INF/context.xml is placed in the host's appBase.
· Inside a Host element in the main conf/server.xml. ---将Context 放入server.xml中。
With the exception of server.xml, files that define Context elements may only define a single Context element.
让Tomcat自动映射:Tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚拟目录==Tomcat服务器webapps目录中的web应用,外界可以直接访问。
*** WEB应用的组成结构
开发web应用时,不同的文件类型有严格的存放规则,否则会出错。
web.xml文件,必须放在WEB-INF目录中
通过web.xml文件把某个web资源配成网站首页。
l 在一个Tomcat服务器中可以放置多个网站,所谓配置虚拟主机,就是在Tomcat服务器中配置一个网站。
l 在web服务器中配置一个网站,需使用Host元素配置,
<Host name=”site1” appBase=”C:\app”></Host>
在Tomcat的server.xml文件中默认配置了的name=”localhost”。
l 配置的虚拟主机(网站)要想被外部访问,必须在DNS服务器或windows系统中注册。
l 配置多个网站
l 缺省虚拟主机
修改server.xml文件以后,必须重启Tomcat
一个网站可有多个web应用。
一个网站无法访问原因有两个:DNS服务器出错(IE无法把主机名翻译成IP)或网站出错。
一个网站必须在DNS上注册它的主机名和IP的对应关系才能被外界访问。
在DOS下输入ping www.sina.com可以查看连接性,同时也可以显示sina的IP地址。
在server.xml文件中:
<Host name=”www.sina.com” appBase=”C:\sina”>
<Context path=”/mail” docBase=”C:\sina\mail” />
</Host>
虽然配置了虚拟主机,但是无法被外界访问到。
当IE收到地址请求的时候,首先会去windows操作系统的Hosts文件查找是否有对应的IP,若有则直接访问该指定IP,若没有,则去DNS服务器查找对应IP。
如何才能在本机访问到自己配置的域名呢?
在本机的C:\Windows\System32\drivers\etc下的Hosts文件中可以写入域名和IP的对应,eg:192.168.2.10 www.sina.com
域名
有的公司搞恶意竞争的时候会去修改用户的Hosts文件。
*** 把web应用配成缺省的:<Context path=”” docBase=”C:\mail”>
*** 把index.html页面配置成缺省的:web资源配置都要在web.xml中。
在WEB-INF文件夹中的web.xml文件中写入:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
即可将index.html配置成缺省的web应用的缺省主页。
l 画图演示web资源的访问过程
ROSE 画图-访问交互图
l 打包web应用-war
命令符下:jar -cvf news.war news (注意war包和原引用名的位置)
--将news应用打包成war包。
将war包放入Tomcat的webapps目录下,服务器会自动将war解析成web应用。
l 配context元素的reloadable元素,让Tomcat自动加载更新后的web应用
Context代表web应用。
<Context path=”” docBase=”C:\mail” reloadable=”true” />
小的web应用可配置此项,大的web应用最好别配置,否则容易内存溢出等问题。
context.xml中为全局配置。
l Tomcat的体系结构配置https连接器 公钥 私钥
·keytool -genkey -alias tomcat -keyalg RSA为网站创建数字证书
Tomcat体系结构:
一个应用可占多个端口
连接器
engine引擎
***** 软件密码学基础和配置Tomcat服务器
对称加密:不好
非对称加密:公钥加密的数据私钥解,私钥加密的数据公钥解。
CA的数字证书,数字签名
SSL
配置server.xml文件中的Connector查阅Tomcat的文档
https://localhost:8555 访问加密的网站
若浏览器被劫持了,U盾-实际上是银行的证书
l Tomcat服务器的管理平台
Tomcat Manager--配置用户名和密码
在conf目录下的tomcat-users.xml中配置:
打开Tomcat的主页,点击左边栏中的Tomcat Manager,输入用户名tomcat,密码tomcat,即可进入Tomcat Web Application Manager管理界面。
WAR file to deploy部署war文件
并使用Http协议获取某个页面(aa这个web应用下的1.html文件)。
http协议用于定义客户端与web服务器通讯的格式。
在win7下不能使用telnet,那么如何重新开启telnet服务呢?
1、如果你直接到控制面板的管理工具里德服务项里去找telnet的话,那是徒劳无功的,因为默认根本就没有这一服务。可通过如下方式。“控制面板”-->“程序”-->“打开或关闭windows功能”,在里面可以看到许多服务项,选择“telnet服务器”和“telnet客户端”确定即可。这样你再回“服务项”或者services.msc里面就可以看到telnet啦
2、通过“控制面板”-->“管理工具”-->“服务”或者services.msc进入服务项列表之后,找到telnet,可以看到它是被禁用的,此时你需要在“禁用”处右键选择“属性”并在里面将“禁用”改为“手动”,然后再启动状态栏右键选择“启动”。这样你机器的telnet服务就启动啦。
3、windows7 无法启动telnet 服务 错误1068 如何解决?
右键 计算机 —> 管理 —>服务,找到服务telnet, 右键—>属性—>依赖关系 就可以看到你所要的和其他服务的依赖关系了!打开相关依赖的服务即可解决服务不能启动的情况。
telnet是windows自带的网络客户端软件,可用它连接网络上的任何一台服务器。
1.简介
Http是hypertext transfer protocol(超文本传输协议),它是TCP/IP协议的一个应用层协议,用于定义web浏览器与web服务器直接交换数据的过程。
2.Http协议的版本
·http/1.0 只能获取一个web资源
·http/1.1 可获取多个web资源
eg.
一个web页面中,使用img标签引用了2副图片,当客户端访问服务器的这个web页面时,客户端总共会访问2次服务器,即向服务器发送了2次Http请求。
如:
<img src=”1.jpg”>
<img src=”2.jpg”>
此段代码IE会向服务器发送2次请求,所以一般会将图片合并在一句里边,减少访问次数。
3.http请求细节
概念: 客户端连接上服务器后,向服务器请求某个web资源,称之为客户端向服务器发送了一个http请求。
HTTP请求的格式如下所示:
<request-line>
<headers>
<blank line>
[<request-body>]
在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个首部(header)小节,用来说明服务器要使用的附加信息。在首部之后是一个空行,再此之后可以添加任意的其他数据[称之为主体(body)]。
一个完整的http请求包括:
一个请求行、若干请求头、实体内容。
请求行中的GET称之为请求方式,请求方式有:
POST,GET,HEAD,OPTIONS,DELETE,TRACE,PUT
常用的Get,Post
默认情况下是GET请求。
都用于向服务器请求某个web资源,区别主要在数据传递上:
若请求方式为GET方式,则方式在请求URL地址后以?的形式带上交给服务器的数据,多个数据之间以&进行分隔;
GET方式:不安全,在URL地址后附带的参数是有限制的,其数据容量通常不能超过1k。
<a href=”/2.html?username=aa”>dian</a>带数据的超链接
POST方式:安全,可在请求实体内容中向服务器发送数据,并且传送的数据量无限制。
4. http请求头(消息头)和各字段详解
5.飞
学习心得在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/sch…
一基本概念11WEB开发的相关知识WEB在英语中web即表示网页的意思它用于表示Internet主机上供外界访问的资源Intern…
Javaweb开发教程学习心得Javaweb课程结束了,在完成了eclipse三份实验报告之后我开始总结这门课程自己究竟学到了什么…
一Session简单介绍在WEB开发中服务器可以为每个用户浏览器创建一个会话对象session对象注意一个浏览器独占一个sessi…
JavaWeb学习总结十二Session一Session简单介绍在WEB开发中服务器可以为每个用户浏览器创建一个会话对象sessi…
JavaWeb总结1.JSP运行原理(1)用户通过客户端浏览器向服务器发送请求。(2)JSP文件将JSP引擎编译成Java的cla…
Java考试题Java基础部分1、请简要描述oop的主要特征,并谈谈对这些特征的理解。Oop主要特征:抽象,封装,继承,多态;抽象…
学习心得在写心得之前总结下中级部分学习的内容,我们的中级部分主要学习了html,css,javacript,xml,dtd/sch…
Javaweb开发教程学习心得Javaweb课程结束了,在完成了eclipse三份实验报告之后我开始总结这门课程自己究竟学到了什么…
学习javaweb开发要学习的技术和框架总结:前言:当初想学习javaweb开发的时候,希望能够全方面地学习(这样找工作时就胸有成…
学习java课程的学习心得记得当时拿着Oracle授权学习中心颁发的毕业证书时喜悦的心情,到现在对着电脑写心得体会的时间,才发现,…