通信模式* C/S (client、server) ,客户端与服务器。要求客户端必须安装。例如:QQ、网络游戏* B/S (Browser、Server),浏览器与服务器。就是通过浏览器查看网页,不需要下载客户端优缺点对比:B/S只要有操作系统和浏览器就行,与操作系统平台无关,也无需专门安装其它软件B/S对计算机配置要求较低,且升级方便,服务器升级即可,浏览器查看的就是最新的版本C/S安全性较高,响应速度快,且客户端软件使用起来更方便* web开发就是指网页开发,即B/S结构* web采用的是HTTP协议,无状态传输即一次传输完成之后,浏览器与服务器就不会存在任何关系有请求才有响应, 服务器不能主动推送消息URL* URL :统一资源定位符,路径必须是完整。* URI :统一资源标识符,标记,有可能不完整。URI是URL的子集。* 格式: 协议://域名或IP:端口/资源路径协议http / ftp / svn / https 等域名或IPIP --> 用于在全球标识每一台计算机。IPv4 (0-255.0.0.0), IPv6本机IP:127.0.0.1局域网IP:192.168.3.100外网IP:202.123.34.45域名 --> 由于IP不便于记忆,所以出现了域名,域名在使用前会先去DNS服务器查询域名对应的IP,然后再发送请求本地域名:localhost外网域名:www.itcast注意:localhost 与 127.0.0.1存在对应关系DNS,域名解析服务端口端口范围:0-65535 , 一般0-1024不建议使用,系统预留一个程序可以占用多个端口,但一个端口只能被一个程序占用。http协议默认端口80,如果是80端口可以省略tomcat端口8080资源路径请求的网址,服务器根据不同资源路径做出不同的处理静态网页和动态网页动态网页是动态生成的,然后展示给用户.在一次请求中,服务器处理请求并动态生成相应的网页,不同的用户看到的信息可能不一样,如网页上登陆后出现的 XXX,欢迎您. XXX对于不同的用户看到的不一样静态web资源开发技术:Html常用动态web资源开发技术:JSP/Servlet、ASP、PHP等常用web服务器(了解)* WebLogic : Oracle公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范(13种核心:Servlet、JSP等),收费* WebSphere : IBM公司,支持J2EE规范,收费* Glass Fish : Oracle中型服务器,开源* tomcat ;apache组织,开源。只支持:Servlet 和 JSP开发企业级应用介绍(了解)ERP:企业资源计划( Enterprise Resource Planning ),针对物资资源管理(物流)、人力资源管理(人流)、财务资源管理(财流)、信息资源管理(信息流)集成一体化的企业管理软件CRM:客户关系管理(Customer Relationship Management)是指用计算机自动化分析销售、市场营销、客户服务以及应用支持等流程的软件系统BPM:业务流程管理(Business Process Management),即,是一套达成企业各种业务环节整合的全面管理模式。OA:办公自动化(Office Automation)是将现代化办公和计算机网络功能结合起来的一种新型的办公方式。J2EE的13种核心技术(了解)一、JDBC(Java Database Connectivity)JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库的访问也具有平台无关性。二、JNDI(Java Name and Directory Interface)JNDI API被用于执行名字和目录服务。它提供了一致的模型来存取和操作企业级的资源如DNS和LDAP,本地文件系统,或应用服务器中的对象。三、EJB(Enterprise JavaBean)J2EE技术之所以赢得媒体广泛重视的原因之一就是EJB。它们提供了一个框架来开发和实施分布式商务逻辑,由此很显著地简化了具有可伸缩性和高度复杂的企业级应用的开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,例如目录服务、事务管理、安全性、资源缓冲池以及容错性。但这里值得注意的是,EJB并不是实现J2EE的唯一途径。正是由于J2EE的开放性,使得有的厂商能够以一种和EJB平行的方式来达到同样的目的。四、RMI(Remote Method Invoke)调用远程对象上的方法。它使用了序列化方式在客户端和服务器端传递数据。RMI是一种被EJB使用的更底层的协议。五、Java IDL/CORBA在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。他们可以创建Java对象并使之可在CORBA ORB中展开,或者他们还可以创建Java类并作为和其它ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将你的新的应用和旧的系统相集成。六、JSP(Java Server Pages)JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。七、Java ServletServlet是一种小型的Java程序,它扩展了Web服务器的功能。作为一种服务器端的应用,当被请求时开始执行,这和CGI Perl脚本很相似。Servlet提供的功能大多与JSP类似,不过实现的方式不同。JSP通常是大多数HTML代码中嵌入少量的Java代码,而servlets全部由Java写成并且生成HTML。八、XML(Extensible Markup Language)XML是一种可以用来定义其它标记语言的语言。它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但是,它和Java具有的相同目标正是平台独立性。通过将Java和XML的组合,您可以得到一个完美的具有平台独立性的解决方案。九、JMS(Java Message Service)JMS是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,又支持发布/订阅(publish/subscribe)类型的域,并且提供对下列类型的支持:经认可的消息传递,事务型消息的传递,一致性消息和具有持久性的订阅者支持。JMS还提供了另一种方式来对您的应用与旧的后台系统相集成。十、JTA(Java Transaction Architecture)JTA定义了一种标准的API,应用系统由此可以访问各种事务监控。十一、JTS(Java Transaction Service):JTS是CORBA OTS事务监控的基本的实现。JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API (JTA)规范,并且在较底层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用以及通信资源管理器提供了事务服务。十二、JavaMailJavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。十三、JAF(JavaBeans Activation Framework)JavaMail利用JAF来处理MIME编码的邮件附件。MIME的字节流可以被转换成Java对象,或者转换自Java对象。大多数应用都可以不需要直接使用JAF。 tomcat* 安装1. 解压apache-tomcat-xxx.zip2. 配置JAVA_HOME环境变量,指定jdk目录3. 启动 : %tomcat%/bin/startup.bat4. 用浏览器访问 : localhost:8080* 常见问题tomcat的错误信息可在%tomcat%/log中查看问题:打不开startup.bat,窗口闪烁然后消失报错信息:Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these environment variable is needed to run this program没有配置环境变量JAVA_HOME,配置一下即可问题:tomcat启动报错Caused by: java.BindException: Address already in use: JVM_Bind <null>:8080端口被占用先检查有没有开其他的tomcat如果没有的话,打开任务管理器,查看进程有没有,有的话结束进程* 修改端口号修改文件:%tomcat%/l主要修改: 原内容:<Connector port="8080" protocol="HTTP/1.1"修改后:<Connector port="80" protocol="HTTP/1.1"其他修改:原内容:<Server port="8005" shutdown="SHUTDOWN"><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />修改后:<Server port="9005" shutdown="SHUTDOWN"><Connector port="9009" protocol="AJP/1.3" redirectPort="8443" />通常指修改最上面的即可,修改的是http协议监听的端口号如果想同时启动两个tomcat,则要全部修改* tomcat常用目录bin 目录:脚本 (tomcat 使用java程序编写) --> day03/soft/tomcat6.zip tomcat源码但可以运行startup.bat 启动脚本shutdown.bat 停止脚本conf 目录:存放配置文件 (l ,tomcat主配置文件l ,tomcat用户配置文件l ,tomcat管理的所有web程序的默认配置文件lib 目录:所有的jar文件servlet-api.jar , tomcat支持javaee servletjsp-api.jar ,tomcat支持javaee jsplogs 目录:日志目录 ,记录运行的运行过程。tomcat每一天记录一组。catalina.日期.log , 主记录日志文件temp 目录:临时目录。此目录中的内容可以随时删除。临时文件的扩展名 tmpwebapps 目录 , tomcat用于存放所有的web项目。此目录下一个文件夹就是一个web项目。work 目录,tomcat用于处理jsp文件目录,此目录中的内容可以删除(关闭tomcat时)* catalina_home环境变量安装版本的tomcat时,进行CATALINA_HOME配置,作用:无论运行是哪一个tomcat startup.bat ,只会执行指定catalina_home指定的tomcat的startup.bat注意:一般不配置* 访问路径(在没有配置虚拟路径和虚拟主机的情况下)localhost:8080/ --> %tomcat%/webapps/ROOT 目录localhost:8080/a.html --> %tomcat%/webapps/ROOT/a.htmllocalhost:8080/demo --> %tomcat%/webapps/demo 目录localhost:8080/demo/d.html --> %tomcat%/webapps/demo/d.htmllocalhost:8080/demo/abc/123.html --> %tomcat%/webapps/demo/abc/123.html* 精简访问路径1 欢迎页面默认访问:localhost:8080/demo/d.html配置欢迎页面:在l文件添加<welcome-file-list><welcome-file>d.html</welcome-file></welcome-file-list>访问:localhost:8080/demo/2 省略项目名称:将web项目的名称修改ROOT访问:localhost:8080/3 修改端口为80访问:localhost4 hosts文件配置文件位置:C:WindowsSystem32driversetchosts添加内容:127.0.0.1 www.baidu访问:,先查看本地有没有记录(即hosts文件),没有的话再去DNS服务器查询只能修改自己的机器,对别人的机器无效,以上三个别人访问你的机器都有效* l说明示例:<Engine name="Catalina" defaultHost="localhost"><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Engine> 为引擎defaultHost属性为默认的虚拟主机<Host>标签代表虚拟主机name属性为主机名appBase属性为虚拟主机的根目录路径注意:修改l后要重新启动tomcat才能使配置生效* 配置发布项目存放位置需要在l进行修改更改对应<Host>标签中appBase属性的值即可* 配置虚拟路径作用: 为一个文件夹设置虚拟的访问路径,这样也可以设置多个根目录(即不必都放在webapps目录下)第一种配置,需要在l进行修改,注意:必须重启tomcat<Host><Context path="/xxx" docBase="F:myweb"/>path : URL中访问路径 (浏览器地址栏)docBase : web项目的所在盘符路径 (硬盘位置)注意:区分大小写第二种配置,需要conf/Catalina/localhost添加一个xml文件,不需要重启tomcatxml文件的文件名称,将作为path的值内容:<?xml version='1.0' encoding='utf-8'?><Context docBase="F:myweb"/>注意:Catalina 和 localhost 目录都是配置在l中的,如果改变了配置,则上面的目录结构也会改变* 设置基于主机名的虚拟主机作用: 如果通过多个域名访问到同一个tomcat,则tomcat可以根据访问域名的不同,进行不同的操作通过l进行配置,和别的<Host>同级<Host name="www.baidu" appBase="F:mywebapps"unpackWARs="true" autoDeploy="true"></Host>则访问www.baidu会访问到F:mywebapps下的资源(当然,你得先改变hosts文件)而访问localhost会访问到webapps下的资源,因为下面这个是默认的<Host name="localhost" appBase="webapps"如果域名没有找到匹配项(如直接用ip访问),则会根据<Engine name="Catalina" defaultHost="localhost">中的defalutHost中配置的主机进行处理* 设置基于端口号的虚拟主机(可以同时监听多个端口)作用: 使tomcat能够同时监听多个端口,并且根据端口不同可以进行不同的操作找到<Service name="Catalina">标签,将标签连内容全部复制一份放到下面如:<Service name="Catalina"><Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /><Engine name="Catalina" defaultHost="localhost"><Realm className="org.alm.LockOutRealm"><Realm className="org.alm.UserDatabaseRealm"resourceName="UserDatabase"/></Realm><Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /></Host></Engine></Service>修改Service标签的name属性修改第一个Connector标签的port属性修改第二个Connector标签的port属性或直接删除那个标签修改Engine标签的name属性修改Host标签的appBase属性如:<Service name="myCatalina"><Connector port="80" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" /><Engine name="Catalina1" defaultHost="localhost"><Realm className="org.alm.LockOutRealm"><Realm className="org.alm.UserDatabaseRealm"resourceName="UserDatabase"/></Realm><Host name="localhost" appBase="webapps2"unpackWARs="true" autoDeploy="true"><Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"prefix="localhost_access_log." suffix=".txt"pattern="%h %l %u %t "%r" %s %b" /></Host></Engine></Service>这样可以用80端口进行访问,并且访问的是webapps2文件夹中的内容同时可以用8080端口进行访问,访问的是webapps文件夹中的内容* 配置用户权限作用: 使用户可以在tomcat首页上对tomcat进行操作给l 添加<role rolename="manager-gui"/> --> 注册角色(权限)(manager-gui是其中一种权限)<user username="账号名" password="密码" roles="manager-gui"/>然后进入localhost:8080中点击Host Manager即可弹出登录界面登录后可对tomcat进行管理tomcat,servlet和javaee的版本关系tomcat版本 servlet/jsp javaee版本 jdk版本7.0.x 3.0/2.2 6.0 1.66.0.x 2.5/2.1 5.0 1.5解除占用端口(了解)netstat -an 查看哪些端口正在被监听netstat -anb 查看被监听端口的详细信息找到端口正在被哪个程序占用,在任务管理器,或计算机右键-->管理-->服务中关闭相应程序即可使用命令行结束被占用端口上运行的程序1.取得被占用端口上正在运行程序的进程号(PID号)netstat -ano记住对应端口上正在运行程序的PID号2.强制结束进程taskkill /pid 进程号 /f例 taskkill /pid 7252 /fMyEclipse配置tomcatWindow-->Preferences-->MyEclipse-->Servers-->Tomcate x.x-->选择tomcat根目录,并Enabletomcat中发布的web项目的目录结构项目文件夹WEB-INF目录 , 不允许浏览器直接访问 (可以没有)classes 目录,存放字节码文件或源码包中的其它文件。(源文件夹编译后的文件)(对应java 项目的bin目录)lib 目录,存放当前web项目需要jar文件 web项目添加jar之后,不需要build path(java项目,手动创建lib目录,需要build l文件 ,当前web项目的配置文件,默认配置在%tomcat%/l中myeclipse创建的web项目的目录结构项目src ,源码WebRoot ,通过myeclipse发布web项目时,将此目录下的所有内容都拷贝到tomcat下面 (可以在项目--属性中找到并更改配置)l发布web项目手动发布web项目将web项目的WebRoot下的所有内容拷贝到%tomcat%/webapps文件夹下即可也可以先WebRoot下的所有内容打成war包,再拷贝到%tomcat%/webapps文件夹下自动发布的web项目访问的根路径是创建web项目时填写的Context root URL的值即项目右键-->Properties-->MyEclipse-->Web下的Web Context-root的值,而不是项目名称HTTP协议* 基于TCP协议传输协议。默认端口80,基于请求--响应模式* telnet模拟浏览器建立链接:telnet localhost 8080发送请求:发送请求前要先按ctrl+],否则不能输入,然后再按回车,进入编辑状态GET /myweb1/1.html HTTP/1.0Host:localhostGET /demo/userServlet?username=李凯昊 HTTP/1.1服务器响应HTTP/1.1 200 OKServer: Apache-Coyote/1.1Accept-Ranges: bytesETag: W/"29-1385450900391"Last-Modified: Tue, 26 Nov 2013 07:28:20 GMTContent-Type: text/htmlContent-Length: 29Date: Tue, 26 Nov 2013 07:51:23 GMTConnection: closewebapps tomcat default a.html注意:win7 telnet命令默认是不可用的,需要开启一下.步骤: 控制面板-->程序-->打开或关闭Windows功能-->telnet客户端 和 telnet服务器* http协议版本HTTP/1.1,一个链接,多个请求,多个响应HTTP/1.0,一个链接,一次请求,一次响应。http请求--request* 请求示例:参数均为username=李凯昊&password=123get请求GET /demo/?username=%E6%9D%8E%E5%87%AF%E6%98%8A&password=123 HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*Referer: localhost:8080/demo/Accept-Language: zh-CNUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)Accept-Encoding: gzip, deflateHost: localhost:8080Connection: Keep-AliveCookie: JSESSIONID=17AC598659C4FD9316D2E4F2F2C5CCF8post请求POST /demo/ HTTP/1.1Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, */*Referer: localhost:8080/demo/Accept-Language: zh-CNUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateHost: localhost:8080Content-Length: 49Connection: Keep-AliveCache-Control: no-cacheCookie: JSESSIONID=17AC598659C4FD9316D2E4F2F2C5CCF8username=%E6%9D%8E%E5%87%AF%E6%98%8A&password=123注意:超链接也是get请求,参数也放在请求行中,不过参数没有经过url的编码处理(超链接和手动在地址栏输入一样,但get请求和手动在地址栏输入不一样,会先进行url编码处理)* 格式:请求行、请求头、请求体* 请求行例如:GET /myweb1/1.html HTTP/1.1格式:请求方式 资源路径 协议/版本请求方式:共7种,常用2种:POST、GETPOST,将请求参数添加到请求体中,一般情况看不到。安全,还可以传输大数据GET,将请求参数追加到URL之后(即参数在请求行中),第一个参数与URL使用?分隔、其他参数与第一个参数使用&分隔。可以在地址栏显示,长度有限1024字符,不安全。例如:192.168.3.100:8080/myweb1/1.html?username=jack&password=1234* 请求头:Accept: text/html,image/* --支持数据类型Accept-Charset: ISO-8859-1 --字符集Accept-Encoding: gzip --支持压缩Accept-Language:zh-cn --语言环境Host: www.itcast:80 --访问主机If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT --缓存时间Referer: .jsp --来自哪个页面、防盗链User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) --浏览器和操作系统信息Cookie:JSESSIONID=3F56EB28E5E2D25219E0054CABBDDEC7 --cookie信息Connection: close/Keep-Alive --链接状态Date: Tue, 11 Jul 2000 18:23:51 GMT --时间* 请求体:post请求通过请求体传递参数请求体与请求头之间存在一个空行http响应--response* 响应示例HTTP/1.1 200 OKServer: Apache-Coyote/1.1Content-Type: text/html;charset=utf-8Content-Length: 651Date: Tue, 21 Oct 2014 13:36:26 GMT<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>...* 格式:响应行、响应头、响应体* 响应行例如:HTTP/1.1 200 OK格式:协议/版本 状态码 状态码对应的描述信息状态码1xx 表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程2xx 表示成功接收请求并已完成整个处理过程,常用200200 正常3xx 请求已经部分完成,需要进一步完全其他请求,使整个请求全部完成。例如,请求的资源已经移动一个新地址,常用302、307和304304 请求资源浏览器已经缓存了,并且与服务器的资源相同,需要浏览器读取本地缓存。302 当前请求已经完成,但需要进一步再一次发送请求,请求到location指定的位置。重定向4xx 客户端的请求有错误,常用404404 页面不存在5xx 服务器端出现错误,常用 500500 服务器端异常* 响应头Location: .jsp --跳转地址Server:apache tomcat --服务器型号Content-Encoding: gzip --数据压缩Content-Length: 80 --数据长度Content-Language: zh-cn --语言环境Content-Type: text/html; charset=GB2312 --数据类型Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT --最后修改时间Refresh: 1;url= --定时刷新Content-Disposition: attachment; filename=aaa.zip --下载Set-Cookie:SS=Q0=5Lb_nQ; path=/search -- 客户端需要存储的cookieExpires: -1 --缓存Cache-Control: no-cache --缓存Pragma: no-cache --缓存Connection: close/Keep-Alive --连接Date: Tue, 11 Jul 2000 18:23:51 GMT --时间* 响应体返回的页面Html代码或其它内容(图片),浏览器将解析html代码,显示页面响应体与响应行之间有个空行。* 小应用设置字符集,处理中文乱码response.setHeader("content-type","text/html;charset=utf-8");重定向response.setHeader("location","form.html");response.setStatus(302);定时刷新页面(秒)response.setHeader("refresh","3");指定秒数后跳转到指定页面response.setHeader("refresh","3;url=form.html");
本文发布于:2024-01-31 08:42:55,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170666177627262.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |