struts1.2上传例子

合集下载

struts1学习笔记

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即可访问。

Java多方式实现文件上传

Java多方式实现文件上传

在Struts 2中实现文件上传前一阵子有些朋友在电子邮件中问关于Struts 2实现文件上传的问题,所以今天我们就来讨论一下这个问题。

实现原理Struts 2是通过Commons FileUpload文件上传。

Commons FileUpload通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。

从而我们就能够以本地文件方式的操作浏览器上传的文件。

具体实现前段时间Apache发布了Struts 2.0.6 GA,所以本文的实现是以该版本的Struts 作为框架的。

以下是例子所依赖类包的列表:清单1 依赖类包的列表首先,创建文件上传页面FileUpload.jsp,内容如下:<% @ page language = " java " contentType = " text/html; charset=utf-8 " pageEncodi ng = " utf-8 " %><% @ taglib prefix = " s " uri = " /struts-tags " %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/ TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title> Struts 2 File Upload </title></head><body><s:form action="fileUpload"method="POST"enctype="multipart/form-data"> <s:file name="myFile"label="Image File"/><s:textfield name="caption"label="Caption"/><s:submit /></s:form></body></html>清单2 FileUpload.jsp在FileUpload.jsp中,先将表单的提交方式设为POST,然后将enctype设为multipart/form-data,这并没有什么特别之处。

ec使用总结

ec使用总结

} public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getName() { return name; } public void setName(String name) { = name; } public Date getGenTime() { return genTime; } public void setGenTime(Date genTime) { this.genTime = genTime; } }
ec 使用总结
文:阿蜜果 日期:2008-1-4
1. 简介
eXtremeComponents(简称 ec)是一系列提供高级显示的开源 JSP 定制标签,当前的包 含的组件为 eXtremeTable,用于以表形式显示数据。 使用 ec 需要一定的前提条件,JDK 要求 1.3 或更高的版本,Servlet 需要 2.3 或以上版 本。 eXtremeTable 在给定的 servlet 范围 (scope) 外取得 Beans 或 Maps 的集合用于 JSP 页面 显示。 servelet 范围的搜索顺序是:page, request, session 和 application。通过设定 TableTage 的 items 属性,eXtremeTable 知道哪些需要在 servlet 范围外被保持。 集合里的 Beans 是 pojo,如果使用 maps 那么它就是键值对。你可以认为每一个 bean 就是表中的一行数据。 在接下来的文档中,我将使用 Beans 集合来代替这两种集合。
* @return 跳转到用户信息列表页 */ public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse httpServletResponse) { try { List userList = userManageBean.getUserList(); request.setAttribute("userList", userList); return mapping.findForward("viewUserList"); } catch (Exception e) { return mapping.findForward("error"); } } }

struts1 详解

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关联的名称。

整合struts1+spring+hibernate框架完成简单的登录

整合struts1+spring+hibernate框架完成简单的登录

*编写环境:*开发工具:Myeclipse6.01*SPRING :spring2.0*STRUTS :struts1.2*HIBERNATE:hibernate3.0*JDK: 1.6*TOMCAT: 6.0*WINDOW641.新建web项目。

2.选中新建项目,右键--》选择“myeclipse”--》添加Struts支持。

3.在弹出的信息框,有必要修改一下图中的地方。

4.上面的操作完成之后,打开我们的项目我们可以看到我们的项目结构发生了变化,引入了一些struts标签和生成了struts-config.xml配置文件。

5.开始添加spring支持,同样选中新建项目,右键--》选择“myeclipse”--》“添加spring 支持”,在弹出的信息框,做如下内容修改:6.点击“next”,直接选择默认,当然也可根据自己的规则做修改。

7.在添加“Hibernate”支持的时候,首先做的工作是创建一个数据源。

这个创建方法有很多中(找百度可得)这里只介绍一种:打开你的myeclipse的右上角的小三角,选择“myeclipsedatabase explorer”在弹出的界面中,在如图位置右键“new”在弹出的界面中做如下修改:修改完成后点击“test driver”成功则继续。

8.暂时回到myeclipse开发界面。

正式开始添加“Hibernate”支持。

在弹出的界面中做如图修改:点击“next”这里如图,选择spring的配置文件。

下一步操作后,做如下图修改操作:下一步之后,界面修改操作,如下图:去掉复选框中的选项,然后点击“finish”完成整个操作。

之后将会直接打开spring的配置文件,然后你核对一下您的数据库连接是否正确。

至此三大支持操作完成,启动没有问题说明框架雏形已经完成。

9.在项目中的WEB-INF下找到web.xml,做如下修改:格式头部分省略,下面是需要新增的代码<!--初始化spring配置参数 --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:applicationContext.xml</param-value></context-param><!-- 配置监听 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</list ener-class></listener><!-- 配置spring过滤器解决中文乱码问题 --><filter>Ps :这个时候我们再次启动服务的时候,发现可能会报错:因为我们在刚才已经把spring 的配置文件做了初始化,而在spring 的配置文件中有数据源的连接,而我们的项目中可能还缺少一个包:commons-pool-1.4.jar(/detail/u013806366/7897665 )当我们把这个包放在lib 下,我们再次启动项目的时候,错误信息应该会消失。

软件测试工具使用手册

软件测试工具使用手册

