struts简单案例-适合初学者( 3)
struts1学习笔记
struts1开发学习笔记使用一个简单的例子记录struts1开发过程。
0、 描述主要功能描述:index 界面上只有两个超链接,分别可以打开录入产品界面和显示产品列表界面。
newProduct.jsp 是录入的界面,searchProduct.jsp 是查询列表的界面。
ProductAction.java 是处理逻辑的action简单描述流程图:1、 构建环境在Myeclipse 中,新建一个工程StrutsTest ,选择该工程,右键Myeclipse->add srutscapapibality ,弹出界面,选择struts1.2支持。
如下图所示:添加完struts 支持后,lib 目录下会增添struts 的jar 包、增添struts 的配置文件:/WEB-INF/struts-config.xml 、同时在web.xml 中增添了struts 的配置。
2、 代码编写2)创建工具类Util.java,从数据库连接池中获得连接。
需要两个步骤第一步:在WebRoot/META-INF/下新建一个context文件,通过jndi方式配置数据源,第二步:在util类中读取配置获得连接,util.java如下:3)创建工具类EncodingFilter.java,自定义过滤器,并在web.xml中配置,参考web.xml配置中内容。
EncodingFilter.java的内容如下:4)修改web.xml,指定首页为index.jsp。
文件内容如下:最后定义了一个fileld 的过滤器,是用来过滤字符编码的,后面会提到。
6)index.jsp中提到productAction.action?method=viewAddForm,需要在在配置文件中配置了action的实现类,以及作为上传数据时用来保存数据的form:productForm10)searchProduct.jsp是查询结果界面,代码如下:http://localhost:8080/StrutsTest即可访问。
JavaWeb开发框架的对比与应用案例
JavaWeb开发框架的对比与应用案例JavaWeb开发框架是当前Web应用开发中非常重要的一环。
随着互联网的发展,JavaWeb开发框架的种类也越来越多,其中比较知名的有Spring、Struts、Hibernate等,本文将对这些框架进行对比,并给出一些开发案例。
一、Spring框架Spring是一款轻量级的Java开发框架,它是目前最为流行的框架之一。
Spring提供了一系列可重用代码,让JavaWeb应用的开发更加容易和高效。
Spring的主要特点包括控制反转、依赖注入、面向切面编程等。
Spring框架可以被用于开发各种类型的Web应用,如社交网络、企业应用等。
Spring的优点在于它所提供的灵活性和可扩展性,同时也支持多个不同的程序设计模式。
举个例子,Spring MVC框架可以支持Web应用程序的开发,并且提供多种不同的视图技术,如JSP和Thymeleaf模板等。
Spring的使用可以大大简化JavaWeb应用程序的开发难度,并且降低代码的复杂性。
此外,开发者可以很容易地使用Spring提供的工具来管理和维护应用程序。
二、Struts框架Struts是一款基于MVC模式的开发框架,它是最早的JavaWeb框架之一。
Struts的特点在于它所提供了应用程序组件的相对简单易用性,从而使得应用的开发变得更加快速和高效。
Struts的核心是其控制器,它可以将Web请求分配给各个组件,并且可以自动地处理必要的转换和数据验证。
对于大部分JavaWeb应用程序来说,Struts是一个理想的开发框架。
Struts的优点在于它所提供的模板功能,这可以让开发者通过简单地定义模板和组件的形式,来开发应用程序。
三、Hibernate框架Hibernate是一款完全由Java编写的Object-RelationalMapping(ORM)框架。
它允许Java开发人员使用对象方式访问数据,这意味着开发者不需要编写复杂的SQL查询,并且可以使用Hibernate进行简单的数据库操作。
struts1教程
本系列教程将详细介绍Struts 1.x的基本原理和使用方法,读者可以参阅《Struts 2系列教程》来比较Struts 1.x和Struts 2.x的相同点和不同点。
在这篇文章中将以一个简单的例子(mystruts)来演示如何使用MyEclipse来开发、运行Struts程序,并给出了解决ActionForm出现乱码问题的方法。
读者可以从本文中了解开发Struts 1.x程序的基本过程。
一、本文给出的程序要实现什么功能mystruts是一个录入和查询产品信息的程序。
为了方便起见,本例中的产品信息表只包括了产品ID、产品名称和产品价格三个字段。
mystruts的主要功能如下:1. 接受用户输入的产品ID、产品名称和产品价格。
2. 验证这些字段的合法性。
如果某些字段的输入不合法(如未输入产品ID),程序会forward到一个信息显示页,并显示出错原因。
3. 如果用户输入了正确的字段值,程序会将这些字段值保存到数据库中,并显示“保存成功”信息。
4. 用户输入产品名称,并根据产品名称进行模糊查询。
如果存在符合要求的产品信息。
程序会以表格形式显示这些产品的信息,同时显示记录数。
如果未查到任何记录,会显示“没有符合要求的记录!”信息。
二、编写程序前的准备工作1. 建立数据库在编写程序之前,需要建立一个数据库(struts)和一个表(t_products),建立数据库和表的SQL脚本如下所示:# 建立数据库strutsCREATE DATABASE IF NOT EXISTS struts DEFAULT CHARACT ER SET GBK;# 建立表t_productsCREATE TABLE IF NOT EXISTS struts.t_products (product_id varchar(4) NOT NULL,product_name varchar(50) NOT NULL,price float NOT NULL,PRIMARY KEY (product_id)) ENGINE=InnoDB DEFAULT CHARSET=gbk;2 建立一个支持struts1.x的samples工程用MyEclipse建立一个samples工程(Web工程),现在这个samples 工程还不支持Struts1.x(没有引入相应的Struts jar包、struts-config.xml 文件以及其他和Struts相关的配置)。
struts1入门教程
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.zip2>解压struts-1.3.10-all.zip3>创建一个web project,并将上步中解压的lib文件下的jar包引进去4>配置web文件5>新建struts-config.xml6>创建数据库(mysql4. 项目开发4.1 页面制作index.jsp4.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中展示数据。
struts技术
消息资源
Struts-config.xml—配置FromBean
表单bean声明:表单bean区段是给ActionForm子类命名的地 方,这一名字能够被用于struts-conifg.xml文件和JSP页面中。 具体声明由一个外围的<form-beans>标签以及一个或多个 <form-bean>标签组成。<form-bean>标签有两个属性:
Struts 技术
MVC的概念
MVC是Model-View-Controller的简称,即模 型-视图-控制器。 MVC是一种设计模式,它把应用程序分成三个 核心模块:模型、视图、控制器,它们各自处 理自己的任务。
MVC
模型(model)
模型是应用程序的主体部分,模型表示业务数 据和业务逻辑。 一个模型能为多个视图提供数据。 由于应用于模型的代码只需写一次就可以被多 个视图重用,所以提高了代码的可重用性。
通过这个声明,就能够使用名字 helloForm 来引用 ActionForm子类com.hello.HelloForm
Action类
Struts的控制器组件主要包括:
– – – ActionServlet组件:充当 Struts 框架的中央控制器 RequestProcessor组件:充当每个子应用模块的请求处理器 Action组件:负责处理具体的业务
Helloapp应用(1)
input.jsp
在 input.jsp 界面的文本框中输入除”monster”的 任何非空字符串,都会得到下面的结果
hello.jsp
Helloapp应用(2)
input.jsp
在 input.jsp 界面的文本框中什么也不输入时,会 得到下面的结果
struts标签说明
常用Struts标签的使用说明Struts Html标签库1,<html:form>:生成HTML<form>元素,action属性用来指定用户提交表单后,处理用户请求的组建。
Struts 框架将参照struts配置文件来查找相应的action组建。
在struts-config.xml 文件中1,<html:form action=”user.do”> 与user.do对应得代码是:<action parameter="method" name="userForm" path="/user" scope="request" validate="false">2,<html:text/>:生成HTML<input type=”text”>标签的property属性指定字段的名字,对应ActionForm bean中的一个属性,代码如下:<html:text property=”loginName”/> 的对应的userForm bean属性private String login_Name;public String getLogin_Name() {return login_Name;}public void setLogin_Name(String login_Name) {this.login_Name = login_Name;}3,<html:radio/>:生成HTML<input type=”radio”>标签,使用方法与<html:text>相同。
<html:radio property=”isActive” value=”1”>启用</html:radio><html:radio property=”isActive” value=”0”>停用</html:radio>4,<html:select/>:生成HTML<select>标签。
struts2入门手册
struts2入门手册首先这个教程是基于你已经安装了myeclipse的基础上的,如果你还没有安装myeclipse 工具软件的话,你需要马上去安装一个。
如果你已经有了工具软件了的话,现在就按照以下步骤来入门struts2吧。
一、下载struts2进入struts的官网/,点击download,选择Full Distrybution:下的struts2-xxx-all.zip,下载struts2的最新版本,将压缩包解压,放置到D盘目录下。
二、解压struts2进入你解压后的struts2文件夹中,到D:\struts2-xxx\apps中,解压其中的struts2-blank.war 压缩文件到D:\struts2-xxx\example,这是struts2提供的基础例子,里面的WEB-INF\lib目录下的包正是struts2正常工作所需要的基本包。
三、导入struts2基本包打开你的myeclipse,创建一个web project工程,命名为test(你也可以自己随意起一个),不要急着点击Finish,先选择Next>,继续选择Next>,在弹出的对话框中把第二个单选框打勾,如图,再点击Finish。
创建好之后在你创建的工程上目录下的WebRoot/WEB-INF/lib目录上单击右键,选择import...,选择General下的File System,点击Next>,选择Browse...,浏览选择到D:\struts\example\WEB-INF\lib目录,点击确定。
选择Sellct All,点击Finish,就完成了struts需要的最基础的核心包的导入。
四、用struts实现一个简单的登陆验证1.修改工程目录下的WebRoot\WEB-INF目录下的web.xml文件,将里面的内容替换为如下代码:<?xml version="1.0"encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance"xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_3_0.xsd"id="WebApp_ID"version="3.0"><display-name>test</display-name><!-- 设置初始页面的URL --><welcome-file-list><welcome-file>login.jsp</welcome-file></welcome-file-list><!-- 设置struts过滤器 --><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></web-app>2.在工程的src目录下创建struts.xml,代码如下:<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""/dtds/struts-2.3.dtd"><struts><!-- 是否开启动态方法调用 --><constant name="struts.enable.DynamicMethodInvocation"value="false"/> <!-- 指定被struts2处理的请求的后缀类型,多个用逗号隔开 --><constant name="struts.action.extension"value="action"/><!-- 设置浏览器是否静态缓存内容,开发阶段最好关闭 --><constant name="struts.devMode"value="true"/><!-- 设置当struts.xml改动后,是否重新加载,默认为false,开发环境下最好打开 --> <constant name="struts.configuraction.xml.reload"value="true"/> <package name="myPackage"namespace="/"extends="struts-default"> <action name="login"class="action.LoginAction"><result name="success">/welcome.jsp</result> <result name="input">/login.jsp</result></action></package></struts>3.在工程的src目录下创建package(包),命名为action,在action中新建class,命名为LoginAction,代码如下:package action;import javax.servlet.http.HttpSession;import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.ServletActionContext;@SuppressWarnings("serial")public class LoginAction extends ActionSupport {private String name;private String password;public String getName() {return name;}public void setName(String name) { = name;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String forward() throws Exception {return SUCCESS;}//重载ActionSupport中的execute()方法public String execute() throws Exception {//验证输入的Name是否为"name",是则返回"success"否则返回"input"if("name".equals(name)) {HttpSession session = ServletActionContext.getRequest().getSession();session.setAttribute("name", name);return SUCCESS;} else {return INPUT;}}}4.在工程的WebRoot目录下创建login.jsp,代码如下:<%@page language="java"contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>Login</title></head><body><!-- 创建一个登陆表单 --><s:url action="login"id="loginUrl"></s:url><s:form action="%{loginUrl}"method="post"><s:textfield label="Name"name="name"/><s:password label="Password"name="password"/><s:submit></s:submit></s:form></body></html>5.在工程的WebRoot目录下创建welcome.jsp,代码如下:<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"> <title>Welcome</title></head><body><h1>登陆成功</h1></body></html>现在就来验证一下我们的登陆页面吧,选择工具栏中的按钮,在弹出的对话框中单击project后的矩形选框,从下拉列表中选择你创建的工程,然后单击Add,从弹出的对话框中单击sever后的矩形选框,从下拉列表中选择tomcat7,单击Finish。
STRUTS2入门教程(全新完整版)
一、发展历史及简介发展历史Struts最早是作为Apache Jakarta项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JavaServer Pages、Servlet、标签库以及面向对象的技术水准。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。
这也是一个解释Struts在开发Web应用程序中所扮演的角色的精彩描述。
当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。
同样,软件工程师使用Struts为业务应用的每一层提供支持。
它的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。
我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
如果想混合使用Servlets和JSP的优点来建立可扩展的应用,Struts是一个不错的选择。
早期Smalltalk程序语言便采用了MVC(Model-View-Controller)模式(Patterns)以增加程序代码弹性,MVC模式将程序代码整理切割为三部分,Model部分是业务与应用领域(Business domain)相关逻辑、管理状态之对象,Controller部分接收来自View所输入的资料并与Model部分互动,struts业务流程控制(Flow Control)之处,View部分则负责展现资料、接收使用者输入资料。
在Java应用中,JFC/Swing、AWT、JSP皆是可用作View的技术规格,而JavaBean与Enterprise JavaBean规格则可用于Model程序代码,一旦应用程序以MVC模式加以适当的分割,Model部分程序代码可在不同使用者接口外观的应用程序中重复使用。
随着JSP与Servlet技术大量应用于以Web为基础的应用程序,Java开发人员群体认为应以较佳的模式以提升Web应用程序的可维护性与重复使用性。
Struts2简单示例
Struts2增删改查例子UserBean//要添加set,getpublic class UserBean{private Long id;private String name;private String password;private int age;private Date birthday;private Long sex;private Set<Long> likes;private String des;//描述}public class LikeBean{private Long id;private String name;}FormActionpublic class FormAction{//属性要生成get,set//标记(添加,修改)private String tip;private UserBean userBean;private List<LikeBean> likeList;private List<UserBean> userList;//到列表页面public String list(){userList =new ArrayList<UserBean>();userList.add(new UserBean("abc",19,new Date())); userList.add(new UserBean("def",70,new Date())); userList.add(new UserBean("ghi",40,new Date()));return"list";}//到添加页面public String toAdd(){likeList =new ArrayList<LikeBean>();likeList.add(new LikeBean(new Long(1),"上网")); likeList.add(new LikeBean(new Long(2),"读书")); likeList.add(new LikeBean(new Long(3),"游戏"));tip ="add";return"info";}//添加方法,Struts2会自动把对应的值赋值给userBeanpublic String add(){System.out.println(userBean);return"toList";}//到更新页面,取出值,设置标记public String toUpdate(){likeList =new ArrayList<LikeBean>();likeList.add(new LikeBean(new Long(1),"上网"));likeList.add(new LikeBean(new Long(2),"读书"));likeList.add(new LikeBean(new Long(3),"游戏"));tip ="update";System.out.println("update name:"+userBean.getName()); userBean =new UserBean("update",100,new Date());userBean.setId(new Long(101));userBean.setSex(new Long(2));userBean.setDes("Struts2用户");Set<Long> likes =new HashSet<Long>();likes.add(new Long(2));likes.add(new Long(3));userBean.setLikes(likes);return"info";}//更新方法public String update(){System.out.println(userBean);return"toList";}//删除方法public String delete(){System.out.println("del name:"+userBean.getName());return"toList";}}struts.xml配置<struts><package name="form"namespace="/form"extends="struts-default"> <!-- 使用通配符调用多个方法,method为*对应的字符串 --><action name="userAction_*"class="com.struts2.form.FormAction" method="{1}"><!-- 方法返回的字符串对应name,再转发到页面 --><result name="list">/form/list.jsp</result><result name="info">/form/info.jsp</result><!-- 重定向Action,可以有Action名字和空间,参数 --><result name="toList"type="redirectAction"><!-- 空间参数,不写代表和当前Action同一个空间<param name="namespace">form</param>--><!-- 重定向Action的名称 --><param name="actionName">userAction_list</param><!-- url带的参数,${}是动态参数,值为Action的属性userBean中name的值 --><param name="userName">${}</param><param name="userAge">${userBean.age}</param></result></action></package></struts>jsp页面1.list(列表页面)<!-- 添加标签 --><%@ taglib prefix="s" uri="/struts-tags" %><div><ahref="${pageContext.request.contextPath}/form/userAction_toAdd.action">添加</a></div><div><!-- 判断用户是否为空 --><s:if test="(userList!=null)&&(!userList.isEmpty())"><div>用户列表</div><!-- 遍历用户 --><s:iterator value="#erList"id="u"status="st"><s:property value="#st.index+1"/> <s:property value="#"/> <s:property value="#u.age"/> <!-- 格式化日期 --><s:date name="#u.birthday"format="yyyy-MM-dd HH:mm:ss"/> <ahref="${pageContext.request.contextPath}/form/userAction_toUpdate.action?use=${}">修改</a> <ahref="${pageContext.request.contextPath}/form/userAction_delete.action?userB =${}">删除</a><br/></s:iterator></s:if><s:else><div>无用户</div></s:else></div>.jsp(添加和修改页面)<!-- 添加标签 --><%@ taglib prefix="s" uri="/struts-tags" %><!-- 显示标记(添加/修改) --><s:property value="tip"/><!-- action="userAction_%{tip}"tip为Action中的标记变量 submit不加method --><s:form action="userAction"namespace="/form"method="POST"><!-- userBean.id为Action中属性userBean中id的值 --><s:hidden name="userBean.id"></s:hidden><s:textfield name=""label="用户名"></s:textfield><s:textfield name="userBean.age"label="年龄"></s:textfield><s:textfield name="userBean.birthday"label="生日"><!-- 格式化日期 --><s:param name="value"><s:date name="userBean.birthday" format="yyyy-MM-dd"/></s:param></s:textfield><!-- 密码不能回填 --><s:password name="userBean.password"label="密码"></s:password><s:textarea name="userBean.des"label="描述"cols="35"rows="8"></s:textarea><!-- 这种checkbox显示出来是一行只有一个checkbox<s:iterator value="likeList"><s:checkbox name="userBean.likes" label="%{name}" fieldValue="%{id}"></s:checkbox></s:iterator>--><!-- 这种是一行多个 --><s:checkboxlist list="likeList"name="userBean.likes"listKey="id"listValue="name"label="爱好"></s:checkboxlist><!-- 下拉框<s:select list="likeList" listKey="id" listValue="name" headerKey="-1" headerValue="请选择爱好"></s:select>--><!-- value="1" 设置默认,但是好像设置了不能回填 --><s:radio list="#{'1':'男','2':'女'}"label="性别"name="userBean.sex"></s:radio><s:submit value="%{tip}"id="submitBut"method="%{tip}"></s:submit></s:form>。
struts2入门教程一(环境搭建,基本案例实现)CSDN
Struts2入门初步需掌握1.struts2概述2.struts2环境搭建(第一个struts2的应用程序)3.struts.xml文件配置详解4.struts2请求的URL的搜索路径的顺序概述5.struts2工作原理概述6.struts2指定多个配置文件7.struts2动态方法调用8.使用通配符定义action一:简介Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。
其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。
Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。
虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。
二:环境搭建搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1.找到开发Struts2应用需要使用到的jar文件.下载官网:/download.cgi#struts221解压后:开始学习使用依赖的最基本的jar 包2:编写Struts2的配置文件解压其中一个案例在此目录下找到struts.xml 文件先拷贝到项目的src 下。
再对起进行修改。
删除剩余如下代码:[html]01.<?xml version ="1.0"encoding ="UTF-8" ?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" 04."/dtds/struts-2.3.dtd"> 05.06.<struts> 07.08. </struts>无法加载插件。
Struts2详细实例教程
Struts2(上)一、经典的MVC模式二、Struts1.x对MVC的实现三、Struts1.x的主要组件和作用组件作用ActionServlet 中央控制器Action 分控制器,调用JavaBean实现业务逻辑,Action可以分为Action、DispatchAction等不同类型ActionForm 封装参数,实现服务器验证,文件上传等Forward 转发到目的地,可以是JSP,也可以是另一个ActionStruts-config.xml 配置文件,配置有ActionForm,Action,Forward等,通过XML解析,然后使用反射技术使用该文件Struts标签库和JSTL类似,和Struts-config.xml、ActionForm、Action等对象可以紧密集成四、Struts1.x 开发实例-登录程序见案例。
五、Struts2(WebWork)的MVCStruts2的MVC架构六、Struts2的主要组件组件作用FilterDispatcher 起中央控制器作用的过滤器Action 处于Model层的Action,调用JavaBean实现业务逻辑struts.xml 核心配置文件,配置有Action、Result等result 和forward类似,转发的目的地,支持多种视图技术。
七、Struts2的实例-登录在MyEclipse环境中建立一个新的web工程,名称“Struts2Login”,存放路径“f:\Struts2Login”。
在Struts2.0.11版本中找到war包struts2-blank-2.0.11.war,解开该war包,在WEB-INF/lib 目录下复制出所有的jar包,这些jar包就是一个Struts2程序所需要的基础jar包,把它们复制到新建的web工程的WEB-INF/lib目录中。
在src目录下建立一个类,包名mypack,类名UserAction,其代码如下:package mypack;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private String username;private String userpass;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getUserpass() {return userpass;}public void setUserpass(String userpass) {erpass = userpass;}@Overridepublic String execute() throws Exception {if ("Mike".equals(username) && "123".equals(userpass)|| "张三".equals(username) && "abc".equals(userpass))return "success";elsereturn "error";}}在src目录下建立Struts2的配置文件struts.xml,内容如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><!-- 定义包管理配置的action 继承struts-default.xml中的配置 --><package name="actions" extends="struts-default"><!-- 定义Action(login.action) --><action name="login" class="erAction"><!-- 定义转发路径对应的字符串名 --><result name="success">/Success.jsp</result><result name="error">/Error.jsp</result></action></package></struts>修改web.xml,在其中加入一个过滤器,过滤/*路径。
Struts2.5+Hibernate3.1+Spring应用开发实例(图)
Struts2.5+Hibernate3.1+Spring应用开发实例.(Hibernate和Spring是新的知识点,先单独强化,然后再整合训练)任务一:Hibernate(10课时)该任务包括两个部分内容一是Hibernate的基础知识,二是实际完成一个Hibernate应用。
要求:掌握Hibernate的基础知识,掌握开发Hibernate应用的方法。
任务二:Sping(10课时)该任务包括两个部分内容一是介绍Spring的基础知识,二是完成一个Spirng 应用。
要求:掌握Spring的基础知识,掌握开发Spirng应用的方法。
任务三:Hibernate和Spring的联合开发(8课时)使用Hibernate和Spring框架完成Java应用开发要求:掌握使用Hibernate和Spring框架开发Java应用程序的过程。
任务四:基于Struts+Hibernate+Spring的网上购物系统开发(28课时)结合Hibernate和Spring改写《Java Web 应用开发项目教程》的前台要求:掌握使用Struts+Hibernate+Spring框架开发网上购物系统的方法实训要求:1.每位同学独立完成2.每部分内容按时提交代码和学习报告(总成绩由每次的节点成绩统计获得)软件环境需求:1.操作系统:WindowsXP2.数据库及驱动程序:Microsoft SQLServer 2005 JDBC3.JDK: JDK64.IDE:MyEclipse7.05.服务器:Tomcat6.0任务一Hibernate1.1Hibernate基础知识1.Hibernate简介Hibernate是一种Java语言下的对象-关系映射解决方案,它是一种自由、开源的轻量级框架,用于将面向对象的对象模型映射到传统的关系数据库中。
Hibernate对JDBC进行了轻量级的对象封装,不仅提供从Java数据类型到SQL数据类型的ORM映射,还提供数据查询和数据缓存功能,大幅度减少开发时人工使用SQL 和JDBC 处理数据的时间,使得Java程序员可以完全使用面向对象的编程思维通过Hibernata API操作关系数据库。
struts框架详细介绍
struts框架详细介绍Struts是一个开源的Java Web应用程序开发框架,可以帮助开发者构建可扩展的、高性能的Web应用程序。
它遵循了Model-View-Controller(MVC)设计模式,通过将业务逻辑、表示逻辑和用户交互进行分离,使得应用程序更易于开发、测试和维护。
下面是关于Struts框架的详细介绍。
1.MVC设计模式:Struts采用了MVC设计模式,将应用程序的不同组成部分进行分离。
- Model层负责处理数据和业务逻辑。
在Struts中,开发者可以使用JavaBean、EJB、Hibernate等技术作为Model层的实现。
- View层负责展示数据和用户界面。
Struts提供了JSP(JavaServer Pages)作为主要的View技术,也可以使用Velocity、Freemarker等模板引擎。
- Controller层负责接收用户请求、处理业务逻辑以及将结果返回给View层。
Struts的Controller层使用ActionServlet来处理请求,它根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
2.核心组件:Struts由以下几个核心组件组成:- ActionServlet:负责接收和处理来自客户端的请求,并根据配置文件中的映射规则将请求转发给合适的Action类进行处理。
- Action类:实现了业务逻辑的处理,接收请求和返回结果。
开发者需要继承Action类,并覆写其中的execute(方法来实现自定义的业务逻辑。
- ActionForm:用于封装请求参数并传递给Action类进行处理。
ActionForm可以与表单元素进行绑定,从而方便地获取和验证用户输入。
- ActionMapping:配置文件中的一项规则,用于将请求URL映射到具体的Action类和方法。
- ActionForward:配置文件中的一项规则,用于指定请求处理完成后需要跳转到的页面。
Struts中文帮助文档详解
3 S TRUTS 详解 (1)3.1.1 传统的Model 1和Model 2.......2 3.1.2 MVC 及其优势.. (3)3.2 S TRUTS 概述 (4)3.2.1 Struts 的起源.............................4 3.2.2 Struts 的体系结构 (4)3.3 S TRUTS 的下载和安装..............................5 3.4 S TRUTS 入门. (6)3.4.1 基本的MVC 示例......................6 3.4.2 Struts 的基本示例...................13 3.4.3 Struts 的流程 (16)3.5 S TRUTS 的配置 (17)3.5.1 配置ActionServlet ...................17 3.5.2 配置ActionForm .....................19 3.5.3 配置Action ..............................20 3.5.4 配置Forward .. (21)3.6 S TRUTS 程序的国际化 (22)3.6.1 Java 程序的国际化.................23 3.6.2 Struts 的国际化.. (26)3.7 使用动态A CTION F ORM (30)3.7.1 配置动态ActionForm .............30 3.7.2 使用动态ActionForm . (31)3.8 S TRUTS 的标签库 (32)3.8.1 使用Struts 标签的基本配置....32 3.8.2 使用html 标签库......................33 3.8.3 使用bean 标签库.....................35 3.8.4 使用logic 标签库..................42 3.9 S TRUTS 的数据校验 (53)3.9.1 ActionForm 的代码校验.........54 3.9.2 Action 的代码校验...................57 3.9.3 结合commons-validator.jar 的校验 (58)3.10 S TRUTS 的异常框架...............................66 3.11 几种常用的A CTION (69)3.11.1 DispatchAction 及其子类......70 3.11.2 使用ForwardAction ..............74 3.11.3 使用IncludeAction ................74 3.11.4 使用SwitchAction (75)3.12 S TRUTS 的常见扩展方法 (76)3.12.1 实现PlugIn 接口....................76 3.12.2 继承RequestProcessor ..........77 3.12.3 继承ActionServlet .. (79)本章小结 (80)3 Struts 详解从实际应用开发的角度而言,Struts 应该是MVC 框架的第一选择。
Struts2入门经典实例
写一个Steuts2的经典入门案例,怕忘记啊,有时候突然记不起知识概念了,所以还是记个笔记,网络上找了几个,发现部署出来要报错,最后还是自己写一个比较靠谱。
做了一个登陆程序作为入门例子。
登陆会去交互,并返回页面,比较适合以后扩展的项目,容易理解!例子:登陆的Struts2案例环境:IDE工具:Myeclipse , Tomcat6.0所需jar包:struts2-core-2.1.8.1.jarstruts2-json-plugin-2.1.8.1.jarxwork-core-2.1.6.jarcommons-fileupload-1.2.1.jarfreemarker-2.3.15.jarjunit4.4.jarognl-2.6.7.jar步骤:1. 创建一个web project项目2.导入Struts2所需jar包3.配置web.xml4.配置struts2.xml5.写action类(LoginUser.java)6.写jsp页面7.启动tomcat.运行项目项目最后截图:开始:1.创建一个项目还是截图,项目名称为:Struts2SpExa2.导入所需jar包导入所需jar包到项目的lib文件夹下(或者通过Build Path导入也可)3.在WEB-INF下面的web.xml中配置:配置拦截器和起始页面[html]view plain copy print?01.<?xml version ="1.0" encoding ="UTF-8"?> 02.<web-app version ="2.5" 03.xmlns ="/xml/ns/javaee" 04.xmlns:xsi ="/2001/XMLSchema-instance" 05.xsi:schemaLocation ="/xml/ns/javaee 06./xml/ns/javaee/web-app_2_5.xsd"> 07.<filter> 08.<filter-name>struts2</filter-name> 09.<filter-class> 10.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 11.</filter-class> 12.</filter> 13.14.<filter-mapping> 15.<filter-name>struts2</filter-name> 16.<url-pattern>/*</url-pattern> 17.</filter-mapping> 18.<welcome-file-list> 19.<welcome-file>/WEB-INF/jsp/login.jsp </welcome-file> 20.</welcome-file-list> 21.22. </web-app>4.配置struts.xml配置strust2要调用的action[html] view plain copy print ?01.<?xml version ="1.0" encoding ="UTF-8"?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 04."/dtds/struts-2.0.dtd"> 05.<!--配置struts action > 06.<struts> 07.<package name ="todayMZ" extends ="struts-default" namespace ="/"> 08.<action name ="loginUser" class ="erAction"> 09.<result name ="success">/WEB-INF/jsp/success.jsp </result> 10.<result name ="fail">/WEB-INF/jsp/fail.jsp </result> 11.</action> 12.</package> 13. </struts>5.写action 类(LoginUser.java)这个类主要用于struts2跳转到这个action 后。
struts框架面试题及答案
struts框架面试题及答案struts框架面试题及答案(一)1. 简单叙述ActionForm Bean的作用答案:1、ActionForm Bean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。
2、Struts框架利用ActionForm Bean来进行View组件和Controller组件之间表单数据的传递。
3、Struts框架把View组件接受到的用户输入的表单数据保存在ActionForm Bean中,把它传递给Controller组件,Controller组件可以对ActionForm Bean 中的数据进行修改JSP文件使用Struts标签读取修改后的ActionForm Bean的信息,重新设置HTML表单。
2 .叙述ActionForm执行步骤答案:(1)检查Action的映射,确定Action中已经配置了对ActionForm的映射 (2)根据name属性,查找form bean的配置信息(3)检查Action的formbean的使用范围,确定在此范围下,是否已经有此form bean的实例。
(4)假如当前范围下,已经存在了此form bean的实例,而是对当前请求来说,是同一种类型的话,那么就重用。
(5)否则,就重新构建一个form bean的实例(6)form bean的reset()方法备调用(7)调用对应的setter方法,对状态属性赋值(8)如果validatede的属性被设置为true,那么就调用form bean的validate()方法。
(9)如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行。
3、FormBean的作用答:FormBean是一种JAVABean,除了具有JAVABean的常规方法,还包含一些特殊方法,用于验证表单数据,以及将其属性重新设置为默认值。
struts2基本学习教学
继续框架的学习:Struts2:MVC ←→SpringMVC (不要打架)Oracle:DB ←→MySQL (一些语法还是有差异的,不要打架) Hiberante:DAO ←→MyBatis (都是实现持久化的,不要打架)SSH整合的一个简单的CRUD案例!SSH: spring struts2 hibernate1,Struts2框架是一个MVC框架M(javabean) V(view) C(前端(核心)控制器,业务控制器)2,阐述Struts2的框架原理请求到达前端(核心)控制器从ActionMapper对象中查找ActionMapping对象获得ActionInvoker对象并执行Action返回视图3,在编写Struts2代码之前再介绍一个框架(了解)Struts2是Struts1的一个”延伸”(其实两个框架没有关系)其实Struts2的前身并不是struts1,它其实来自另一框架:webworkStruts1这个框架的控制器是Servlet,这个框架与servlet是严重耦合的!(ActionServlet)Struts1中的控制器是单例的!Struts2跟Servlet无关!Struts2中的控制器是多例的!4,开发Struts2的项目(学框架就是用别人的东西,学别人定义的规则)1)引入JAR包commons-fileupload-*.*.jar : 实现文件上传commons-logging-*.*.jar : apache下提供的一个日志包freemarker-*.*.jar : 提供视图解析的ognl-*.*.jar: struts2中的一个新特性,提供对象图导航语言struts2-core-*.*.jar :struts2的核心包xwork-core-*.*.jar : webwork的核心包2)在开发之前介绍几个文件:在struts2-core-*.*.jar中文件:struts-default.xml满足约束:文件中定义了组件:<bean> : 是struts2中要使用的bean对象<result-type> : 定义了struts2中视图的响应方式<interceptor>: 定义拦截器在struts2-core-*.*.jar中的org.apache.struts2包中文件:default.properties文件中定义开发的语言环境以及url的默认扩展名3)开发31)配置核心控制器(是一个过滤器) 在web.xmlorg.apache.struts2.dispatcher.FilterDispatcher (过时)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter (使用)32)View –> JSP编写自己的配置文件:在src下struts.xml满足33)编写ActionAction可以是一个普通的javabean,不需要实现任何接口或者继承任何类!(当然也可以去实现Action接口或者继承ActionSupport类)视图传值给Action:规则是视图组件的name必须和action中的属性名保持一致!!(注:方法的执行顺序Setter –> execute)5,如果在Action中要使用request,response,session,application对象,struts2框架提供了如下机制:去实现XxxAware接口6,如果在struts.xml中希望有多个action的name相同,可以使用不同package进行管理。
java项目案例
java项目案例随着互联网技术的发展,Java已经成为当今世界上最重要的编程语言。
Java包括不同的开发框架,如Spring, Hibernate, Struts 和Java EE等,为开发者提供了一系列强大而有效的工具和方案。
本文将探讨一些常见的Java项目案例,指出如何使用这些框架和相关工具快速开发和实现项目。
第一个Java项目案例就是使用Spring框架开发一个简单的用户登陆系统。
为了实现这一目标,你首先需要创建一个包含用户注册和用户登陆的表单。
然后,你需要利用Spring框架构建相应的后台代码,用来实现表单提交数据的处理。
这一系列步骤包括:(1)搭建环境:首先,你需要在开发环境中安装好Spring框架,安装完成之后,再将Spring Framework配置到IDE中,以便能够使用该框架的功能。
(2)编写代码:接下来,你需要编写后台代码,实现表单数据的检查与验证,并根据用户输入的参数进行后端处理。
(3)测试:在编码完成之后,就可以开始进行单元测试,确认编写的代码能否满足项目的需求。
(4)发布:最后,确认测试通过后,你可以将代码发布到互联网上,使用户可以访问该系统。
第二个Java项目案例是利用Hibernate框架开发一个简单的学生管理系统。
为了进行开发,你需要做的第一步就是安装Hibernate 框架,并在开发IDE中添加相应的支持。
接着,你就可以开始编写代码,实现学生信息的CRUD操作,如:创建、查询、更新、删除。
最后,你可以将该系统部署到服务器上,使用户可以通过网络接入服务,实现相关的功能。
最后,第三个Java项目案例是使用Struts框架开发一个基于web的购物网站应用系统。
此外,开发这个项目前,你还需要了解项目的要求:用户能够通过网页进行商品的搜索、查看、购买等操作,同时,你还需要为用户提供在线付款、订单管理和退款等功能,以确保网站能够稳定运行。
为了实现这一目标,你需要做如下步骤:(1)搭建环境、(2)编写代码、(3)单元测试、(4)发布网站,此外,你还要构建一个完整的数据库,用来存储用户注册、交易以及订单等信息。
struts的工作流程
struts的工作流程Struts的工作流程Struts是一个开源的Java Web应用程序框架,它的工作流程是一个基于MVC设计模式的过程。
本文将详细介绍Struts的工作流程,以帮助读者更好地理解和使用该框架。
1. 控制器层Struts的工作流程始于控制器层,它负责接收用户的请求并进行处理。
控制器层主要由ActionServlet组成,它是Struts框架的核心控制器。
当用户发起请求时,ActionServlet首先接收到请求,并根据配置文件中的映射规则将请求分发给相应的Action处理。
2. Action层Action层是Struts框架中的核心处理逻辑层。
当ActionServlet将请求分发给相应的Action后,Action会根据请求的类型和参数进行相应的处理。
Action可以从请求中获取用户提交的数据,并进行验证、处理和转换。
在处理完请求后,Action会将处理结果封装成一个ActionForm对象,并将控制权交给视图层。
3. 视图层视图层是Struts框架中负责展示数据的部分。
在Struts中,视图层通常由JSP页面来实现。
当Action将处理结果封装成ActionForm 对象后,它会将该对象传递给相应的JSP页面进行展示。
JSP页面可以通过EL表达式或JSTL标签库来访问ActionForm对象中的数据,并将其展示给用户。
4. 数据模型层数据模型层是Struts框架中负责处理业务逻辑的部分。
在Struts中,数据模型层通常由业务逻辑组件和数据访问组件组成。
业务逻辑组件负责处理业务逻辑,如验证用户输入、计算数据等;数据访问组件负责与数据库交互,如查询、插入、更新等操作。
在Struts的工作流程中,数据模型层主要由Action调用和协调。
以上就是Struts的基本工作流程。
当用户发起请求时,控制器层的ActionServlet接收到请求并将其分发给相应的Action处理。
Action负责处理请求并将处理结果封装成ActionForm对象。
strutsk开源框架银行使用案例
文章标题:深度探究strutsk开源框架在银行使用案例中的应用在当今数字化时代,银行业面临着巨大的挑战和机遇。
随着金融科技的不断演进和发展,银行业务的管理和运营也愈发复杂。
为了更好地适应市场变化、提升效率、改善用户体验,越来越多的银行开始采用开源框架来优化其系统和业务流程。
而strutsk作为一种优秀的开源框架,在银行业的应用案例中扮演着越来越重要的角色。
一、Strutsk开源框架简介1.1 Strutsk的概念和特点在深入探讨strutsk在银行使用案例中的应用之前,我们首先要了解strutsk这一开源框架的概念和特点。
Struts是一个用于创建企业级Java Web应用程序的开源框架。
它是在MVC(模型-视图-控制器)模式的基础上构建的,能够帮助开发者更好地组织和管理复杂的Web 应用程序。
1.2 Strutsk在银行业的普遍应用在银行业,信息系统的复杂性日益增加,而strutsk作为一个成熟的Java Web框架,其在银行业的应用已经变得非常普遍。
它能够帮助银行构建稳定、灵活、安全的网上银行系统,并且方便地与其他数据库和系统进行集成。
二、Strutsk在银行使用案例中的深度应用2.1 Strutsk在银行网上支付系统中的应用随着电子商务和移动支付市场的不断发展,银行的网上支付系统也变得日益重要。
strutsk框架能够帮助银行构建稳定、可靠的网上支付系统,能够实现复杂的交易处理、安全的数据传输和实时的交易监控。
2.2 Strutsk在银行客户关系管理系统中的应用客户关系管理对于银行业而言至关重要,而strutsk框架在客户关系管理系统的应用也日益普遍。
它能够帮助银行管理客户信息、分析客户需求、制定个性化的营销策略,从而提升客户满意度和转化率。
2.3 Strutsk在银行风险管理系统中的应用银行风险管理是银行业务中不可或缺的一部分,而strutsk框架在银行风险管理系统中的应用可以帮助银行实时监控交易风险、制定风险预警机制、加强反欺诈能力,保障银行业务的稳健发展。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
struts简单案例-适合初学者( 3)疯狂代码 / ĵ:http://Java/Article53881.html 层次结构介绍说明 共分为 4层:mid、midimpl、application、presentation 般开发基于MVC结构应用来说层次划分是很重要 3层结构、于至于多层结构演变有其定道理MVC本身就是模型、视图、控制层次划分这样有助于职能明确加快开发效率最重要是系统把握度和可扩展能力 当然这里 4层划分不是绝对根据区别项目可以有区别调整只是作为个参考这是个实际项目中保留下来有其定科学性 mid:接口和抽象类部分是相对系统底层功能集中体现相对共通性部分 midimpl:是对mid层具体现实 application:具体业务逻辑、模型 presentation:表述层struts具体实现部分 具体为何如此划分层次会具体讲解也请大家考虑下 下面具体讲解StrutsSample各个组成 类 mid DAOFactory:是采用了工厂模式来实现其间又有DAO模式 功能:得到DAOFactoryImpl(DAOFactory具体实现)例子并提供了两个abstract 思路方法在DAOFactoryImpl必须得以实现 DepartmentDAO:操作表department接口定义了些对表基本操作 midimpl DAOFactoryImpl: DAOFactory具体实现在DAOFactory中两个abstract思路方法也得以实 现:init()思路方法取得数据源getDepartmentDAO()思路方法得到接口DepartmentDAO具体例子DepartmentDAOImpl除了要必须实现思路方法外还定义了getConnection()思路方法以取得对数据源连接 DepartmentDAOImpl:接口DepartmentDAO具体实现表操作具体实现 application Department:定义了个数据bean可以对照数据表department发现是对应它个对 象实现 DepartmentBO:定义了这个应用中所需要业务逻辑比如selectDepartment(String depid)思路方法根据个部门ID来获得该部门详细数据、createDepartment()、updateDepartment()、 deleteDepartment()分别对应创建、更新、删除 presentation DepartmentForm:Form Bean表单收集JSP页面上元素可以发现它和application层Department类是类似Form表单所收集数据真好是对应数据库中字段(这只是个比较特殊例子而已开发中不定都是这样这里同时引申出个问题居然两个类是类似为什么不合并下就用其中个类这样不是还可以节省个类吗?) CreateDepartmentAction:创建部门Action类 DeleteDepartmentAction:删除部门Action类 ListDepartmentAction:所有部门个列表 SelectDepartmentAction:选择个部门 UpdateDepartmentAction:更新部门Action类 资源文件ApplicationResources.propertiesJSPindex.jspCreate–register.jsp–success.jsp–failure.jsplist–departmentList.jsp–failure.jspupdate–update.jsp–failure.jspstruts-config.xml<?xml version=”1.0″ encoding=”ISO-8859-1″ ?><!DOCTYPE struts-config PUBLIC“-//Apache Software Foundation//DTD Struts Configuration 1.1//EN” “/struts/dtds/struts-config_1_1.dtd”><struts-config><!– Form Bean Definitions = –><form-beans><!– Logon form bean –><form-bean name=”departmentForm”type=”cn.haose.struts.presentation.DepartmentForm”></form-bean></form-beans><!– Action Mapping Definitions –><action-mappings><action path=”/create”type=”cn.haose.struts.presentation.CreateDepartmentAction”name=”departmentForm”scope=”request”input=”/create/register.jsp”><forward name=”success” path=”/create/success.jsp”/><forward name=”failure” path=”/create/failure.jsp”/></action><action path=”/list”type=”cn.haose.struts.presentation.ListDepartmentAction”><forward name=”success” path=”/list/departmentList.jsp”/><forward name=”failure” path=”/list/failure.jsp”/></action><action path=”/select”type=”cn.haose.struts.presentation.SelectDepartmentAction”><forward name=”success” path=”/update/update.jsp”/><forward name=”failure” path=”/update/failure.jsp”/></action><action path=”/delete”type=”cn.haose.struts.presentation.DeleteDepartmentAction”><forward name=”success” path=”/list.do”/><forward name=”failure” path=”/update/failure.jsp”/></action><action path=”/update”type=”cn.haose.struts.presentation.UpdateDepartmentAction”name=”departmentForm”scope=”request”input=”/update/update.jsp”><forward name=”success” path=”/list.do”/><forward name=”failure” path=”/update/failure.jsp”/></action></action-mappings><!– Message Resources Definitions = –><message-resources parameter=”ApplicationResources”/></struts-config>web.xml.<?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE web-app PUBLIC “-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”“/dtd/web-app_2_3.dtd”><web-app id=”WebApp”><display-name>sample</display-name><servlet><servlet-name>action</servlet-name><servlet->org.apache.struts.action.ActionServlet</servlet-> <init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value> </init-param><load-on-startup>1</load-on-startup></servlet><!– Action Servlet Mapping –><servlet-mapping><servlet-name>action</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!– Struts Tag Library Descriptors –><taglib><taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri><taglib-location>/WEB-INF/struts-bean.tld</taglib-location> </taglib><taglib><taglib-uri>/WEB-INF/struts-html.tld</taglib-uri><taglib-location>/WEB-INF/struts-html.tld</taglib-location> </taglib><taglib><taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri><taglib-location>/WEB-INF/struts-logic.tld</taglib-location> </taglib><resource-ref><description>DB Connection</description><res-ref-name>jdbc/SAMPLE</res-ref-name><res-type>javax.sql.DataSource</res-type><res-auth>Container</res-auth></resource-ref></web-app> 数据源 Tomcat 中 server.xml<Context path=”/sample” docBase=”sample” debug=”0″ reloadable=”true” crossContext=”true”><Resource name=”jdbc/SAMPLE”auth=”Container”type=”javax.sql.DataSource”/><ResourceParams name=”jdbc/SAMPLE”><parameter><name>factory</name><value>mons.dbcp.BasicDataSourceFactory</value> </parameter><parameter><name>driverClassName</name><value>oracle.jdbc.OracleDriver</value></parameter><parameter><name>url</name><value>jdbc:oracle:thin:@hao-se:1521:haose</value></parameter><parameter><name>username</name><value>test1</value></parameter><parameter><name>password</name><value>test1</value></parameter><parameter><name>maxActive</name><value>10</value></parameter><parameter><name>maxIdle</name><value>1</value></parameter><parameter><name>maxWait</name><value>-1</value></parameter></ResourceParams></Context>2009-1-15 22:06:02疯狂代码 /。