`
younglibin
  • 浏览: 1214350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

web-j2EE整合(一)

 
阅读更多

一、web工程创建

1.创建web工程(简单方式在Myeclipse环境中直接直接创建web工程)

2.将web工程发布到tomcat中运行,运行正常

3.在浏览器中测试成功

二、web工程集成struts2 

1.在 “一”中,添加struts2

2.选择将要使用的struts2 的版本:(选择2.0.6)

3.将struts2 将要使用的 jar拷贝至项目中;

commons-fileupload-1.2.2.jar

commons-logging-1.0.4.jar   提供java日志操作API,抽象出日志接口,方便操作

freemarker-2.3.8.jar         freemarker模板视图支持,struts2标签主题支持

ognl-2.6.11.jar                 OGNL表达式支持

struts2-core-2.0.14.jar          struts2框架

xwork-2.0.7.jar             命令模式框架支持

javassist-3.11.0.GA.jar

commons-io-2.0.1.jarIO操作

commons-langs-3.1.jar          提供java常用操作API,比如字符串处理,XML解析等

4.在web.xml添加对struts2 的支持

添加struts2 的核心过滤器

<?xml version="1.0" encoding="UTF-8"?>

<web-app version="2.4" 

xmlns="http://java.sun.com/xml/ns/j2ee" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<!-- DTD可以从任何一个web文件中拷贝出来,例如从tomcat中拷贝 -->

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

  <welcome-file-list>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

</web-app>

5.在src下穿件struts.xml 文件

头文件 可以去 struts jar中拷出来

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

    

<struts>

<package name="test" extends="struts-default" namespace="/struts2"></package>

</struts>

5.1   拷贝  default.properties 文件到  struts.xml相同目录,修改配置文件内容,修改编码 ,spring支持,上传文件文件大小 ,开发模式 等属性

 

6.重启tomcat,在浏览器中测试运行正常就好;

 

 

写一个  测试 类,测试 struts 转向成功  

 

 

 

 

三、web工程集使用servlet(问题一:servlet在struts2环境中怎么应用的?)

添加  servlet-api.jar  包;

tomcat 本身就是一个web

四、在web工程中使用Logger

下载  apache log4j  包

引用log4j jar包,

在class目录下配置log4j.properties配置文件(问题二:log4j 的配置文件是怎么读入程序中使用的,为什么将log4j.properties文件放置在classes目录下就可以使用了)

在java类中 调用:

private static final Logger log=Logger.getLogger(类名.class);

五、为web工程添加filter

编写java类,必须 实现  Filter  接口方法;

在web.xml中定义 filter 

配置filter 映射的路径(参照struts2配置)

六、  为web工程添加拦截器(Interceptor)

(问题四:为action添加拦截器之后再action中原来可以得到的JSP页面的参数 得不到了?)

编写java类,实现Interceptor接口

在类中编写处理逻辑

在action 中配置拦截器

<interceptors>

<interceptor name="testInterceptor" class="com.younglibin.www.lb.TestInterceptor"></interceptor></interceptors>

为action添加拦截器调用

<action name="loginWithInter" class="com.younglibin.www.lb.action.LoginAction" method="login">

<interceptor-ref name="testInterceptor"></interceptor-ref>

<result name="success">/page/struts2/interceptor.jsp</result>

</action>

以上配置是会出问题(因为为action添加了拦截器后,默认的拦截器就会失效,也就是说struts2中的内置拦截器就不起作用,但是在struts2中大部分业务还是通过默认拦截器实现的,例如param拦截器,如果不使用,页面表单提交,参数在action中得不到)

所以在使用拦截器时,一定要配置添加上默认的拦截器,

<interceptors>

<interceptor name="testInterceptor" class="com.younglibin.www.lb.TestInterceptor"></interceptor>

<interceptor-stack name="test">

<interceptor-ref name="defaultStack"/>

<interceptor-ref name="testInterceptor"/>

</interceptor-stack>

</interceptors>

 

<action name="nomal" class="com.younglibin.www.lb.action.LoginAction" >

<interceptor-ref name="test"></interceptor-ref>

<result name="success">/page/struts2/welcome.jsp</result>

<result name="error">/page/struts2/loginNomal.jsp</result>

</action>

启动web工程,拦截器添加完成

拦截器是作用在整个action中的,也可以为某个方法提供拦截器,需要实现,

该接口提供了 doInterceptor方法,实现该方法和原来拦截器方法没有区别;

 

 

 

七、为web工程添加监听器(Listener) (问题三:filter、interceptor、LIstener 三者的作用及区别和联系)

为Web添加Listener的步骤:

 1.建立Listener实现类

 2.在web.xml中配置Listener

 

八、在Struts2中 struts2 的Action是如何访问Servlet API 的:(问题四:在action中如何访问servlet的属性,也就是JSPServlet中的属性,例如,session、request、、、、、)

Struts2的Action没有与任何的ServletAPI 耦合,这是Struts2 的改良支出,因为Action类不在与ServletAPI 耦合,从而能更轻松的测试Action

但是对于Web工程而言,不访问ServletAPI几乎是不可能的,所以Struts2 提供了一种更轻松的方式来访问Servlet API即ActionContext,Struts2提供了ActionContext类来访问Servlet API 。

 

具体实现参照ActionContext 类的API ;

核心代码:

ActionContext act = ActionContext.getContext();

   act.getApplication();

   act.getSession();

   HttpServletRequest request = (HttpServletRequest) act.get(ServletActionContext.HTTP_REQUEST);

   HttpServletResponse response = (HttpServletResponse) act.get(ServletActionContext.HTTP_RESPONSE);

Action 直接访问 Servlet API  

action  实现 ServletResponseAware  即可 访问 Response 

 

九、Web工程添加Ajax支持

Ajax使用:

使用XMLHttpRequest发送对象的步骤:

1. 为得到XMLHttpRequest对象实例的一个引用,可以创建一个新的实例,也可以访问包含有XMLHttpRequest实例的一个变量。

 

  2. 告诉XMLHttpRequest对象,哪个函数会处理XMLHttpRequest对象状态的改变,为此要把对象的onreadystatechange属性设置为指向JavaScript函数的指针。

 

  3. 指定请求的属性。XMLHttpRequest对象的open()方法会指定将发出的请求。open()方法取3个参数:一个是指示所用方法(通常是GET或POST)的串;一个是表示目标资源URL的串;一个是Boolean值,指示请求是否是异步的。

 

  4. 将请求发送给服务器。XMLHttpRequest对象的send()方法把请求发送到指定的目标资源。send()方法接受一个参数,通常是一个串或一个DOM对象。这个参数作为请求体的一部分发送到目标URL。当向send()方法提供参数时,要确保open()中指定的方法是POST。如果没有数据作为请求体的一部分被发送,则使用null。

 

1.使用ajax第一步创建XMLHttpRequest 对象

因为不同浏览器中XMLHttpRequest 对象不同所以第一步,根据使用的浏览器创建不同的XMLHttpRequest对象:

 

ajax._createXMLHttpRequest=function()

{

if(window.ActiveXObject)

{

var ver=["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0",

"MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];

for(var i=0;i<ver.length;i++)

{

try

{

return new ActiveXObject(ver[i]);

}

catch(e)

{

continue;

}

}

}

else if(window.XMLHttpRequest)

{

return new XMLHttpRequest();

}

else

{

throw new Error("对不起,您的浏览器不支持Ajax!");

}

}

 

 

2、 封装 Ajax的 post和get方法

if(!ajax)

{

var ajax={};

}

 

ajax.sendGetRequest=function(url,fnRollback,bAsync)

{

    var oXMLHttpRequest=ajax._createXMLHttpRequest();

var async=true;

if(typeof bAsync=="boolean")

{

async=bAsync;

}

    oXMLHttpRequest.open("get",url,async);//默认异步请求

if(async)//异步

{

oXMLHttpRequest.onreadystatechange=function()

{

if(oXMLHttpRequest.readyState==4)//数据接收完毕

{

if(oXMLHttpRequest.status==200)//OK

{

fnRollback(oXMLHttpRequest);

}

}

};

}

    oXMLHttpRequest.send(null);

if(!async)//同步

{

fnRollback(oXMLHttpRequest);

}

}

 

ajax.sendPostRequest=function(url,params,fnRollback,bAsync)

{

    var oXMLHttpRequest=ajax._createXMLHttpRequest();

var async=true;

if(typeof bAsync=="boolean")

{

async=bAsync;

}

    oXMLHttpRequest.open("post",url,async);//默认异步请求

if(async)//异步

{

oXMLHttpRequest.onreadystatechange=function()

{

if(oXMLHttpRequest.readyState==4)//数据接收完毕

{

if(oXMLHttpRequest.status==200)//OK

{

fnRollback(oXMLHttpRequest);

}

}

};

}

oXMLHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

    oXMLHttpRequest.send(params);

if(!async)//同步

{

fnRollback(oXMLHttpRequest);

}

}

 

 

3.在web程序中使用 ajax的话 九可以直接调用 这里的 post和 get方法 ;

 

 

 

问题一:

理解1.在struts2 中servlet中使用的HTTPRequest 可以使用ActionContxt 来获得!将其放置在拦截器中即可;

 

web中集成struts2 后用户信息可以通过struts2的拦截器在拦截器中通过使用ActionContext来过的Servlet容器的变量,

把jsp中的servlet数据在后台拦截到;

 

问题二:

 

 

问题三:

 

问题四:

因为 action中的得到JSP页面参数是通过Action默认拦截器得到的,如果使用了自定义的拦截器,

如果自定义拦截器没有继承默认拦截器,程序就不会调用默认拦截器,所以得不到参数;

在struts2中默认拦截器中的params拦截器 是用来获得参数的;

拦截器作用在调用这个action的方法中;

 

 

面向抽象接口的编程方式:灵活

 

分享到:
评论

相关推荐

    J2EE完全参考手册-J2EE概述

    J2EE的出现旨在简化企业级应用的复杂性,通过标准化的方式整合服务器端技术,提高开发效率和系统的可移植性。 J2EE平台由多个层次和服务组成,主要包括以下几个核心组成部分: 1. **Web层(Web Tier)**:这一层...

    Manning - J2EE and XML Development

    《Manning - J2EE and XML Development》这本书不仅讲解了这些基础概念,还可能涵盖了实际开发中的最佳实践、设计模式以及案例研究,帮助读者掌握J2EE和XML技术的深度整合,从而在企业级项目中游刃有余。

    外贸企业管理系统-J2EE框架-毕业设计

    【外贸企业管理系统-J2EE框架-毕业设计】项目是一个典型的Java Web应用实例,它利用了J2EE技术栈中的核心框架——Struts2、Hibernate和Spring,为开发人员提供了一个全面的解决方案,适用于构建复杂的业务应用程序,...

    研究论文-J2EE技术在数字化校园信息平台设计中的应用.pdf

    标题"研究论文-J2EE技术在数字化校园信息平台设计中的应用"表明本文是一篇针对J2EE技术在数字化校园信息平台构建过程中的应用研究。 描述知识点: 描述部分详细介绍了本文的研究内容和背景,指出在数字化校园信息...

    清华IT-J2EE教程

    Struts是J2EE平台上的一个开源MVC(Model-View-Controller)框架,主要用于控制Web应用程序的流程。在Struts框架中,Model代表业务逻辑,View负责显示,Controller处理用户请求并协调Model和View。Struts通过Action...

    hibernat-J2EE

    本课程旨在帮助学生理解J2EE的基本原理,回顾并掌握SSH(Struts、Spring、Hibernate)这三项核心技术,并学习如何在J2EE环境中整合这些技术。 **J2EE基本原理** J2EE(Java 2 Platform Enterprise Edition)是由Sun...

    企业管理信息系统-j2ee项目开发

    综上所述,开发一个基于J2EE的企业管理信息系统是一个涉及多层面、多技术的综合工程。理解J2EE的架构、掌握相关的开发工具和框架,以及遵循良好的软件工程实践,是成功构建此类系统的关键。在这个过程中,`.project`...

    物流管理系统 - J2EE项目

    物流管理系统是一个基于J2EE平台开发的企业级应用,旨在实现高效、智能化的物流管理。在这个系统中,我们利用了Java企业版(Java Enterprise Edition,简称J2EE)的强大功能,结合Struts、Hibernate和Spring(通常...

    OA办公系统 -J2EE

    OA办公系统,全称为Office Automation System,是一种利用信息技术来整合企业内部的工作流程、信息管理和协作的平台。在J2EE(Java 2 Platform, Enterprise Edition)框架下开发的OA系统,具备了跨平台、可扩展性和...

    J2ee -SSH整合

    **SSH在J2EE中的整合详解** SSH(Struts2 + Spring + Hibernate)是Java企业级开发中的一个经典组合,它提供了模型-视图-控制器(MVC)架构模式的实现,以及强大的依赖注入(DI)和面向切面编程(AOP)功能,大大...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书》是一本深入探讨J2EE Web应用程序开发的专业书籍。J2EE,全称Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的...

    SpringMVC精品资源--J2EE项目系列(四)–SSM框架构建积分系统和基本商品检索系统(Spring+Spr.zip

    Spring MVC是Spring框架的一部分,专门用于处理Web应用程序的请求-响应模型。它提供了一个灵活的架构,用于分离控制器、服务、模型和视图层,使得代码更易于测试和维护。在本项目中,Spring MVC将负责处理HTTP请求,...

    精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例 PDF及光盘ISO

    《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是一本深入探讨J2EE企业级开发的权威书籍。它涵盖了Java企业级开发中的四个关键技术和框架:Eclipse集成开发环境(IDE)、Struts MVC框架、Hibernate...

    [程序天下:J2EE整合详解与典型案例.教程_光盘4.rar

    总之,《程序天下:J2EE整合详解与典型案例》教程的光盘4为学习者提供了一个实践J2EE技术的宝贵资源。通过对每个案例的深入学习和动手实践,读者可以掌握J2EE的核心概念,为开发复杂的企业级应用打下坚实的基础。

    J2EE整合详解与典型案例源码(全)

    《J2EE整合详解与典型案例源码》是一个深入解析J2EE企业级应用开发的资源集合,涵盖了J2EE技术的各个重要方面。这个压缩包包含的源码提供了丰富的实践示例,帮助开发者理解并掌握J2EE的核心概念和技术。 J2EE(Java...

    大学生毕业论文-J2EE企业内网应用论文

    2. 论基于Web的数据库应用系统的开发技术 3.论企业内部网的安全策略企业网络的建设 4.论电子商务的安全 5.论ERP系统的开发与应用 6.论中间件技术在软件开发中的作用 7.论面向对象开发技术及其应用 8.论信息管理系统...

    开发者突击·Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)源码

    《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》详细介绍了Java Web软件架构中的各种开发技术。主要内容包括:以MySQL为数据库、Tomcat为Web服务器、Eclipse为开发工具、CVS为版本控制工具...

    博客---(J2EE)所有技术SSH

    【标题】"博客---(J2EE)所有技术SSH"所涵盖的知识点主要集中在Java企业级应用开发领域,特别是Spring、Struts和Hibernate这三大框架的整合应用,也就是通常所说的SSH框架。SSH是Java Web开发中非常流行的技术栈,...

    J2EE-Struts2-Spring-Hibernate整合的例子:添加

    在这个例子中,我们将深入探讨如何将Struts2、Spring和Hibernate这三个流行的技术框架整合在一起,以实现一个高效且可维护的Web应用。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于...

Global site tag (gtag.js) - Google Analytics