软件测试工具使用手册项目环境:开发工具:Eclipse3.3+MyEclipse6.0测试工具:Junit3.8 、Junit4、JMeter2.3、Selenium1.0项目名称:Struts1.2Demo项目结构:项目介绍:1.TestServlet.java:一个Servlet,它接受一个名称为userName 的参数,同时在程序执行过程中,打印出页面传递的参数值。

请求地址:/servlet/TestServlet2.Demo.java:普通的Java类,里面包括一个exec 方法,该方法接受一个字符串作为参数,同时返回一个String 类型的对象。

方法功能:A、如果传递的参数为 null, 则返回一个”null”字符串B、如果传递的参数为 wcleye,则返回一个” wcleyeJunit” 字符串C、如果前面条件都不成立,则直接返回参数值。

3.LoginAction.java、LoginActionForm.java、login.jsp、successful.jsp、error.jsp:这几个文件完成一个用户注册的功能。

A、用户进入login.jsp页面,输入用户名和两次密码。

B、如果两次密码相同,则页面跳转进和successful.jsp,否则进入error.jsp页面。

Junit3.8 单元测试描述:使用Junit3.8 测试Demo.java 类中的exec方法,测试包括该方法的三种分支情况。

然后使用Junit3.8 Suite 来完成测试套件。

1、新建DemoTest3.java类,代码如下:2、在这个类中,需要注意:A、测试用例类必须继承TestCaseB、测试用例的方法名称:test+被测试的方法名(此方法不能有参数)。

C、对于测试过程中只执行一次的初始化操作放到重写父类的setUp()方法中D、如果测试结束后,需要做一些释放资源的操作,这些代码放到重写父类的tearDown()方法中。

Struts2详细实例教程

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多文件上传下载

struts2多文件上传下载

struts2多文件上传下载文件上传:1,upload.jsp如下:<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%@ taglib prefix="s" uri="/struts-tags"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort()+ path + "/";%><title>My JSP 'upload.jsp' starting page</title><!--下面script实现多文件上传--><script type ="text/javascript">function onMore(){var td =document.getElementById("more");varbr = document.createElement("br");var input = document.createElement("input");var button = document.createElement("input");input.type = "file";="file";button.type="button";button.value="删除";//当点击删除时,删除一行。

Struts介绍

Struts介绍
它是jsp编程的一种扩展 使功能更为强大, 它是jsp编程的一种扩展,使功能更为强大,使编程焦点集中处 编程的一种扩展, 理数据和业务逻辑部分
Struts实现 Struts实现MVC的机制 实现MVC的机制
Servlet/JSP容器 容器 Struts-config.xml
Action (模型) 模型) 模型 JavaBean EJB
浏览器
Web 服务器
(控制器 控制器) 控制器 ActionServlet
Action
Action (视图 视图) 视图 JSP 图1-12 Struts实现的MVC
1. 视图
视图是一组JSP文件。 视图是一组JSP文件。 JSP文件 Struts框架中的ActionForm也划分到视图模块中 框架中的ActionForm也划分到视图模块中。 Struts框架中的ActionForm也划分到视图模块中。 ActionForm也是一种JavaBean,除了具有一些JavaBean 也是一种JavaBean JavaBean的常 ActionForm也是一种JavaBean,除了具有一些JavaBean的常 规方法外,还具有一些特殊方法,用于验证HTML HTML表单数据以 规方法外,还具有一些特殊方法,用于验证HTML表单数据以 及将其属性重新设置为默认值。Struts框架利用 框架利用ActionForm 及将其属性重新设置为默认值。Struts框架利用ActionForm Bean来进行视图和控制器之间表单数据的传递 来进行视图和控制器之间表单数据的传递。 Bean来进行视图和控制器之间表单数据的传递。
创建 Action
public class LoginAction extends Action { 创建一个 LoginAction public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest servletRequest, HttpServletResponse servletResponse) { UserActionForm userActionForm = (UserActionForm) actionForm; String username = userActionForm.getUserName(); String password = userActionForm.getPassword(); UserBean user = new UserBean(); boolean flag = user.verifyUser(username, password); if (flag) { return actionMapping.findForward("success"); } else { return actionMapping.findForward("error"); } } }

购物车讲解

