杂谈javaEE重点,分享交流经验

[来源] 达内    [编辑] 达内   [时间]2013-08-13

杂谈javaEE重点,分享交流经验

参赛学员:邹龙章

获奖奖项:三等奖

 大家好!很高兴在这个平台上给大家分享一些 knowledge ,同时感谢达内能提供这么一个好的机会。谢谢!

   亲,你们的好评是对我的鼓励,请大家多多支持我,我会拿出自己的最大的精力来与大家分享我所学的。

   java EE(Java Plantfor Enterprise Edition) 是sun公司推出的企业级应用程序版本。这个版本以前成为J2EE.能够帮助我们开发和部署可移植、健壮、可伸缩且安全的服务器端java应用程序。java EE 是在java SE的基础上构建的,它提供Web服务、组建模型、管理和通信API,可以用来实现企业级的面向服务体系结构和Web 2.0应用程序。

  J2EE 本身是一个标准,一个为企业分布式应用的开发提供的标准平台。J2EE 也是一个框架,包括JDBC JNDIRMI JMS EJBJTA 等技术。

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-mappingfilter 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 JSPContext 的初始化参数,然后可以再servletJSP 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 项目中的一个核心项目,有 Apachesun 和其他一些公司及个人共同开发而成;

使用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文件 listingsfalse true,重启Apache 服务

3)配置首页—— index.xxx <welcome-file-list><welcome-file>main.htm</welcome-file></welcome-file-list>

网友评论 已有 0 条评论,查看更多评论»

评论内容:
验证码:
【网友评论仅供其表达个人看法,并不表明本站同意其观点或证实其描述。】

就业案例

最新开课信息