struts1入门教程
Struts1.x

struts1.x一、开发struts1应用的基本步骤1)首先导入struts1的所有jar包;2)在WEB-INF下创建struts-config.xml这个核心配置文件;3)在web.xml文件中配置struts的主控器ActionServlet;注:以上三步可以通过MyEclipse插件自动完成4)创建一个ActionForm类,继承ActionForm(可选),在这个类中提供属性和getter/setter方法来获得客户端提交的参数值;5)创建一个Action类,继承Action。
在execute方法中编写处理请求的代码,处理完成后返回一个ActionForward对象给主控器。
注:ActionForword实际上是一个包含了视图路径和转发请求方式的一个对象,这个对象可以有两种创建方式:1.直接new一个,在创建的时候,通过构造器传入视图路径和转发请求方式等信息。
2.通过ActionMapping对象的findForward方法创建,这种方式实际上是在配置文件中配置转发请求的一些信息,然后根据这些信息创建一个ActionForward对象。
6)在struts-config.xml文件中配置Action;7)在jsp页面上指定发送请求的路径,必须以.do结尾。
二、Struts的工作流程***装载并实例化ActionServlet***当Web Server启动装载Web应用(基于Struts)时,容器先将ActionServlet装载进虚拟机并实例化,接着调用init()方法,在init()中ActionServlet去解析struts-config.xml文件,将其中的元素信息封装到相应的对象中,对象被存放到Struts框架维护的集合中。
例如:<form-bean>元素 --> ActionFormBean对象<action>元素 --> ActionMapping对象元素中的属性 --> 对象中的属性注: ActionFormBean和ActionMapping对象被存放在Struts框架维护的HashMap 中HashMap formbeans(name,ActionFormBean对象引用)HashMap actionconfigs(path,ActionMapping对象引用)init()方法调用完毕后,ActionServlet处于service状态,可以接受客户端的请求。
struts1工作流程

对于采用Struts框架的Web应用,在Web应用启动时就会加载并初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中,例如Action的映射信息存放在ActionMapping对象中。
(struts的配置文件struts-config.xml:一个用户请求是通过ActionServlet来处理和转发的。
那么,ActionServlet如何决定把用户请求转发给哪个Action对象呢?这就需要一些描述用户请求路径和Action映射关系的配置信息了。
在Struts中,这些配置映射信息都存放在特定的XML文件struts-config.xml中。
在该配置文件中,每一个Action的映射信息都通过一个<action>元素来配置。
这些配置信息在系统启动的时候被读入内存,供Struts在运行期间使用。
在内存中,每一个<Action>元素都对应一个org.apache.struts.aciton.ActionMapping的实例)用户通过客户端向服务器发出一个请求,而我们已经在web.xml配置了所有符合某某格式的请求都将由指定的Servlet来处理。
比如说:只要是以.do结尾的请求(*.do)都由org.apache.struts.action.ActionServlet来对其进行处理。
而ActionServlet和ActionMapping都已经在服务器启动的时候被加载到内存里面。
结合登录例子:当用户登录时,地址栏的URL为:http://localhost:8080/struts_login/login.do ActionServlet会拿到用户的请求,并且去分析这个URL,它会截下/login(不包含.do)这一部分,截来之后,它的目的是为了去struts-config.xml这个配置文件里面找<action>标签path属性的值等于所截部分的那个Action。
struts1入门

1、从struts官方网站下载1.x版。
你可以只下载lib文件,就是几个jar包,放到我们自己项目的WEB-INF/lib目录下面即可。
我们下载他的的demo app,在他的struts-blank-1.3.10.war这个项目的基础上修改就很好。
这是一个压缩包,解压缩即可。
2、在eclipse中创建一个普通的java项目。
创建一个action,继承自org.apache.struts.action.Action即可,覆盖实现execute操作。
在该操作中写你的处理代码,结果用request.setAttribute传递到下一步。
3、创建一个form,继承自org.apache.struts.action.ActionForm,加几个属性,属性的名称与web客户端(或者手机软件)传来的参数的名称一致,做好get/set操作即可。
文件属性的类型是FormFile。
4、创建一个xml文件(这个xml文件,已经上述两个java文件,开发时在src目录下面,编译后放到classes下面)5、配置项目WEB-INF下面的web.xml文件。
将starts的配置文件修改为第4步的xml文件即可6、这里展示层用jsp,可以从request中取得action传来的数据。
success.jsp这个文件就放在项目根目录下面7、Ok了,部署后,在浏览器地址栏输入测试8、扩展struts-examples-1.3.10.war这个demo中,有一个文件上传的例子,看看他的代码,在你的项目中实现文件上传的功能9、简述struts1原理客户端发送请求(Http Request),被struts1的核心控件器ActionServlet接收,ActionServlet 根据请求的地址,和struts-config.xml里的映射关系,找到对应的Action,若找不到就返回找不到页面的错误。
若有通过request取得请求参数,设置到ActionForm中,接着执行Action 里的excute()方法,这时就进入到我们编写的逻辑操作代码了,我们在这里处理,包括对数据库的增删改操作,结果setAttitude到request里面,返回包含控制字符的ActionForward,然后Struts1根据ActionForward,以及struts-config.xml里的result配置,找到相应的输出页面(jsp/ftl等文件),创建输出,返回给客户端。
struts1 详解

