java EE(Java Plantfor Enterprise Edition)是sun公司推出的企业级应用程序版本。这个版本以前成为J2EE.能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端java应用程序。java EE 是在java SE的基础上构建的,它提供Web服务、组建模型、管理和通信API,可以用来实现企业级的面向服务体系结构和Web 2.0应用程序。
J2EE本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE也是一个框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技术。
java EE 的体系结构:
1、表示层(HTML、JavaScript、Ajax)
2、中间层(JSP、Servlet、JSTL、JavaBean)(Struts)
3、数据层(JDBC)(Hibernate)
三层体系结构的优点?
1、耦合性低 2、扩展性好 3、复用性好 4、便于分工
j2ee常用的设计模式:
Java中的23种设计模式:
Factory(工厂模式), Builder(建造模式), Factory Method(工厂方法模式), Prototype(原始模型模式),Singleton(单例模式), Facade(门面模式), Adapter(适配器模式), Bridge(桥梁模式), Composite(合成模式), Decorator(装饰模式), Flyweight(享元模式), Proxy(代理模式), Command(命令模式), Interpreter(解释器模式), Visitor(访问者模式), Iterator(迭代子模式), Mediator(调停者模式), Memento(备忘录模式), Observer(观察者模式), State(状态模式), Strategy(策略模式), Template Method(模板方法模式), Chain Of Responsibility(责任链模式)
工厂模式:工厂模式是一种经常被使用到的模式,根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,
通常这一组类有一个公共的抽象父类并且实现了相同的方法,但是这些方法针对不同的数据进行了不同的操作。首先需要
定义一个基类,该类的子类通过不同的方法实现了基类中的方法。然后需要定义一个工厂类,工厂类可以根据条件生成不同
的子类实例。当得到子类的实例后,开发人员可以调用基类中的方法而不必考虑到底返回的是哪一个子类的实例。
HTTP协议的提交方式:
1、GET——用URL传递数据
2、POST——用流的方式传递数据
Servlet是一个java程序,是在服务器端运行的以处理客户端请求并做出响应的程序。
Servlet类一定要继承HttpServlet,Servlet必须和Servlet容器配合运行,Servlet要嵌入容器才能运行。
Web应用程序的结构:
tomcat—webapps—appName:
http://ip:port/appName/index.jsp
1、页面和图片(可以自己组织结构,可以从客户端直接访问,jsp、html、js、jpg.....)
2、WEB-INF 目录(必须有的 其中的东西不能从客户端直接访问 )
a、web.xml (必须有 Web程序的总体配置,是一个核心)
b、classes文件夹(必须的 Servlet和JavaBean编译成Class后存放于该文件夹)
c、lib文件夹(存放该程序用的类库jar包)
Web .xml中要对Servlet进行一些配置
<Servlet> <servlet-name>test</servlet-name> <servlet-class>org.owl.servlets.TestServlet</servlet-class> </Servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping>
JSP在运行时需要翻译成一个Servlet程序,然后再编译成Class文件,然后才可以运行。
Servlet的生命周期由Servlet容器来管理
Servlet的声明周期:
1、加载和实例化(构造方法): 在Web容器中查找用户请求的Servlet,如果没有找到,则实例化,如果找到,则加载。
2、初始化(init):在实例化后调用的方法,可以初始化一些资源。
3、服务(service): 接受请求并做出响应。根据请求的方式不同,调用doXXX方法。
4、销毁(destory): 主要用来销毁初始化时创建的资源,在destory方法中我们标识哪些资源可以回收,并不能马上回收。
如何获得请求参数?
1. request。getParameter(“name”);
2. 如果一个请求参数有多个值,需要返回一个数组!
String []size=request.getParameter(“name”);
For(int i=0;i<size.length;i++){
out.print(size[0]);
}
除了参数,还可以获得其他
1与请求相关的cookie Cookie [] cookies=request.getCookies();
2与会话相关的session Session session=request.getSession();
3请求的HTTP方法 String methed=request.getMethed();
初始化参数:
在web.xml中设置servlet初始化参数
<servlet>
<servlet-name> dbinit </servlet-name> <servlet-class> strutsfinalcase.db.util.DBInit </servlet-class> <init-param> <param-name> driverClass </param-name> <param-value> org.gjt.mm.mysql.Driver </param-value> </init-param> <servlet>
解释:容器初始化一个servlet时,会为这个servlet创建一个唯一的ServletConfig, 容器从DD读出servlet初始化参数,交给ServletConfig 然后转递给servlet的init()方法
在servlet 代码中获得初始化参数的值:
getServletConfig(),getInitParameter(“param-name”);
上下文初始化参数
<context-param> <param-name>name</param-name> <param-value>John</param-value> </context-param>
在servlet 代码中获得上下文初始化参数的值:
getServletContext().getInitParameter(“name”);
ServletContext
用于在Web应用范围内存取共享数据的方法。
注:web应用范围具有以下两层含义:
(1) 表示有web应用的生命周期构成的时间段.
(2) 表示在web应用的生命周期内所有web组件的集合。
* setAttribute(String name,java.lang.Object object):把一个java对象和一个属性名绑定,并存放到ServletContext中,参数name指定属性名,参数Object表示共享数据。
* getAttribute(String name):根据参数给定的属性名,返回一个Object类型的对象。
* getAttributeNames():返回一个Enumeration对象,该对象包含了所有存放在ServletContext中的属性名。
* removeAttribute(String name):根据参数指定的属性名,从servletContext对象中删除匹配的属性。
访问当前Web应用的资源
* getContextpath():返回当前web应用的URL入口。 * getInitParameter(String name):返回web应用方位内的匹配的初始化参数值。 在web.xml中<web-app>元素中<context-param>元素表示应用范围内的初始化参数。 * getInitParameterNames():返回一个Enumeration对象。 * getServletContextName():返回web应用的名字。即<web-app>元素中<display-name>元素的值。 * getRequestDispatcher(String path):返回一个用于向其他web组件转发请求的RequestDispatcher对象。
web.xml文件
web.xml文件是用来初始化配置信息:比如Welcome页面、servlet、servlet-mapping、filter、listener、启动加载级别等
1、指定欢迎页面,例如:
<welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index1.jsp</welcome-file> </welcome-file-list>
PS:指定了2个欢迎页面,显示时按顺序从第一个找起,如果第一个存在,就显示第一个,后面的不起作用。如果第一个不存在,就找第二个,以此类推。
2、命名与定制URL。我们可以为Servlet和JSP文件命名并定制URL,其中定制URL是依赖命名的,命名必须在定制URL前。下面拿serlet来举例:
(1)、为Servlet命名:
<servlet> <servlet-name>servlet1</servlet-name> <servlet-class>org.whatisjava.TestServlet</servlet-class> </servlet>
(2)、为Servlet定制URL、
<servlet-mapping> <servlet-name>servlet1</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
3、定制初始化参数:可以定制servlet、JSP、Context的初始化参数,然后可以再servlet、JSP、Context中获取这些参数值。
下面用servlet来举例:
<servlet> <servlet-name>servlet1</servlet-name> <servlet-class>org.whatisjava.TestServlet</servlet-class> <init-param> <param-name>userName</param-name> <param-value>Daniel</param-value> </init-param> <init-param> <param-name>E-mail</param-name> <param-value>125485762@qq.com</param-value> </init-param> </servlet>
经过上面的配置,在servlet中能够调用getServletConfig().getInitParameter("param1")获得参数名对应的值。
4、指定错误处理页面,可以通过“异常类型”或“错误码”来指定错误处理页面。
<error-page> <error-code>404</error-code> <location>/error404.jsp</location> </error-page> ----------------------------- <error-page> <exception-type>java.lang.Exception<exception-type> <location>/exception.jsp<location> </error-page>
5、设置过滤器:比如设置一个编码过滤器,过滤所有资源
<filter> <filter-name>XXXCharaSetFilter</filter-name> <filter-class>net.test.CharSetFilter</filter-class> </filter> <filter-mapping> <filter-name>XXXCharaSetFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
6、设置监听器:
<listener> <listener-class>net.test.XXXLisenet</listener-class> </listener>
7、设置会话(Session)过期时间,其中时间以分钟为单位,假如设置60分钟超时:
<session-config> <session-timeout>60</session-timeout> </session-config>
8.设置上下文初始化参数(对于整个web应用都适用)
<context-param> <param-name>foo</param-name> <param-value>bar</param-value> </context-param>
在servlet中获取上下文参数初始化
String s=getContex().getInitParameter("foo");
3.重定向和请求分派的比较
<1>请求分派只能将请求转发给同一个web应用中的其他组件,而重定向不仅可以定向到当前应用程序中的其他资源,也可重定向到其他站点的资源上
<2>重定向的访问过程结束后,浏览器的地址栏显示的URL会发生改变,变成重定向的目标URL,而请求分派的浏览器地址栏保持初始的URL
<3>请求分派的发起者和被调者之间共享相同的request实例和response实例,属于同一个“请求/响应”而重定向的发起者和被调用者使用各自的request实例和response实例,各自属于独立的“请求/响应”过程。
请求转发 RequestDispatcher dis=request.getRequestDispatcher("Servlet2");
dis.forward(request, response);
重定向 response.sendRedirect("Servlet2"); //重定向到指定路径的资源
get 和post 比较
1. get是从服务器上获取数据,post是向服务器传送数据。
2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。
4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。
5. get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
Tomcat服务器
运行Java Web程序必须有相应Web容器支持,所有的动态程序代码都在Web容器中执行,Tomcat是一个web容器;
静态请求的所有代码操作都是固定的,动态请求操作的所有代码都是拼凑的;
Tomcat是有Apache软件基金会的Jakarta项目中的一个核心项目,有Apache、sun和其他一些公司及个人共同开发而成;
使用Tomcat必须有JDK的支持
Tomcat中主要文件夹:bin/conf/lib/logs/webapps/work
任何服务器都是依靠端口号进行监听的
服务器配置
(1)修改端口号——conf/server.xml
(2)配置虚拟目录——磁盘下建立文件夹、建立WEB-INF文件、复制web.xml文件,服务器端配置<Context path="/sjwin" docBase="url"/>
修改conf/web.xml文件listings中false为true,重启Apache服务
(3)配置首页——index.xxx;<welcome-file-list><welcome-file>main.htm</welcome-file></welcome-file-list>
相关推荐
基于MVC模式的java体系结构图,视图包括html,css,div,ajaxflash,javascript,xml,jsf,tag,控制器包括JSP,SERVLET。
Java EE知识体系结构,用图解的形式详细讲述了Java EE整体的知识架构。
### Java体系结构介绍 #### 一、Java 是什么 Java是一种高级编程语言,它具有开放性、跨平台性、安全性及面向对象等特性。Java语言的设计借鉴了C和C++等面向对象语言的经验,但在语法上更为简洁。它可以运行在多种...
Java EE,全称为Java Platform, Enterprise Edition,是Java平台下的企业版,主要用于构建分布式、多层的企业级应用程序。它提供了一系列的API和服务,包括Servlet、JSP、EJB(Enterprise JavaBeans)、JMS(Java ...
Struts是Java EE领域中的一款流行MVC(Model-View-Controller)框架,它极大地简化了Web应用的开发。在腾科Java EE培训教材中,针对框架技术的讲解,特别是Struts,主要分为三个部分,涵盖了Struts的历史、发展以及...
1.2 Java EE体系结构 Java EE的体系结构是一个多层的分布式模型,通常包括客户端层、应用服务器层和后端层(企业信息系统层)。客户端层可以是浏览器、Java程序或其他Web编程环境;应用服务器层包含表示逻辑(如JSP...
Java EE 架构师需要了解什么是体系结构、架构是角色、服务级别需求等概念。体系结构是指一个企业或组织中的软件架构,它描述了软件系统的结构、组件、关系和交互方式。 Java EE 概述 Java EE 是一个基于 Java 的...
- 体系结构:Java EE平台采用分层架构,包括Web层、业务层、集成层等。 - Profile(自定义规范):允许根据特定需求定义Java EE平台的子集。 - 应用程序组件:包括servlet、JavaServer Pages、Enterprise ...
Java体系结构主要包括Java SE(Java Standard Edition)、Java EE(Java Enterprise Edition)和Java ME(Java Micro Edition)三大部分。Java SE是标准版,定位在个人计算机上的应用;Java EE是企业版,定位在...
Java EE 8带来了许多功能,主要针对诸如微服务,现代化的安全性API和云部署等较新的体系结构。 本书将教您使用Java EE 8设计和开发现代的,面向业务的应用程序。它展示了如何构建系统和应用程序,以及在Java EE 8...
2. Java EE的三层结构:Java EE具有典型的三层结构,包括客户层组件、Java EE服务器(包括Web层组件与业务逻辑层组件)和EIS层软件。Java EE容器包括Web容器、EJB容器、Applet容器、Application Client容器,它能...
对Java的学习很有帮助,可以了解相关web开发的技术。
本文介绍了一个基于 Java EE 技术的软件框架设计,旨在解决传统 Java EE 体系结构的缺陷,提高软件开发效率和可维护性。该框架设计结合了 Web Work、Spring 和 Hibernate 三种框架,实现了代码重用、设计重用、代码...
总之,Java EE是一个庞大的体系,涵盖了Web开发的多个方面。复习笔记可以帮助我们系统地回顾和整理这些知识,加深理解,从而更好地应用于实际项目中。通过学习和实践,我们可以不断提升自己的技能,成为优秀的Java ...
这个平台基于Java SE(Java Standard Edition),旨在提供Web服务、组件模型、管理和通信API,支持企业级的面向服务体系结构(SOA)和Web 2.0应用程序。 Java EE的核心特征之一是Bean Validation框架,这是Java EE ...
Java负责编写核心业务逻辑,Struts作为MVC框架负责控制流程,JavaScript增强前端交互,Spring为整体应用提供结构和依赖管理,而Hibernate则处理数据持久化。这样的组合在企业级应用开发中非常常见,也是许多开发者...
Java EE 的多层体系结构使得应用程序的不同部分可以运行在不同的设备上,最终实现了松耦合的系统结构。 三、 模拟器开发项目管理系统的实现 基于 Java EE 的模拟器开发项目管理系统的实现,旨在解决项目管理中的...
9. **Web服务体系结构(WS-Security)**:Java EE 6支持Web服务安全标准,如WS-Security,确保通信的安全性。 10. **持续集成与部署**:通过Maven插件和GlassFish插件等工具,Java EE 6支持更流畅的持续集成和部署...
本文将深入介绍WebLogic Server与J2EE(Java 2 Platform, Enterprise Edition)体系结构的关键组件和功能。 **3.0 简介** WebLogic Server作为J2EE平台的一部分,它遵循了J2EE的多层分布式架构,旨在提供可扩展性...