购物车讲解
购物车讲解 名词解释:
购物车,顾名思义,就是具有与超市中购物车相同功能的模块. 本例主要以实现购物车基本功能(向购物车中添加商品,修改商品,删除商品).我将 采用 Struts1.2来写这个例子,好了,现在我们开始.成品如下图:
图-1
图-2
一.我们首先要建立数据库,内容很简单,只需有三个字段,即:商品编号,商品名称,商 品价格.然后为其添加一些商品即可. 二.在首页面上我们用多选框来选定要买的商品 ,然后将每个选定的商品的编号作 为一个数组传入 Action 中进行处理. 三.下面为大家来讲解一下 Action 中对于购物车功能实现的核心代码:
}
五.下面给出商品处理的逻辑类的源代码: product_do:
public class product_do {
public productBean showproductByid(int id) { productBean pb = null; Connection conn = DBConnect.getDB(); Statement stmt = null; ResultSet rs = null; try {
}
购物车 bean: carBean public class carBean { int product_id; String product_name; float product_price; int product_num; float product_totalmoney; public int getProduct_id() {
carBean cb2 = (carBean) car.elementAt(j); if (cb2.getProduct_id() == cb.getProduct_id()) { cb2.setProduct_num(cb2.getProduct_num() + 1); cb2.setProduct_totalmoney(); car.setElementAt(cb2, j); f = true; } }

struts2上传文件异常:multipartrequest(jakarta)-[unknownlocation]

struts2上传文件异常:multipartrequest(jakarta)-[unknownlocation]

struts2上传文件异常:multipartrequest(jakarta)-[unknownlocation]Struts2上传文件异常:ng.RuntimeException: Unable to load beanorg.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]在测试Struts2权威指南介绍的struts2文件上传,发现如下异常:ng.RuntimeException: Unable to load beanorg.apache.struts2.dispatcher.multipart.MultiPartRequest (jakarta) - [unknown location]再回去仔细看该章节,发现是自己粗心了,忘记加所需要的两个除struts2外的jar文件.所加jar文件所图所示:Struts2默认使用的是Jakarta的Common-FileUpload的文件上传框架,而struts2的filter拦截了上传文件的动作,拦截器代码是这样写的://org.apache.struts2.dispatcher.Dispatcher.javapublic HttpServletRequest wrapRequest(HttpServletRequest request, ServletContext servletContext) throws IOException { // don't wrap more than onceif (request instanceof StrutsRequestWrapper) {return request;}String content_type = request.getContentType();if (content_type != null &amp;&amp;content_type.indexOf("multipart/form-data") != -1) {MultiPartRequest multi =getContainer().getInstance(MultiPartRequest.class);request = new MultiPartRequestWrapper(multi, request, getSaveDir(servletContext));} else {request = new StrutsRequestWrapper(request);}return request;}注意MultiPartRequest multi =getContainer().getInstance(MultiPartRequest.class);这句是上传文件时拦截器实现所需要的,出错的原因是所不到MultiPartRequest.class的实现类.这个类在上传框架jar文件中.这是文件上传fileupload解析器。

Struts中文帮助文档详解

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中的jsp值传到后台action接收的三种方法

struts2中的jsp值传到后台action接收的三种方法

1. Action中的属性与表单中的属性一致就可以JSP中的表单<formaction="login.action"method="post">用户名:<inputtype="text"name="username"/> <br/> 密码: <inputtype="password"name="password"/><br/> <inputtype="submit"value="登陆"/></form>Action中的属性publicclassLoginActionextends ActionSupport { private String username;private String password;public String getUsername() {returnusername;}publicvoid setUsername(String username) {ername = username;}public String getPassword() {returnpassword;}publicvoid setPassword(String password) {this.password = password;}public String execute(){if( username.equalsIgnoreCase("aaa")&&password.equals("aaaaaa")){ returnSUCCESS;}else{returnERROR;}}}2. 使用一个VO类在表单中提交的属性名改为ername<formaction="login.action"method="post">用户名:<inputtype="text"name="ername"/> <br/>密码: <inputtype="password"name="user.password"/><br/><inputtype="submit"value="登陆"/></form>LoginAction中的属性改为userpublicclassLoginActionextends ActionSupport{private User user;public User getUser() {returnuser;}publicvoid setUser(User user) {er = user;}public String execute(){if( user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals(" aaaaaa")){returnSUCCESS;}else{returnERROR;}}}3. 使用Struts2中的ModelDriven数据模式Action类要实现一个泛型接口,前台表单与1相同publicclassLoginActionextends ActionSupport implements ModelDriven<User> { private User user = new User();public String execute(){if( user.getUsername().equalsIgnoreCase("aaa")&&user.getPassword().equals(" aaaaaa")){returnSUCCESS;}else{returnERROR;}}public User getModel() {returnuser;}}。

Struts2的文件上传和下载问题

Struts2的文件上传和下载问题

Struts2的文件上传和下载问题2012-05-231、Strusts2文件的上传:1、要实现文件上传必须将表单的method属性设置成post,将enctype设置成multipart/form-data,即<s:form action=”…” method=”post” enctype=”multipart/form-data”><input type=”file” name=”…”/>…</s:form>enctyp=”multipart/form-data”表示数据将以二进制流处理。

而在引用struts2的标签的时,应该引入该标签<%@taglib prefix=”s” uri=”/struts-tags”/>2、如果表单中包含一个name属性为***的文件域,则对应的处理Action中应使用以下三个属性来封装***文件域的信息***:File 封装文件域对应的文件内容***FileName:String 封装文件域对应的文件名称***ContentType:String 封装文件域对应的文件类型实现文件上传的主要代码如下:public String execute() throws Exception{ FileOutputStream fos = newFileOutputStream(要将文件上传到那个文件夹的路径);FileInputStream fis = new FileInputStream(getUpload());byte[] buffer =newbyte[1024];int len = 0;while ((len =fis.read(buffer)) > 0){fos.write(buffer, 0,len);}return SUCCESS;}3、应用拦截器实现文件的过滤(Struts2文件上传的拦截器是fileUpload<action name=”uploadPro” class=”…”><interceptor-ref name=”fileUpload”><param name=”allowedTypes”>image/png,imgae/gif,application/ms word</param><!-- 指定允许上传的文件类型--><param name=”maximumSize”>2000</param><!—指定上传的最大文件的大小--></interceptor-ref><interceptor-ref name=”defaultStack”/>…</action>4、上传文件太大的提示信息的key:rge上传文件的文件类型不允许的提示信息的key:struts.messages.error.content.type.not.allowed上传文件失败的提示信息的key:struts.messages.error.uploading设置文件上传的临时路经:struts.multipart.saveDir=”…”2、Struts2文件的下载:Struts2提供stream结果类型来支持文件的下载功能,而配置stream类型的结果需要给出一下四个属性:contentType:被下载文件的类型inputName:为被下载文件创建的一个输入流,在相应的Action中必须为其提供一个返回类型为InputStream的getter方法。

struts2上传文件

struts2上传文件

1. struts2中的文件上传第一步:在WEB=INF/lib下加入commons-fileupload-1.2.1.jar ,commons-io-1.3.2.jar。

第二步:把form表单的enctype属性设置为"multipart/form-data",如Java代码1.<form action="${pageContext.request.contextPath}/control/employee/list_execute.action" enctype="multipart/form-data" method="p ost">2.文件:<input type="file" name="image">3. <input type="submit" value="上传"/>4. </form>5. //${pageContext.request.contextPath}:获取服务器根路径第三步:在action中添加一下属性,Java代码1.public class HelloWorldAction {2. private File image; //与jsp表单中的名称对应3. private String imageFileName; //FileName为固定格式4. private String imageContentType ;//ContentType为固定格式5.6. public String getImageContentType() {7. return imageContentType;8. }9. public void setImageContentType(String imageContentType) {10. this.imageContentType = imageContentType;11. }12. public String getImageFileName() {13. return imageFileName;14. }15. public void setImageFileName(String imageFileName) {16. this.imageFileName = imageFileName;17. }18. public File getImage() {19. return image;20. }21. public void setImage(File image) {22. this.image = image;23. }24. public String execute() throws Exception{25.System.out.println("imageFileName = "+imageFileName);26.System.out.println("imageContentType = "+imageContentType);27. //获取服务器的根路径realpath28. String realpath = ServletActionContext.getServletContext().getRealPath("/images");29.System.out.println(realpath);30. if(image!=null){31. File savefile = new File(new File(realpath), imageFileName);32. if(!savefile.getParentFile().exists()) savefile.getParentFile().mkdirs();33. FileUtils.copyFile(image, savefile);34. ActionContext.getContext().put("message", "上传成功");35. }else{36. ActionContext.getContext().put("message", "上传失败");37. }38. return "success";39. }40.}此外,可以在struts.xml中配置上传文件的大小<constant name="struts.multipart.maxSize" value="10701096"/> //最大上传配置成10M默认的上传大小为2M思维拓展:如果要上传的文件非常大,如上传的是电影,好几百M ,用web上传一般是不可能难上传成功的,这时候要安装一个插件,类似于应用程序socket ,通过网络通讯上传。

Struts2入门经典实例

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 后。

带审批的传阅系统方案

带审批的传阅系统方案

带审批的公文传阅系统方案一.应用背景随着我国电子政务的发展,电子文件所占的比重越来越大。

如果本单位产生的和从外单位接收的电子文件还是要还原为纸质方式办理,将是办公方式的倒退。

如果将电子文件全部塞进传统的所谓公文流转系统中去,由于这些系统操作复杂、流程僵化、功能繁琐,常常很难满足业务部门追求简单、高效的理念。

根据最新的《党政机关公文处理条例》(中办发〔2012〕14号)要求,我们对机关办公中产生的电子公文进行统计分析,发现相当大比例的普发性文件只需根据领导批示和工作需要及时送传阅对象阅知即可。

因此部署一个操作简便、安全保密、实用性强的电子文件传阅系统是实现公文处理全过程无纸化的关键切入点,是提高机关办公效率,降低行政成本的重要抓手。

二.系统业务流程1.系统用户介绍:系统一共分成阅文人、传阅人、审批人和管理员等四类用户。

阅文人:通过U-key登入系统进行文件阅读的人,系统会自动记录阅文人阅读过的文件,阅读时间和次数。

传阅人:系统中传阅文件的用户,改用户可以起草传阅范围给审批人审批。

传阅人可以传阅文件、撤销文件、查看文件等操作。

审批人:审批人对传阅人的传阅范围进行审批,审批人同时具有阅文人的阅文功能。

管理员:管理员是对系统进行日常维护的用户,新增用户、设置文件元数据等。

2.文件传阅流程一:3.阅文业务流程:查看文件用户登录来文提醒下载附件三.主要功能1.文件登记各类型文件通过网络上传到系统中,传阅人可以选择传阅的人,上报给领导审批。

2.文件审批根据传阅人报送过来的文件以及文件传阅范围,审批人可以对文件传阅范围进行修改和批示,审批通过后文件扭转到传阅人,传阅人根据批示对文件进行传阅。

3.多级分发文件分发人可以将文件分发给本单位的阅文人,也可以分发到其它单位,接收单位可以根据授权直接在系统中再次分发到该单位的阅文人和其它阅文单位。

4.公文传阅用户在系统中能够根据文件分类、发文时间、阅读状态等属性方便的找到需要阅读的文件。

jspstruts1struts2上传文件

jspstruts1struts2上传文件

一.在JSP环境中利用Commons-fileupload组件实现文件上传1.页面upload.jsp清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>2.3.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML4.01 Transitional//EN">4.<html>5. <head>6. <title>The FileUpload Demo</title>7. </head>8.9. <body>10. <form action="UploadFile" method="post" enctype="multipart/form-data">11. <p><input type="text" name="fileinfo" value="">文件介绍</p>12. <p><input type="file" name="myfile" value="阅读文件"></p>13. <p><input type="submit" value="上传"></p>14. </form>15. </body>16.</html>注意:在上传表单中,既有一般文本域也有文件上传域2.FileUplaodServlet.java清单如下:Java代码1.package org.chris.fileupload;2.3.import java.io.File;4.import java.io.IOException;5.import java.util.Iterator;6.import java.util.List;7.8.import javax.servlet.ServletException;9.import javax.servlet.http.*;10.11.import org.apachemons.fileupload.FileItem;12.import org.apachemons.fileupload.FileItemFactory;13.import org.apachemons.fileupload.disk.DiskFileItemFactory;14.import org.apachemons.fileupload.servlet.ServletFileUpload;15.16.public class FileUplaodServlet extends HttpServlet {17.18. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {19. doPost(request, response);20. }21.22. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {23.24. request.setCharacterEncoding("UTF-8");25.26. //文件的上传部份27. boolean isMultipart = ServletFileUpload.isMultipartContent(request);28.29. if(isMultipart)30. {31. try {32. FileItemFactory factory = new DiskFileItemFactory();33. ServletFileUpload fileload = new ServletFileUpload(factory);34.35.// 设置最大文件尺寸,那个地址是4MB36. fileload.setSizeMax(4194304);37. List<FileItem> files = fileload.parseRequest(request);38. Iterator<FileItem> iterator = files.iterator();39. while(iterator.hasNext())40. {41. FileItem item = iterator.next();42. if(item.isFormField())43. {44. String name = item.getFieldName();45. String value = item.getString();46. System.out.println("表单域名为: " + name + "值为: " + value);47. }else48. {49. //取得取得文件名,此文件名包括途径50. String filename = item.getName();51. if(filename != null)52. {53. File file = new File(filename);54. //若是此文件存在55. if(file.exists()){56. File filetoserver = new File("d:\\upload\\",file.getName());57. item.write(filetoserver);58. System.out.println("文件 " + filetoserver.getName() + " 上传成功!!");59. }60. }61. }62. }63. } catch (Exception e) {64. System.out.println(e.getStackTrace());65. }66. }67. }68.}3.web.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app version="2.4"3. xmlns="java.sun/xml/ns/j2ee"4. xmlns:xsi="/2001/XMLSchema-instance"5. xsi:schemaLocation="java.sun/xml/ns/j2ee6. java.sun/xml/ns/j2ee/web-app_2_4.xsd">7.8. <servlet>9. <servlet-name>UploadFileServlet</servlet-name>10. <servlet-class>11. org.chris.fileupload.FileUplaodServlet12. </servlet-class>13. </servlet>14.15. <servlet-mapping>16. <servlet-name>UploadFileServlet</servlet-name>17. <url-pattern>/UploadFile</url-pattern>18. </servlet-mapping>19.20. <welcome-file-list>21. <welcome-file>/Index.jsp</welcome-file>22. </welcome-file-list>23.24.</web-app>二.在strut1.2中实现1.上传页面file.jsp 清单如下:Java代码1.<%@ page language="java" pageEncoding="ISO-8859-1"%>2.<%@ taglib uri="/struts/tags-bean" prefix="bean"%>3.<%@ taglib uri="/struts/tags-html" prefix="html"%>4.5.<html>6. <head>7. <title>JSP for FileForm form</title>8. </head>9. <body>10. <html:form action="/file" enctype="multipart/form-data">11. <html:file property="file1"></html:file>12. <html:submit/><html:cancel/>13. </html:form>14. </body>15.</html>2.FileAtion.java的清单如下:Java代码1./*2. * Generated by MyEclipse Struts3. * Template path: templates/java/JavaClass.vtl4. */5.package action;6.7.import java.io.*;8.9.import javax.servlet.http.HttpServletRequest;10.import javax.servlet.http.HttpServletResponse;11.import org.apache.struts.action.Action;12.import org.apache.struts.action.ActionForm;13.import org.apache.struts.action.ActionForward;14.import org.apache.struts.action.ActionMapping;15.import org.apache.struts.upload.FormFile;16.17.import form.FileForm;18.19./**20. * @author Chris21. * Creation date: 6-27-202022. *23. * XDoclet definition:24. * @struts.action path="/file" name="fileForm" input="/file.jsp"25. */26.public class FileAction extends Action {27. /*28. * Generated Methods29. */30.31. /**32. * Method execute33. * @param mapping34. * @param form35. * @param request36. * @param response37. * @return ActionForward38. */39. public ActionForward execute(ActionMapping mapping, ActionForm form,40. HttpServletRequest request, HttpServletResponse response) {41. FileForm fileForm = (FileForm) form;42. FormFile file1=fileForm.getFile1();43. if(file1!=null){44. //上传途径45. String dir=request.getSession(true).getServletContext().getRealPath("/upload");46. OutputStream fos=null;47. try {48. fos=new FileOutputStream(dir+"/"+file1.getFileName());49. fos.write(file1.getFileData(),0,file1.getFileSize());50. fos.flush();51. } catch (Exception e) {52. // TODO Auto-generated catch block53. e.printStackTrace();54. }finally{55. try{56. fos.close();57. }catch(Exception e){}58. }59. }60. //页面跳转61. return mapping.findForward("success");62. }63.}3.FileForm.java的清单如下:Java代码1.package form;2.3.import javax.servlet.http.HttpServletRequest;4.import org.apache.struts.action.ActionErrors;5.import org.apache.struts.action.ActionForm;6.import org.apache.struts.action.ActionMapping;7.import org.apache.struts.upload.FormFile;8.9./**10. * @author Chris11. * Creation date: 6-27-202012. *13. * XDoclet definition:14. * @struts.form name="fileForm"15. */16.public class FileForm extends ActionForm {17. /*18. * Generated Methods19. */20. private FormFile file1;21. /**22. * Method validate23. * @param mapping24. * @param request25. * @return ActionErrors26. */27. public ActionErrors validate(ActionMapping mapping,28. HttpServletRequest request) {29. // TODO Auto-generated method stub30. return null;31. }32.33. /**34. * Method reset35. * @param mapping36. * @param request37. */38. public void reset(ActionMapping mapping, HttpServletRequest request) {39. // TODO Auto-generated method stub40. }41.42. public FormFile getFile1() {43. return file1;44. }45.46. public void setFile1(FormFile file1) {47. this.file1 = file1;48. }49.}4.struts-config.xml的清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "/d tds/struts-config_1_2.dtd">3.4.<struts-config>5. <data-sources />6. <form-beans >7. <form-bean name="fileForm" type="form.FileForm" />8.9. </form-beans>10.11. <global-exceptions />12. <global-forwards />13. <action-mappings >14. <action15. attribute="fileForm"16. input="/file.jsp"17. name="fileForm"18. path="/file"19. type="action.FileAction"20. validate="false">21. <forward name="success" path="/file.jsp"></forward>22. </action>23.24. </action-mappings>25.26. <message-resources parameter="ApplicationResources" />27.</struts-config>5.web.xml代码清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app xmlns="java.sun/xml/ns/j2ee" xmlns:xsi="w/2001/XMLSchema-instance" version="2.4" xsi:schemaLocatio n="java.sun/xml/ns/j2ee java.sun/xml/ns/j2ee/web-app_2_4.xsd">3. <servlet>4. <servlet-name>action</servlet-name>5. <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>6. <init-param>7. <param-name>config</param-name>8. <param-value>/WEB-INF/struts-config.xml</param-value>9. </init-param>10. <init-param>11. <param-name>debug</param-name>12. <param-value>3</param-value>13. </init-param>14. <init-param>15. <param-name>detail</param-name>16. <param-value>3</param-value>17. </init-param>18. <load-on-startup>0</load-on-startup>19. </servlet>20. <servlet-mapping>21. <servlet-name>action</servlet-name>22. <url-pattern>*.do</url-pattern>23. </servlet-mapping>24.</web-app>三.在struts2中实现(以图片上传为例)1.FileUpload.jsp代码清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>2.<%@ taglib prefix="s" uri="/struts-tags" %>3.<html>4. <head>5. <title>The FileUplaodDemo In Struts2</title>6. </head>7.8. <body>9. <s:form action="fileUpload.action" method="POST" enctype="multipart/form-data">10. <s:file name="myFile" label="MyFile" ></s:file>11. <s:textfield name="caption" label="Caption"></s:textfield>12. <s:submit label="提交"></s:submit>13. </s:form>14. </body>15.</html>2.ShowUpload.jsp的功能清单如下:Java代码1.<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>2.<%@ taglib prefix="s" uri="/struts-tags" %>3.<html>4. <head>5. <title>ShowUpload</title>6. </head>7.8. <body>9. <div style ="padding: 3px; border: solid 1px #cccccc; text-align: center" >10. <img src ='UploadImages/<s:property value ="imageFileName"/> '/>11. <br />12. <s:property value ="caption"/>13. </div >14. </body>15.</html>3.FileUploadAction.java的代码清单如下:Java代码1.package com.chris;2.3.import java.io.*;4.import java.util.Date;5.6.import org.apache.struts2.ServletActionContext;7.8.9.import com.opensymphony.xwork2.ActionSupport;10.11.public class FileUploadAction extends ActionSupport{12.13. private static final long serialVersionUID = 572146812454l;14. private static final int BUFFER_SIZE = 16 * 1024 ;15.16. //注意,文件上传时<s:file/>同时与myFile,myFileContentType,myFileFileName绑定17. //因此同时要提供myFileContentType,myFileFileName的set方式18.19. private File myFile; //上传文件20. private String contentType;//上传文件类型21. private String fileName; //上传文件名22. private String imageFileName;23. private String caption;//文件说明,与页面属性绑定24.25. public void setMyFileContentType(String contentType) {26. System.out.println("contentType : " + contentType);27. this .contentType = contentType;28. }29.30. public void setMyFileFileName(String fileName) {31. System.out.println("FileName : " + fileName);32. this .fileName = fileName;33. }34.35. public void setMyFile(File myFile) {36. this .myFile = myFile;37. }38.39. public String getImageFileName() {40. return imageFileName;41. }42.43. public String getCaption() {44. return caption;45. }46.47. public void setCaption(String caption) {48. this .caption = caption;49. }50.51. private static void copy(File src, File dst) {52. try {53. InputStream in = null ;54. OutputStream out = null ;55. try {56. in = new BufferedInputStream( new FileInputStream(src), BUFFER_SIZE);57. out = new BufferedOutputStream( new FileOutputStream(dst), BUFFER_SIZE);58. byte [] buffer = new byte [BUFFER_SIZE];59. while (in.read(buffer) > 0 ) {60. out.write(buffer);61. }62. } finally {63. if ( null != in) {64. in.close();65. }66. if ( null != out) {67. out.close();68. }69. }70. } catch (Exception e) {71. e.printStackTrace();72. }73. }74.75. private static String getExtention(String fileName) {76. int pos = stIndexOf(".");77. return fileName.substring(pos);78. }79.80.@Override81. public String execute() {82. imageFileName = new Date().getTime() + getExtention(fileName);83. File imageFile = new File(ServletActionContext.getServletContext().getRealPath("/UploadImages" ) + "/" + imageFileN ame);84. copy(myFile, imageFile);85. return SUCCESS;86. }87.}注:现在仅为方便实现Action因此继承ActionSupport,并Overrider execute()方式在struts2中任何一个POJO都能够作为Action4.struts.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8" ?>2.<!DOCTYPE struts PUBLIC3. "-//Apache Software Foundation//DTD Struts Configuration2.0//EN"4. "/dtds/struts-2.0.dtd">5.<struts>6. <package name="example" namespace="/" extends="struts-default">7. <action name="fileUpload" class="com.chris.FileUploadAction">8. <interceptor-ref name="fileUploadStack"/>9. <result>/ShowUpload.jsp</result>10. </action>11. </package>12.</struts>5.web.xml清单如下:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<web-app version="2.4"3. xmlns="java.sun/xml/ns/j2ee"4. xmlns:xsi="/2001/XMLSchema-instance"5. xsi:schemaLocation="java.sun/xml/ns/j2ee6. java.sun/xml/ns/j2ee/web-app_2_4.xsd">7. <filter >8. <filter-name > struts-cleanup </filter-name >9. <filter-class >10. org.apache.struts2.dispatcher.ActionContextCleanUp11. </filter-class >12. </filter >13. <filter-mapping >14. <filter-name > struts-cleanup </filter-name >15. <url-pattern > /* </url-pattern >16. </filter-mapping >17.18. <filter>19. <filter-name>struts2</filter-name>20. <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>21. </filter>22. <filter-mapping>23. <filter-name>struts2</filter-name>24. <url-pattern>/*</url-pattern>25. </filter-mapping>26. <welcome-file-list>27. <welcome-file>Index.jsp</welcome-file>28. </welcome-file-list>29.30.</web-app>。

WebX demo演示

WebX demo演示

CommonHibernateDao. ListByHql(String,int,int,Obje ct)

searchProductList(final List keywords)
CommonJdbcDao. ListBySql(String)
业务层
特别说明:Service层我们不再继续使用Webx 特别说明:Service层我们不再继续使用Webx Core 层我们不再继续使用 提供的Service支持,而是专注于业务逻辑, Service支持 提供的Service支持,而是专注于业务逻辑,同时 该层展示了如何使用dozer完成VO DO的相互转换 dozer完成VO、 的相互转换。 该层展示了如何使用dozer完成VO、DO的相互转换。
delete(D) ListByField(String,Object, int,int)
CustomerDaoHibernateImpl
getAccount(String accountId)
saveAccount(Account account) updateAccount(Account account) deleteAccount(Account account)
演示范围、 演示范围、目标
演示如何解决输入框页面数据无法暂存问题 演示如何使用extremecomponents展示列表 展示列表 演示如何使用 演示如何VO与DO之间的相互转化 与 演示如何 之间的相互转化 演示如何使用缓存技术 演示如何测试struts action 演示如何测试 演示如何使用validation验证技术 验证技术 演示如何使用 演示如何使用Spring Security(Acegi)安全技术 演示如何使用 ( )
表示层

基于WEB的停车场管理系统设计和实现之欧阳数创编

基于WEB的停车场管理系统设计和实现之欧阳数创编

2009 届毕业论文(设计)基于WEB的停车场管理系统的论文(设计)题目设计和实现院系名称计算机科学与技术系专业(班级)计算机科学与技术2005级本科1班姓名(学号)段景辉(0510101005)指导教师李正茂系负责人袁暋二O O九年五月三十日摘要随着现代社会的快速发展,人民生活水平快速提高,汽车的数量飞速增加,与此同时停车问题也越来越受到人们的关注,为了实现对停车场进行有效的管理,结合一些停车场的模式和现状开发出本停车场管理系统。

停车场管理系统是典型的信息管理系统,本停车场管理系统设计的主要功能包括场内车辆管理和后台数据库管理,其中场内车辆管理又分为出入场管理模块、收费模块、用户管理模块、停车场参数、停车场数据管理模块、系统管理模块等。

我们从系统的设计和功能实现方面阐述了管理系统软件的开发过程。

系统采用了B/S架构,Tomcat6.0作为运行服务器,基于J2EE标准、JSP技术利用Hibernate3.1和Struts1.2框架作为开发工具,MyEclipse6.0开发环境,数据库采用Microsoft SQL Server 2000。

开发过程利用MVC开发模式,层次分明。

成功实现了该系统。

试运行结果表明,该系统具有良好的性能和扩展性,较高的响应速度和效率,该系统符合实际的停车场管理系统,为停车场管理供一个快速,简单规范的管理平台。

这对提高信息化程度,降低人力成本有着重要的意义。

关键词:停车场管理系统,J2EE,Hibernate3.1,Struts1.2AbstractWith the rapid development of modern society, people's living standards improve and the number of vehicles increases rapidly. People pay more attention to parking problems at the same time. In order to manage the parking lots more efficiently, we have developed a Parking Management System, with some modes and the actuality of present parking lots considered.Parking Management System is typically one of the information management systems. The main functions in the Parking Management System include vehicle management and background database management, and vehicle management is divided into the passing in and out module, the charging module, the user management module, the parking parameters, parking data management module, and the system management module. We discussed the management systems development process from the system design and function of the realization in the Papers.Tomcat6.0 as a running server is used in this system on thebasis of B/S structure. Based on J2EE standards, JSP technology as development tools which is taken advantage of Hibernate3.1 and Struts1.2 framework and MyEclipse6.0 as development environment are applied in the system. Microsoft SQL Server 2000 is used as background database. We develop the use of MVC pattern in development process. Test results show that the system has good performance and scalability, high response speed and efficiency which is in line with the actual park management system and can provide a fast, simple and standardized management platform. It is important to improve the information level and reduce labor costs.Keywords:p arking management system,J2EE,Hibernate3.x, Struts1.2目录第一章绪论1.1选题背景近年来,随着我国经济的快速发展,人们生活水平的不断提高,物质需求和生活方式也发生着深刻的变化,以前属于奢侈品的汽车己经逐步走入了市民的日常生活。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编写了一个简单的上传例子供大家参考packagecomdhcc.struts.action;importjava.io.FileOutputStream;importjava.io.IOException;importjavax.servlet.ServletContext;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importorg.apache.struts.upload.FormFile;importcomdhcc.struts.form.FileForm;public class FileAction extends Action {publicActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { FileFormfileForm = (FileForm) form;FormFile file=fileForm.getMyfile();/*String type=file.getContentType();String name=file.getFileName();int size=file.getFileSize();*///将上传的文件放到服务器中FileOutputStreamfos=null;try {byte[] data=file.getFileData();ServletContextapplication=this.getServlet().getServletContext();String realPath=application.getRealPath("/Files/");String fileName=file.getFileName();fos=new FileOutputStream(realPath+"/"+fileName);fos.write(data);fos.flush();System.out.println("上传成功至"+realPath+"/"+fileName);} catch (Exception e) {e.printStackTrace();}finally{try {fos.close();} catch (IOException e) {e.printStackTrace();}}return null;}}/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl*/packagecomdhcc.struts.form;importjavax.servlet.http.HttpServletRequest; importorg.apache.struts.action.ActionErrors; importorg.apache.struts.action.ActionForm; importorg.apache.struts.action.ActionMapping; importorg.apache.struts.upload.FormFile;public class FileForm extends ActionForm {privateFormFilemyfile;publicActionErrors validate(ActionMapping mapping,HttpServletRequest request) {return null;}public void reset(ActionMapping mapping, HttpServletRequest request) {// TODO Auto-generated method stub}publicFormFilegetMyfile() {returnmyfile;}public void setMyfile(FormFilemyfile) {this.myfile = myfile;}}<%@page language="java"pageEncoding="gbk"%><%@taglib uri="/tags-bean"prefix="bean"%> <%@taglib uri="/tags-html"prefix="html"%> <%@taglib uri="/tags-logic"prefix="logic"%> <%@taglib uri="/tags-tiles"prefix="tiles"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN"><html:html lang="true"><head><html:base/><title>file.jsp</title><meta http-equiv="pragma"content="no-cache"><meta http-equiv="cache-control"content="no-cache"><meta http-equiv="expires"content="0"><meta http-equiv="keywords"content="keyword1,keyword2,keyword3"><meta http-equiv="description"content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body>这是一个文件上传的例子<br/><html:form action="/file"method="post"enctype="multipart/form-data "acceptCharset="utf-8"><html:file property="myfile">浏览</html:file><br/><html:submit value="上传"></html:submit></html:form></body></html:html><?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC"-//Apache Software Foundation//DTD Struts Configuration1.2//EN""/dtds/struts-config_1_2.dtd"><struts-config><data-sources/><form-beans><form-bean name="fileForm"type="comdhcc.struts.form.FileForm"/></form-beans><global-exceptions/><global-forwards/><action-mappings><actionattribute="fileForm"input="/file.jsp"name="fileForm"path="/file"scope="request"type="comdhcc.struts.action.FileAction"></action></action-mappings><message-resources parameter="comdhcc.struts.ApplicationResources"/></struts-config><?xml version="1.0"encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="http://ww /2001/XMLSchema-instance"version="2.5"xsi:schemaLocation="htt p:///xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd"><servlet><servlet-name>action</servlet-name><servlet-class>org.apache.struts.action.ActionServlet</servlet-class> <init-param><param-name>config</param-name><param-value>/WEB-INF/struts-config.xml</param-value></init-param><init-param><param-name>debug</param-name><param-value>3</param-value></init-param><init-param><param-name>detail</param-name><param-value>3</param-value></init-param><load-on-startup>0</load-on-startup></servlet><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></web-app>。

相关文档
最新文档