01struts基础J2EE1.4ServletJspJDBCJTA(Java Transaction API)JPA(Java persistence API)---EJBJavaMailJSTLEJBJNDIModel_1的执行流程Mode2_2的执行流程Struts框架的版本Struts充当表现层的作用。
Struts框架的核心组件ActionServlet总控制器。
核心组件,用于将具体的请求分配到各自处理的Action组件中。
Action具体的业务处理过程组件ActionFrom(FormBean)获取表单参数,并将参数封装到Bean中。
ActionForward用来Action的请求转发ActionMapping帮助控制器[ActionServlet]将请求映射到操作类[Action]Struts-config.xml用来配置Stuts组件的关联关系。
Struts框架的工作流程Struts-config.xml<form-bean name="loginForm" type="com.softfz.login.LoginForm" />name:用来表示actionform的名称type:用来表示actionform的类路径<actionattribute="loginForm" name="loginForm"path="/loginAction" scope="request"type="com.softfz.login.LoginActionAction" validate="true"input="/index.jsp" />attribute:表示ActionFrom的实例放到作用域中的名称.LoginForm aa = new LoginForm();aa.setUsername(request.getParameter("username"));aa.setPassword(request.getParameter("password"));request.setAttribute("attribute的值",aa);name:表示Action和ActionFrom关联的名称。
sturs课程学习

1、从mapping里取出配置的Action类名
String className = mapping.getType();
2、把查找Action实例的动作记入到日志里
3、在拿到Action实例之前先线程同步synchronized (actions) ,保证只有一个Action实例
1.initlnternal();初始化内部资源文件。例如初始化内部的警告信息和一些提示信息,错误信息。
5、调用请求对象(processor)对象的
public void process(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
4、如果还是没有找到mapping信息则发送错误消息,并返回null
15、检查执行这个action所要的所有角色(是否有权访问)
1、从actionMapping(mapping)对想里取得角色名称的数组。
String[] roles = mapping.getRoleNames();
ActionServlet处理.do的请求 不管是get还是post方式都将转到
protected void process(HttpServletRequest request, HttpServletResponse response) 方法。
2、根据请求对象和servletContext对象选择请求所隶属的模块
4、从map里取出Action返回,(如果有的话),并把结果写入日志
nstance = (Action) actions.get(className);
struts1的使用

struts 1 的使用一、搭建struts 1 的环境1、导入struts 1 的jar 包;2、新建struts-config.xml 配置文件;3、在web.xml 中配置struts 1 的ActionServlet。
二、开发ActionForm (也叫Form Bean)1、新建一个类,继承ActionForm;2、注册Form Bean,修改struts-config.xml 配置文件例如:在配置文件中添加一个FormBean,名称为loginForm<form-beans><form-bean name=”loginForm” type=”com.lightcom.form.LoginForm”/> </form-beans>三、开发Action1、建立一个类,继承Action覆盖execute 方法a)需要强制转型;b)调用其它模块;c)跳转(根据关键字,关键字参照该action 中forward 标签中的name 属性)。
2、注册Action,修改struts-config.xml 配置文件path:指明调用者(jsp)能通过中心控制器ActionServlet 找到该Action;type:指定该action 类全名;name:该action 引用的form 的名称;四、创建调用Action 和Action 转发的页面1、创建调用Action 的页面页面中的表单form 中的action 属性的值与struts-confgi.xml 中action 标记的path 属性值对应;2、创建Action 执行重写的execute 方法后转发的页面页面的名字与struts-config.xml 配置文件中的action 标记的标签forward 的path 属性值保持一致;例如:action 中的path=”/login”则form 表单中的action=”<%=request.getContextPath()%>/login.do”。
Struts1和Struts2的流程

Struts1基本运作流程--------------------------------------------------------------------------------在Struts实现MVC/Model 2方式中,担任控制器(Controller)角色的是org.apache.struts.action.ActionServlet,它继承自javax.servlet.http.HttpServlet,通常会直接使用ActionServlet,在web.xml中配置相关的组态,就如同配置一般的Servlet一样,您也可以配置一些相关的初始参数给ActionServlet使用。
在MVC/Model 2的架构中,理想上客户端不会直接要求资源或指定请求的JSP 页面,所有客户的请求都必须发送至控制器,由控制器决定该转发给哪一个对象进行处理、决定该由哪一个视图页面进行显示与响应。
在Struts中,担任控制器的是ActionServlet,所有的请求都发送给ActionServlet,对于ActionServlet来说,doGet()会将调用doPost(),所以无论请求是GET或POST在行为上都是相同的,ActionServlet藉由组态档struts-config.xml知道如何分配对象来处理请求,这包括了org.apache.struts.action.ActionMapping、org.apache.struts.action.ActionForm、org.apache.struts.action.Action等物件的分配,struts-config.xml是整个Struts运作的重心。
ActionServlet会将处理的控制权暂时交给Action对象,在Action中,您可以藉由一些数据传输对象(Data Transfer Object)、辅助类别(Helper Class)等来完成业务请求,Action应当传回ActionForward对象给ActionServlet,之后ActionServlet根据ActionForward来进行forward给视图或include视图(Viewer)的动作,由视图显示处理的结果。
Java学习大全 之Struts1

