Struts 2 学习指导1_Struts2环境配置
Struts2 学习指导一
——Struts2环境配置
一、S truts2环境配置要求
1. JDK 1.6
2.MyEclipse 6.5 (MyEclipse 自带Struts2开发环境)
3.下载struts-2.3.14
二、S trtus2环境测试
1.解压struts-
2.
3.14,将struts2-blank.war放入到Tomcat 的webapps的目录下;
2.启动Tomcat6 ;
3.在浏览器中输入:http://localhost:8080/struts2-blank
运行结果如下图所示:
三、M y Eclipse 8.5 中开发Struts 2
1.启动My Eclipse ,新建一个Web项目struts_HelloWorld,如下图所示:
2. 配置struts_Helloworld项目Web服务器Tomcat 6.0
3.将struts 2 的相关JAR粘贴到Web项目的lib目录中,进入Struts 2的lib目录,选择将要粘贴的JAR文件后选择“复制”命令,如下图所示:(可以从struts-blank项目的WEB-INF的
lib中拷贝)
4. 在src目录下建立一个struts.xml 配置文件,如下图所示:
5.需要对默认的web.xml文件进行修改,修改后的内容如代码如下所示。
xsi:schemaLocation="https://www.360docs.net/doc/1115400742.html,/xml/ns/j2ee https://www.360docs.net/doc/1115400742.html,/xml/ns/j2ee/web-app_2_4.xsd"> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
6.编写Action业务控制器类
package com.helloworld;
public class HelloWorld {
private String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String execute(){
if(getMsg().equals("")){
System.out.println("no String input ");
return"error";
}
else{
System.out.println(getMsg());
return"success";
}
}
}
7.创建视图资源
输入界面HelloWorld.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
成功页面:success.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
HelloWorld,Struts 2!
失败页面:error.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <%
String path = request.getContextPath();
String basePath =
request.getScheme()+"://"+request.getServerName()+":"+request.getServ erPort()+path+"/";
%>
您没有输入内容!
8.配置struts.xml文件
在src目录下增加一个配置文件:struts.xml
"-//Apache Software Foundation//DTD Struts Configuration
2.3//EN"
"https://www.360docs.net/doc/1115400742.html,/dtds/struts-2.3.dtd">
extends="struts-default"> class="com.helloworld.HelloWorld">
注意:遇到dtd校验错误时候改为:
"/WEB-INF/classes/struts-2.3.dtd ">
在/WEB-INF/classes中加入struts-2.3.dtd (在struts2-core-2.3.14.jar中) DTD校验出现问题时的解决方法:
"-//Apache Software Foundation//DTD Struts Configuration 2.0 //EN"
"D:/struts-2.3.dtd">
运行HelloWorld
输入内容后:
没有输入内容:
HelloWorld小结
●Web.xml中需要加入Struts2 的加载配置。详见web.xml中配置。
●在struts.xml中定义Action,其中包含Action返回视图的定义。
●Struts 2的Action是一个简单的Java 类,没有特别之处。
●Action的execute()方法返回一个String。
中文处理问题:
1)首先将页面的编码统一修改为:utf-8
2)在struts.xml中增加一个常量
2.添加Struts2特性
3.创建Login.java
package https://www.360docs.net/doc/1115400742.html,it;
public class Login {
private String userName;
private String password;
public Login(){
}
public String execute(){
if(this.getUserName().equals("")||this.getPassword().equals("")){ return"input";
}else{
return"success";
}
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
https://www.360docs.net/doc/1115400742.html,erName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
4.修改struts.xml文件
5.创建用户登录页面:login.jsp
<%@ page language="java" import="java.util.*"
pageEncoding="utf-8"%>
用户登录
登录成功页面:success.jsp
<%@page language="java"import="java.util.*"pageEncoding="utf-8"%>
<%@taglib prefix="s"uri="/struts-tags"%>
登录成功!
用户名:
密码:
6.创建struts.properties文件
在属性文件中加入:(中文处理)
struts.i18n.encoding=utf-8
运行结果如下图所示:
Struts2配置文件通配符的使用说明
Struts2配置文件中使用通配符收藏 形式一:调用相同Action中的不同方法
最新版本Struts2.3.12+Spring3.2.2+Hibernate4.2.0框架配置详细步骤
SSH框架搭建 Struts2.3.12+Spring3.2.2+Hibernate4.2.0 编号:SSH-S2-S3-H4 版本:V1.1 级别:公开 编写时间:2013-03-18
目录 1 导言 (1) 1.1 目的 (1) 1.2 范围 (1) 1.3 说明 (1) 2 搭建Struts2 (2) 2.1 搭建所需jar包 (2) 2.2 整合步骤 (2) 2.2.1 创建项目 (2) 2.2.2 导入jar包 (2) 2.2.3 配置web.xml (4) 2.2.4 创建web (4) 2.2.5 创建jsp页面 (5) 2.2.6 配置struts.xml (6) 2.2.7 配置Tomcat (6) 2.2.8 部署项目 (7) 2.3 测试 (8) 2.3.1 启动Tomcat (10) 2.3.2 测试Tomcat (10) 2.3.3 测试Struts (11) 3 整合Spring3 (12) 3.1 整合所需jar包 (12) 3.2 整合步骤 (12) 3.2.1 导入jar包 (12) 3.2.2 配置web.xml (12) 3.2.3 配置struts.xml (13) 3.2.4 配置spring.xml (13) 3.3 测试 (14)
3.3.1 启动Tomcat (14) 3.3.2 测试登录 (14) 4 整合Hibernate4 (15) 4.1 整合所需jar包 (15) 4.2 整合步骤 (15) 4.2.1 导入jar包 (15) 4.2.2 创建数据库ccc (15) 4.2.3 创建对象User (16) 4.2.4 生成映射文件User.hbm.xml (17) 4.2.5 创建dao (18) 4.2.6 创建service (19) 4.2.7 创建web (20) 4.2.8 配置jdbc.properties (21) 4.2.9 配置db.xml (22) 4.2.10 配置spring.xml (24) 4.2.11 配置struts.xml (24) 4.3 测试 (25) 4.3.1 启动Tomcat (25) 4.3.2 测试登录 (25)
struts2复习题(含答案)
Struts2复习题 1.以下属于struts2的控制器组件是: 2.以下属于struts2的体系结构的是:(多选) 控制器组件配置文件 3.以下属于struts2配置文件中的配置元素是:(多选) A.
struts2拦截器配置详解
Struts2拦截器详细配置过程 1:所有拦截器的超级接口Interceptor,拦截器去实现这个接口; Interceptor它其中有三个方法 (init(),destroy(),interceptor()):Init()方法:在服务器起动的时候加载一次,并且只加载一次; Destroy()方法:当拦截器销毁时执行的方法; Interceptor()方法:其中里边有一个参数invocation public String intercept(ActionInvocation invocation)throws xception { System.out.println("interceptor!!"); String result=invocation.invoke(); return result; }Invocation.invoke()是如果只有一个拦截器执行完这个方法后,会返回给视图,如果有多 个拦截器,它顺序的执行完所有的拦截器,才返回给视图. 2:可以在系统初始化中给拦截器指定默认的参数(也包括了定义拦截器方式)如下:在拦截器类中把hello当做属性set/get方式注入到拦截器类中;
02-Struts2的工作流程及配置文件
Struts2的工作流程及配置文件--- https://www.360docs.net/doc/1115400742.html, --- Struts2.0的流程图
从图中看到Struts2的工作流程如下: 1.服务器接收到的请求首先经过一组过滤器链(实际中的其他过滤器可能还包括诸如Spring 的字符过滤器CharactorEncodingFilter、V elocity的过滤器等,一般FilterDispatcher位于过滤器的最后一个执行),过滤器链按照你在web.xml中的配置顺序在接收客户请求时顺序执行,在向客户发送响应时反序执行,Struts2的核心FilterDispatcher在web.xml中的配置如下:
struts2国际化
国际化是商业系统中不可或缺的一部分,所以无论您学习的是什么Web框架,它都是必须掌握的技能。 其实,Struts 1.x在此部分已经做得相当不错了。它极大地简化了我们程序员在做国际化时所需的工作,例如,如果您要输出一条国际化的信息,只需在代码包中加入FILE-NAME_xx_XX.properties(其中FILE-NAME为默认资源文件的文件名),然后在struts-config.xml中指明其路径,再在页面用
最详细eclipse配置struts2
第一章lectery的学习笔记 1.1Eclipse下搭建Struts2开发环境 博客分类: Java EclipseTomcatJSPStrutsJDK 作者:bukebushuo 来源:https://www.360docs.net/doc/1115400742.html,/bukebushuo/archive/2007/03/29/1545728.aspx 最近下载了最新的struts 2.06,在使用其中附带的例子时,在配置上遇到了一些问题。 经过很多次的努力后,终于配置成功。现在把配置过程写出来供大家参考! 一软件:1 Eclipse+lomboz 3.2 下载地址: https://www.360docs.net/doc/1115400742.html,/project/showfiles.php?group_id=97&release_id= 1864(网页) https://www.360docs.net/doc/1115400742.html,/project/download.php?group_id=97&file_id=7714(文件),不保证一直有效。 2 Tomcat 5.5 下载地址:https://www.360docs.net/doc/1115400742.html,/download-55.cgi https://www.360docs.net/doc/1115400742.html,/mirrors/apache/tomcat/tomcat-5/v5.5.23/bin/apache -tomcat-5.5.23.zip 3 JDK 6 下载地址:https://www.360docs.net/doc/1115400742.html,/javase/downloads/index.jsp 4 Struts2.06
下载地址:https://www.360docs.net/doc/1115400742.html,/download.cgi#struts201 二安装: 1 安装JDK6,按照自己喜欢的安装即可。JDK一定要在Eclipse之前安装,因为Eclipse的启动需要JDK。 2 安装Tomcat,我下载的Tomcat是直接解压缩版的,解压缩后拷贝到一个地方就可以了,拷贝后需要注意的是需要把JDK6目录中的 tools.jar拷贝到Tomcat中具体是JDK的lib目录下的tools.jar拷贝到Tomcat下common\lib中。 3 安装Eclipse,重点来了,解压缩下载的lomboz,应该得到一个eclipse目录,把这个目录拷贝到一个比较容易找的地方。 解压缩的时候需要注意,在解压缩过程中可能遇到文件路径过长的问题,我的解决方法是把下载下来的压缩包名重命名为1.zip,也就是尽量缩短文件名长度。然后解压缩的时候直接解压缩到某个硬盘的根目录下,解压缩完后再拷贝到自己想要的地方。 4, 解压缩Struts2.06,把下载下来的Struts2.06压缩包解压缩到一个目录中在他的APPS目录下有几个.war文件。 可以使用WINRAR打开,这里我们仅仅使用winrar把struts2-blank-2.0.6.war文件解压缩到本目录中就可以了。 三、配置 1:配置工作目录 第一次打开Eclipse时会要求你指定你的工作目录,请选择好你的工作目录,今后你的Eclipse的相关项目的配置就放在这个目录里。 2:配置JREs 打开配置对话框
struts2题目
1.下面关于Struts2描述正确的是()。 A. Struts2是线程安全的 B. Strut2为每个请求都只生成一个Action实例 C .Strut2是在Struts1基础上发展起来的 D. Struts2只支持jsp视图组件 2.Struts2配置包时,必须继承struts-default包,在下 面的哪个文件中可以找到struts-default包的配置()。 A.default.properties B. struts-message.properties C. struts.dtd D.struts-default.xml 3.Struts2默认的处理结果类型是()。 A. dispatcher B. redirect C. chain D. 以上说法都不正确 4.在Struts2框架中,实现Action接口的作用是()。 A.实现其中的execute()方法 B.实现数据校验 C.实现国际化 D.规范Action类 5.在Struts2中动态方法调用的格式为()。 A. ActionName_methodName.do B. ActionName!methodName.do C. ActionName_methodName.action D. ActionName!methodName.action 6.在Struts2中自定义的类型转换器必须实现的接口是 ()。 A.Convert B.TypeConverter C. StrutsTypeConverter D. StrutsConvert 7.在Struts2中,Action类中的属性从表单获取用户输入 的值,以下哪个组件将表单的值解析出来赋给Action ()。 A. ActionServlet B. Action C. 拦截器栈 D. HttpServletRequest 8.在Struts2中,关于 配置Result 一个result代表了一个可能的输出。当一个Action类的方法执行完成时,它返回一个字符串类型的结果码,框架根据这个结果码选择对应的result,向用户输出。 Results配置由两部分组成:一部分是result映射,另一部分是result类型。 1.结果映射 在struts.xml文件中,使用result元素来配置result映射。result元素有两个可选的属性: 在Struts2中允许定义一个默认的Result类型,这是通过result-type元素来定义的。在框架的默认配置文件struts-default.xml中,在struts-default.xml包中有如下的一个配置: Yaio 4 一、准备工作及实例 4 1.解压struts- 2.1.6-all.zip 4 2.六个基本包 4 3.初识struts2配置文件 4 (1).web.xml文件 4 (2).struts.xml文件 4 (3).struts.properties(参default.properties) 4 (4)struts-default.xml 5 (5)其它配置文件 5 4.让MyEclipse提示xml信息 5 5.如何使用alt+/提示 5 6.实例 5 7.开启struts2自带的开发模式常量 7 8.vo传参模式 8 9.ModerDriven传参模式(不建议采用) 8 10.为什么要使用struts2代替struts1.x 9 二、struts.xml配置及例程 9 1.配置文件的优先级 9 2.配置形式 9 3.package配置相关 10 4.分工合作include:指定多个配置文件 12 5.tomcat认证访问 12 6.初识拦截器 13 7.Action中的method属性 15 8.使用ForwardAction实现页面屏蔽。 17 8.使用default-Action配置统一访问 17 小结Action 18 9.使用通配符 18 10.使用0配置:ZERO Annotation 19 11.Result配置详解 19 12.异常处理 24 三、在Action获取Scope对象 25 方式一、与Servlet解耦合的非IOC方式 25 方式二、与Servlet解耦合的IOC方式 27 方式三、与Servlet耦合的非IOC方式 27 方式四、与Servlet耦合的IOC方式 28 四、OGNL与ValueStack(VS) 29 1.值栈入门 29 2.OGNL入门 31 3.普通方法访问 31 4.静态方法访问 31 5.默认类Math的访问 32 6.调用普通类的构造方法 32 7.集合对象初步 32 8.集合对象进阶 33 9.N语法top语法 34 10.获取Stack Context中的信息 35 11.总结$ # %的区别 35 12.总结OGNL[重点] 35 五、拦截器 36 Struts2 框架第三天 今天重点内容安排: 第一天:struts2 开发流程、访问Action,Action方法调用,结果集类型 第二天:获取请求参数,请求数据校验机制,拦截器 1、V alueStack 值栈的存储原理和相关操作 2、Ognl 表达式语言语法 3、struts2 页面控制标签 4、struts2 form表单相关标签 重点难点:值栈和Ognl 1.值栈和Ognl表达式 1.1.什么是Ognl Ognl 对象导航图语言Object Graphic Navigation Language,类似EL,比EL ${}语法要强大很多,Struts2框架使用OGNL作为默认的表达式语言必须要引入struts标签库 EL Expression Language 表达式语言,用来获取JSP页面四个域范围数据 pageContext、request、session、application ) Ognl 主要用法: 1、访问OGNL上下文值栈对象获取数据(最重要) 2、操作集合对象(结合struts2 标签库使用)---- 生成checkbox 、生成select 1.2.什么是值栈ValueStack接口! 值栈ValueStack 实际上是一个接口,struts2 Ognl使用都是基于值栈完成的 Struts2 内部提供OgnlValueStack的接口实现类,实现了值栈接口! 前端控制器每一次请求都会创建一个值栈对象源码: 一次请求对应一个值栈对象值栈生命周期= request 生命周期的!! 值栈是struts2 一个数据结构,贯穿整个Action实例生命周期(request生命周期),一次请求对应一个Action实例,一个Action实例对应一个值栈实例 值栈保存了Action 和其它常用web对象的引用,通过值栈,间接操作这些对象!1.3.值栈的存储结构 1:采用标签 Struts2基础知识 Struts2概述 1.Struts2框架应用javaee三层结构中的web层框架。 2.Struts2框架在struts1和webwork基础之上发展的全新框架。 3.Struts2所解决的问题: 在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。 图解: 4.现在比较稳定的Struts2版本 struts-2.3.24-all.zip 5.web层常见框架 1.struts 2.springMVC Struts2框架入门 1.导入jar包 1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring 包,是不能使用的,导入会导致程序不能运行。 2.到app目录里面复制案例的jar包是最好的方法。 2.创建action 3.配置action类的访问路径 1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的, 位置必须在src下面,名称为struts.xml 。 2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即 可。 3.action的配置 *注意访问路径: http://域名/端口号/项目名/action名.action 注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。 4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴 即可。 Struts2执行过程 图解: Struts2配置 1.是一种常量标签 2.修改Struts2的默认常量值 1.常用方式 在struts.xml中进行配置。 2.其它两种方式 1.在src下面创建struts.properties文件并修改。 2.在web.xml文件中进行修改。 3.Struts2最常用的常量 struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。 Struts2中struts.xml的Action配置详解 使用package可以将逻辑上相关的一组Action,Result,Interceptor等组件分为一组,Package 有些像对象,可以继承其他的Package,也可以被其他package继承,甚至可以定义抽象的Package。 由于struts.xml文件是自上而下解析的,所以被继承的package要放在继承package的前边。Namespace将action分成逻辑上的不同模块,每一个模块有自己独立的前缀。使用name space可以有效的避免action重名的冲突,例如每一个package都可以有自己独立的Men u和Help action,但是事项方式各有不同。Struts2标签带有namespace选项,可以根据namespace的不同向服务器提交不同的package的action的请求。 “/”表示根namespace,所有直接在应用程序上下文环境下的请求(Context)都在这个pa ckage中查找。 “”表示默认namespace,当所有的namespace中都找不到的时候就在这个namespace中寻找。 例如,有如下配置: CODE: 第1章 Struts2框架技术入门 1.5 习题 1.5.1 选择题 1.D 2.A 3.C 4.B 5.B 1.5.2 填空题 1.MVC 2.Struts1和WebWork 3.IBM 4.FilterDispatcher 5.JSP、Struts2标签 1.5.3 简答题 1.简述MVC设计模式的工作流程。 答:MVC设计模式工作流程是: (1)用户的请求 简述STRUTS2 Convention零配置 从struts2.1开始,struts2不再推荐使用Codebehind作为零配置插件,而是改为使用Convention插件来支持零配置,和Codebehind相比,Convention插件更彻底,该插件完全抛弃配置信息,不仅不需要是使用struts.xml文件进行配置,甚至不需要使用Annotation进行配置,而是由struts2根据约定自动配置。 如何使用Convention 1. 将struts-Convention-plugin- 2.1.6.jar文件复制到WEB-INF/lib路径下 2. 对于Convention插件而言,它会自动搜索位于action,actions,struts,struts2包下的所 有java类,Convention插件会把如下两种java类当成Action处理: 1)所有实现了com.opensymphony.xwork2.Action的java类 2)所有类名以Action结尾的java类 3. Convention插件还允许设置如下三个常量: 1) struts.Convention.exclude.packges:指定不扫描哪些包下的java类,位于这些包结构下的java类将不会自动映射成Action; 2) struts.convention.package.locators:Convention插件使用该常量指定的包作为搜寻Action 的根包。对于actions.fore.LoginAction类,按约定原本应映射到/fore/login;如果将该常量 设为fore,则该Action将会映射到/login 3) struts.convention.action.packages:Convention插件以该常量指定包作为根包来搜索Action 类。Convention插件除了扫描action,actions,struts,struts2四个包的类以外,还会扫描该常量指定的一个或多个包,Convention会视图从中发现Action类。 注意:struts.convention.package.locators和struts.convention.action.packages两个常量的作用比较微妙,开发者在利用这两个常量时务必小心。 如:下面Action所在包被映射的命名空间如下: com.fun.actions.LoginAction 映射到 / com.fun.actions.myoffice.CarInfoAction 映射到 /myoffice com.fun.struts.myoffice.EntINfoAction 映射到 /myofiice 4. 映射Action的name时,遵循如下两步规则: 1)如果该Action类名包含Action后缀,将该Action类名的Action后缀去掉。否则不做任何处理。 2)将Action类名的驼峰写法(每个单词首字母大写、其他字母小写的写法)转成中画线写法(所有字母小写,单词与单词之间以中画线隔开) 如:LoginAction映射的Acion的name属性为login,GetBooks映射的Action的name的属性为get-books,AddEmployeeAction映射的Action的name属性为add-employee 5. 默认情况下。Convention总会到WEB应用的WEB-INF/content路径下定位物理资源,定位资源 的约定是:actionRUL+resultCODE+suffix。当某个逻辑视图找不到对应的视图资源时,Convention 会自动视图使用ActionURL+suffix作为物理视图资源。 如:actions.fore.LoginAction 返回success字符串时,Convention优先考虑使用 WEB-INF/content/fore目录下的login-success.jsp作为视图资源。如果找不到该文件,login.jsp也可作为对应的视图资源。如果返回input字符串,Convention会将WEB-INF/content/fore里面查找 login-input.jsp 配置Action Struts2的核心功能是action,对于开发人员来说,使用Struts2主要就是编写action,action类通常都要实现com.opensymphony.xwork2.Action接口,并实现该接口中的execute()方法。 该方法如下: public String execute() throws Exception Struts2并不是要求所有编写的action类都要实现Action接口,也可以直接编写一个普通的Java类作为action,只要实现一个返回类型为String的无参的public方法即可:public String xxx() 在实际开发中,action类很少直接实现Action接口,通常都是从 com.opensymphony.xwork2.ActionSupport类继承,ActionSupport实现了Action接口和其他一些可选的接口,提供了输入验证,错误信息存取,以及国际化的支持,选择从ActionSupport继承,可以简化action的定义。 开发好action之后,好需要对action进行配置,以告诉Struts2框架,针对某个URL的请求应该交由哪个action进行处理。 1.Action映射: action映射是Struts2框架中的基本”工作单元”,action映射就是将一个请求 URL(即action的名字)映射到一个action类,当一个请求匹配某个action的名字 时,框架就使用这个映射来确定如何处理请求。 action元素的完整属性表 例如: Struts2配置Result
struts2教程(完全版)
struts2_day03笔记
Struts2知识点总结
Struts2中 struts.xml的Action配置详解
Struts2+Hibernate架构教程课后参考答案
STRUTS2零配置
Struts2配置详解2 配置Action