一、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平台由多个层次和服务组成,主要包括以下几个核心组成部分: 1. **Web层(Web Tier)**:这一层...
《Manning - J2EE and XML Development》这本书不仅讲解了这些基础概念,还可能涵盖了实际开发中的最佳实践、设计模式以及案例研究,帮助读者掌握J2EE和XML技术的深度整合,从而在企业级项目中游刃有余。
【外贸企业管理系统-J2EE框架-毕业设计】项目是一个典型的Java Web应用实例,它利用了J2EE技术栈中的核心框架——Struts2、Hibernate和Spring,为开发人员提供了一个全面的解决方案,适用于构建复杂的业务应用程序,...
标题"研究论文-J2EE技术在数字化校园信息平台设计中的应用"表明本文是一篇针对J2EE技术在数字化校园信息平台构建过程中的应用研究。 描述知识点: 描述部分详细介绍了本文的研究内容和背景,指出在数字化校园信息...
Struts是J2EE平台上的一个开源MVC(Model-View-Controller)框架,主要用于控制Web应用程序的流程。在Struts框架中,Model代表业务逻辑,View负责显示,Controller处理用户请求并协调Model和View。Struts通过Action...
本课程旨在帮助学生理解J2EE的基本原理,回顾并掌握SSH(Struts、Spring、Hibernate)这三项核心技术,并学习如何在J2EE环境中整合这些技术。 **J2EE基本原理** J2EE(Java 2 Platform Enterprise Edition)是由Sun...
综上所述,开发一个基于J2EE的企业管理信息系统是一个涉及多层面、多技术的综合工程。理解J2EE的架构、掌握相关的开发工具和框架,以及遵循良好的软件工程实践,是成功构建此类系统的关键。在这个过程中,`.project`...
物流管理系统是一个基于J2EE平台开发的企业级应用,旨在实现高效、智能化的物流管理。在这个系统中,我们利用了Java企业版(Java Enterprise Edition,简称J2EE)的强大功能,结合Struts、Hibernate和Spring(通常...
OA办公系统,全称为Office Automation System,是一种利用信息技术来整合企业内部的工作流程、信息管理和协作的平台。在J2EE(Java 2 Platform, Enterprise Edition)框架下开发的OA系统,具备了跨平台、可扩展性和...
**SSH在J2EE中的整合详解** SSH(Struts2 + Spring + Hibernate)是Java企业级开发中的一个经典组合,它提供了模型-视图-控制器(MVC)架构模式的实现,以及强大的依赖注入(DI)和面向切面编程(AOP)功能,大大...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例全书》是一本深入探讨J2EE Web应用程序开发的专业书籍。J2EE,全称Java 2 Platform, Enterprise Edition,是Java平台上用于构建企业级分布式应用程序的...
Spring MVC是Spring框架的一部分,专门用于处理Web应用程序的请求-响应模型。它提供了一个灵活的架构,用于分离控制器、服务、模型和视图层,使得代码更易于测试和维护。在本项目中,Spring MVC将负责处理HTTP请求,...
《精通J2EE--Eclipse、Struts、Hibernate及Spring整合应用案例》是一本深入探讨J2EE企业级开发的权威书籍。它涵盖了Java企业级开发中的四个关键技术和框架:Eclipse集成开发环境(IDE)、Struts MVC框架、Hibernate...
总之,《程序天下:J2EE整合详解与典型案例》教程的光盘4为学习者提供了一个实践J2EE技术的宝贵资源。通过对每个案例的深入学习和动手实践,读者可以掌握J2EE的核心概念,为开发复杂的企业级应用打下坚实的基础。
《J2EE整合详解与典型案例源码》是一个深入解析J2EE企业级应用开发的资源集合,涵盖了J2EE技术的各个重要方面。这个压缩包包含的源码提供了丰富的实践示例,帮助开发者理解并掌握J2EE的核心概念和技术。 J2EE(Java...
2. 论基于Web的数据库应用系统的开发技术 3.论企业内部网的安全策略企业网络的建设 4.论电子商务的安全 5.论ERP系统的开发与应用 6.论中间件技术在软件开发中的作用 7.论面向对象开发技术及其应用 8.论信息管理系统...
《开发者突击:Java Web主流框架整合开发(J2EE+Struts+Hibernate+Spring)》详细介绍了Java Web软件架构中的各种开发技术。主要内容包括:以MySQL为数据库、Tomcat为Web服务器、Eclipse为开发工具、CVS为版本控制工具...
【标题】"博客---(J2EE)所有技术SSH"所涵盖的知识点主要集中在Java企业级应用开发领域,特别是Spring、Struts和Hibernate这三大框架的整合应用,也就是通常所说的SSH框架。SSH是Java Web开发中非常流行的技术栈,...
在这个例子中,我们将深入探讨如何将Struts2、Spring和Hibernate这三个流行的技术框架整合在一起,以实现一个高效且可维护的Web应用。 Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,用于...