Java学习大全之Struts11、struts1是轻量级框架,设计思想是MVC。
SSH混用框架中struts1担任视图层。
action为单实例的,线程需要同步。
2、MVC是指模型视图控制器。
3、struts1流程:browser -request-> ActionServlet(根据struts-config.xml配置文件找到action与model层交互) -forward-> jsp -response-> browser4、ActionServlet类:用来控制导航action的。
根据url来决定哪个action被处理。
5、struts1配置文件struts-config.xml需要在WEB-INF目录下的。
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "/dtds/struts-config_1_2.dtd"> <struts-config><!--连接数据库级连接池配置,不需要时候可以不写--><data-sources><data-source type="mons.dbcp.BasicDataSource"><set-property property="driverClassName" value="org.postgresql.Driver" /><set-property property="url" value="jdbc:postgresql://localhost/mydatabase" /><set-property property="username" value="me" /><set-property property="password" value="test" /><set-property property="maxActive" value="10" /><set-property property="maxWait" value="5000" /><set-property property="defaultAutoCommit" value="false" /><set-property property="defaultReadOnly" value="false" /><set-property property="validationQuery" value="SELECT COUNT(*) FROM market" /></data-source></data-sources><form-beans><!--表示表单映射,子元素为form-bean--></form-beans><!--不需要时候可以不写--><global-exceptions><!--全局异常,子元素为exception--></global-exceptions><!--不需要时候可以不写--><global-forwards><!--全局异常处理去向,子元素为forward--></global-forwards><action-mappings><!--表示请求映射,子元素为action--></action-mappings><message-resources parameter="com.ApplicationResources" /></struts-config>6、使用流程一、web.xml的配置<servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <!--初始化参数,可以不写,如果不写则加载默认名字的xml文件--> <init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value> </init-param><!--启动服务就实例化ActionServlet,可以不用写--><load-on-startup>2</load-on-startup></servlet><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>二、写一个action类继承Action抽象类三、写一个actionForm类继承ActionForm抽象类四、在struts-config.xml配置文件添加bean和action7、不使用数据源的例子登录页面index.jsp<body><form action="login.do" method="post">用户名:<input name="username" type="text" /><br/>密码:<input name="password" type="password"/><br/>登录:<input type="submit" value="提交"/></form></body>成功页面success.jsp<body>success跳转<br/>用户名:${ername}<br/>密码:${param.password}<br/></body>LoginForm.java类public class LoginForm extends ActionForm {private String username;//用户名private String password;//密码public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}LoginAction.java类public class LoginAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) throws Exception { LoginForm lf = (LoginForm) form;System.out.println(lf.getUsername());//后台打印用户输入的用户名System.out.println(lf.getPassword());//后台打印用户输入的密码return mapping.findForward("success");//表示去映射里找到本action的名字为success的forward获得去向,然后跳转。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.什么是Struts1
基于MVC的轻量级,WEB应用框架
2.struts1工作原理
a> 初始化: struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象.
b> 发送请求: 用户提交表单或通过URL向WEB服务器提供请求,请求的数据用HTTP协议传给WEB服务器.
c> form填充: Struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中
d> 派发请求: 控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给Action的excute()方法
e> 处理业务: Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象.服务器通过ActionForward对象进行转发工作
f> 返回响应: Action将业务处理的不同结果返回一个目标相应对象给总控制器
g> 查找响应: 总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面
h> 响应用户: 目标响应对象将结果传递给资源对象,将结果展现给用户
struts1原理图:
3.开发指南
准备工作:
1>到/下载struts的安装文件struts-1.3.10-all.zip
2>解压struts-1.3.10-all.zip
3>创建一个web project,并将上步中解压的lib文件下的jar包引进去
4>配置web文件
5>新建struts-config.xml
6>创建数据库(mysql
4. 项目开发
4.1 页面制作index.jsp
4.2 在struts-config.xml中需要修改
4.3 创建com.javakc.struts1.action.StudentAction 业务类
4.4 创建com.javakc.struts1.action.StudentForm类
1)继承org.apache.struts.action.ActionForm类
2)属性名要和表单中的属性名一一对应,并生成其对应的getter、setter方法
4.5 在StudentAction中处理提交的请求
1) 通过form表单或超链接可以将用户的请求提交到服务器进行处理,在系统架构中,服务器处理用户请求的场地就是StudentAction类的execute方法.
4.6 在student_info.jsp中展示数据。