一 网络功能层次(8层): LAN/ATM(物理层)----LAN/ATM(数据链路层)----IP(网络层)----TCP/UDP(传输层)- --- 会话层----表示层----HTTP(应用层)----SOAP/UDDI(Web服务)。
J2EE结构体系:
容器包含的主要Java Web 编程技术,三种
1)J2EE应用构件——Servlet,JSP,EJB (jdk,j2eedk)
2)J2EE提供的应用服务——JDBC(数据连接技术),JTS(),JNDI(命名技术),数据事务技术,安全技 术,连接框架技术,,Web服务技术,部署技术(deployment),保证并促进构件的良好运行。
3)应用通行技术——RMI,JMS,JavaMail,Web协议,远程方法调用,对象管理组协议,Java通信服务技 术,Java 消息技术和邮件技术,在平台底层实现机器和程序之间的信息传递。
二 HTTP 提供两种Form和服务器进行请求的方式:Get 方法(网页定位URL和 发送的内容体body,同时发送)和Post方法(先发URL再发body)
三 HTML 表单有用属性:attributes: action ,method(指定向服务器发送数据的HTTP方法), enctype(指定数据在发送之前的编码方式,默认是 application/x-www-form-urlencoded或multipart/form-data(用post方法)),target(指定在浏览器中哪个frame来显示服务器的响应html,默认是当前frame),onsubmit 和 onreset ,accept 和accept-charset(指定服务器程序接受的MIME类型和字符编码类型)。
四 系统配置设定:装完jdk后 ,设置Java_home=j2sdk的安装目录(c:/jdk1.4),classpath=%java_home%/bin
安装完web服务器后,设置 (如要使用命令行启动服务)catalina_home=web 服务安装目录,
web 服务器文件夹说明:%catalina_home%/bin ,%catalina_home%/common——Web服务器用到的Java类文件和jar文件,内部的/classes 文件夹 存类文件,/endosed存放外来的jar文件,/lib存放服务器和所有web程序使用的jar文件。%catalina_home%/conf ——web 服务配置server.xml。%catalina_home%/logs,%catalina_home%/temp,%catalina_home%/webapps——web应用程序。
五 基本servlet 变成API :javax.servlet(提供了Web容器能够使用的servlet基本类和接口) 目录和 javax.servlet.http目录(包括和http相关的servlet 接口)。
六 http 请求包括三部分:1请求行(request line)——请求方法method,请求网址Url 和协议
2头部(headers)——多个属性(相关内容可以参看http 1.0协议)
3数据体(body)附加在请求后的文本或二进制文件。
七 会话(session)
概念。
web容器实现会话的三种途径:1 cookie 可存放会话代码 ,作为http 头信息传递。
2 URL重写,将会话代码附加在url中()在servlet 中可以用 response.encodeURL 方法实现重写。
3 隐藏表单输入。
上面三种方式都没有安全机制,可以使用ssl连接来保证。
会话生命期:一个用户发出的请求是一个会话。
是会话失效的三种情况:1 浏览器被关闭。?浏览器指所有网页关,还是对该网站访问的网页关? 2 session 过期。3 注销(调用invalidate)
Cookie 是一小块可以嵌入HTTP 请求和响应中的数据,它在服务器上产生,并作为响应头域的一部分返回用户。浏览器收到包含Cookie 的响应后,会把Cookie 的内容用“关键字/值” 对的形式写入到一个客户端专为存放Cookie 的文本文件中。浏览器会把Cookie 及随后产生的请求发给相同的服务器,服务器可以再次读取Cookie 中存Cookie 可以进行有效期设置,过期的Cookie 不会发送给服务器。
Servlet API 提供了一个Cookie 类,封装了对Cookie 的一些操作。Servlet 可以创建一个新的Cookie,设置它的关键字、值及有效期等属性,然后把Cookie 设置在HttpServletResponse 对象中发回浏览器,还可以从HttpServletRequest 对象中获取Cookie。
javax.servlet.http.HttpSession 接口封装了HTTP 会话的细节,该会话与一段时间内特定的Web 客户对Web 服务器的多个请求相关。管理会话数据主要涉及到3个方面:会话交换、会话重定位和会话持久性,只有实现了java.io.Serializable 接口的数据对象才能够被交换、重定位和保持。这个接口主要是让对象具有序列化的能力,它可以将对象的状态信息写入任意的输出流中如:文件、网络连接等。
八 过滤器 filter
能对请求和响应的头属性(header)和内容体(body)进行操作的特殊Web构件。过滤器可以在web请求到达servlet 和 jsp之前和在 servlet 返回响应之后对二者进行操作。
过滤器的主要功能包括:1 对web请求进行分析,对输入数据进行预处理;2 阻止请求和响应的进行;3 根据功能改动请求的头信息和数据体;4 根据功能改动响应的头信息和数据体;5 和其他的web资源协作。
多用于 安全保护,运行记录,图象转化,数据压缩,加密解码以及xml转化等。
过滤器的配置:在web.xml 中的filter 中写配置。
九 事件监听器
web.xml 中<listener-class>
web.xml 的编制信息可以参看: Servlet2.4 。
十 JSP 和 XML 的交互。
主要用于格式化文件和通信语言。JAXP技术使用SAX和DOM 分析 XML 文件。也可以使用XSLT来转换XML格式。处理XML 的 API 包 :crimson.jar,xalan.jar,jaxp.jar。如果没有,需要设置calsspath 包括。
JSP 生成 XML :和生成html 文件类试,申明为contentType=“test/xml“既可。
分析服务器端的XML 转化为适当格式。
十一 Web 层使用的安全机制
其中包括基于http 协议的web安全技术和web服务器提供servlet 和 JSP 使用的安全机制。
1.用户身份确认Authentication
确保用户不是假冒的。应用程序获取用户的凭据(各种形式的标识,如用户名和密码)并通过某些授权机构验证那些凭据。如果这些凭据有效,则提交这些凭据的实体被视为经过身份验证的标识。
2.授权Authorization
通过对已验证身份授予或拒绝特定权限来限制访问权限。
两种安全性保护实现方式:
申明性安全机制:申明性安全机制规定了web 程序和web 服务器 之间的安全配置协议。web 服务器 根据web.xml中定义的安全要求实现对web资源的保护。——文件本身属性来保证安全。(对这中需要配置xml 来实现的 安全保护可以写一个实用工具来 对配置 文件读写操作。)
程序性安全机制:由java程序来实现安全的限制。——用户访问控制。
根据安全策约来。
在Web部署描述文件中 可以对Web程序的安全机制进行设定,实现的是申明性安全机制。
在tomcat 中两种方式实现验证方式: 使用XML定义用户的内存 realm验证方式 和是用数据库连接建立 jdbc realm 的验证方式。这两种realm 定义的用户信息来源 是对一个web 服务器中所有 web 程序而言。
在使用内存reaml 的验证方式,用户信息定义在 conf/tomcat-users.xml 文件中。
使用这个文件作为 用户 信息定义的数据资源文件 是 tomcat 默认的设置,在 servlet.xml 中 <GlobalNamingResources> 中定义的。
使用JDBC reaml 数据库
在 server.xml 文件中的<Realm>中元素定义
<Realm className="org.apache.catalina.realm.jdbcrealm" debug="99" -------realm 的类名
driverName="org.git.mm.mysql.Driver"
connectionURL="jdbc:mysql:// "
connectionName="test" connctionPassword=""
userTable="users" userNameCol="user_name"
userCredCol="user_pass" userRoleTable="user_roles" roleNameCol="role_name"
/>
在用户身份确认Authentication 阶段
web 服务器 有以下几种方式 来实现 验证和登录方式:(服务器容器提供的标准验证方式)
1。http 基本验证(basic Authentication )
2. 基于表单验证(form-based Authentication )
3 客户凭证验证(client-certificate Authentication )
4 载要验证 (digest Authentication )
web 程序本声可以使用的验证方式有:
1 web 程序表单验证
2 程序性安全机制
十二 web.xml 文件的配置 元素描述:
XML元素不仅是大小写敏感的,而且它们还对出现在其他元素中的次序敏感。例如,XML头必须是文件中的第一项,DOCTYPE声明必须是第二项,而web-app元素必须是第三项。在web-app元素内,元素的次序也很重要。服务器不一定强制要求这种次序,但它们允许(实际上有些服务器就是这样做的)完全拒绝执行含有次序不正确的元素的Web应用。这表示使用非标准元素次序的web.xml文件是不可移植的。
下面的列表给出了所有可直接出现在web-app元素内的合法元素所必需的次序。例如,此列表说明servlet元素必须出现在所有servlet-mapping元素之前。请注意,所有这些元素都是可选的。因此,可以省略掉某一元素,但不能把它放于不正确的位置。
l icon icon元素指出IDE和GUI工具用来表示Web应用的一个和两个图像文件的位置。
l display-name display-name元素提供GUI工具可能会用来标记这个特定的Web应用的一个名称。
l description description元素给出与此有关的说明性文本。
l context-param context-param元素声明应用范围内的初始化参数。
l filter 过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。
l filter-mapping 一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。
l listener servlet API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。Listener元素指出事件监听程序类。
l servlet 在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。
l servlet-mapping 服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。
l session-config 如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。
l mime-mapping 如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mime-mapping元素提供这种保证。
l welcom-file-list welcome-file-list元素指示服务器在收到引用一个目录名而不是文件名的URL时,使用哪个文件。
l error-page error-page元素使得在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,能够制定将要显示的页面。
l taglib taglib元素对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。此功能使你能够更改TLD文件的位置,而不用编辑使用这些文件的JSP页面。
l resource-env-ref resource-env-ref元素声明与资源相关的一个管理对象。
l resource-ref resource-ref元素声明一个资源工厂使用的外部资源。
l security-constraint security-constraint元素制定应该保护的URL。它与login-config元素联合使用
l login-config 用login-config元素来指定服务器应该怎样给试图访问受保护页面的用户授权。它与sercurity-constraint元素联合使用。
l security-role security-role元素给出安全角色的一个列表,这些角色将出现在servlet元素内的security-role-ref元素的role-name子元素中。分别地声明角色可使高级IDE处理安全信息更为容易。
l env-entry env-entry元素声明Web应用的环境项。
l ejb-ref ejb-ref元素声明一个EJB的主目录的引用。
l ejb-local-ref ejb-local-ref元素声明一个EJB的本地主目录的应用。
还在添加中~~