- 浏览: 2651983 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
本文采用一个用户注册的例子,起到一个最简单的webwok2上手作用
用到的类:
Domain Object : User 类
Action Object :RegisterAction 类
用到的页面:
register .jsp
success.jsp
一.在webwork官网(http://www.opensymphony.com/webwork/download.action)下载最新的webwork版本,当前最新为webwork-2.2.4
把\webwork-2.2.4.jar文件解压出来之后,你会看到以下几个目录:
你需要把webwork-2.2.4.jar和lib目录下面的default 文件夹所有的 jar 文件拷贝到web工程的 WEB-INF 下面的lib目录中
需要配置web.xml文件如下:
- <!---->xml version="1.0" encoding="ISO-8859-1"?>
- "http://java.sun.com/dtd/web-app_2_3.dtd">
- <web-app>
- <display-name>Acme Corpdisplay-name>
- <filter>
- <filter-name>webworkfilter-name>
- <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcher
- filter-class>
- filter>
- <filter-mapping>
- <filter-name>webworkfilter-name>
- <url-pattern>/*url-pattern>
- filter-mapping>
- web-app>
其中:
- <filter>
- <filter-name>webworkfilter-name>
- <filter-class>com.opensymphony.webwork.dispatcher.FilterDispatcherfilter-class>
- filter>
表示:定义过滤器
- <filter-mapping>
- <filter-name>webworkfilter-name>
- <url-pattern>/*url-pattern>
- filter-mapping>
表示:定义过滤器映射 (和servelt的培)
webwork会用filter过滤器来做前端分发器的工作,所有action指令都会通过它来转发,所以这里不要写错,以后这里是不会变的!
eclispse 下 web项目的结构如下:
再次提醒把前面的 jar文件放在 WEB-INF 下面的lib目录中,src目录下的xwork.xml是webwork的配置文件,后面会讲到
register.jsp页面:
- <%@taglib prefix="ww" uri="/webwork"%>
- <html>
- <body>
- <form action="register.action" name="register" method="post">
- username:<input type="text" name="user.username"><br>
- password:<input type="password" name="user.password"><br>
- <input type="submit" value="submit">
- form>
- body>
- html>
第一步:导入webwork的标签库 (然后不要马上写代码, 先按 Alt + / ,看eclipse 有没有出现 ww的标签帮助提示,如果没有出现说明你配置出错了,检查jar文件是否拷贝在lib文件夹里面没有)
第二步: 注意 表单 form 的action 为 register.action , 这个不能写错.前端控制器需要根据这个名字来匹配正确的action
第三步:注意 input 的name必须是 user.username ,user.password 形式, 可以理解成:user代表对象,username,passwrod 是user 对象的属性,
下面是Domain Object (域对象) User,说白了就是JavaBean
- package mypackage;
- public class User {
- private String username;
- private String password;
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- }
最后一段Java 代码,也是webwork的核心:Action
- package mypackage;
- import com.opensymphony.xwork.Action;
- public class RegisterAction implements Action {
- private User user = new User();
- public String execute() throws Exception {
- System.out.println("begin execute!......");
- return SUCCESS;
- }
- public User getUser() {
- return user;
- }
- }
每个用户自己定义的Action都必须实现 com.opensymphony.xwork.Action的方法execute
可能你很奇怪Action里面居然没有HttpServletRequest,HttpServletRespone这些东东.这就webwork的好处,你不需要自己去处理和Servlet有关的东西,webwork已经通过拦截器技术把诸如从页面获取参数这些功能给你在后面做好了!你只需要写一个getUser()方法让返回页面也能得到user对象.
注意:这里 的user 是不是和前面register.jsp页面里面的user.username,有某种关联呢?
对头!,前面的user.username就用这里的user,
execute 相当于Servlet 的service 方法 ,在这里面可以调用业务层里面的服务,如果因为某种原因(比如权限验证)失败了,可以
return INPUT;表示返回请求页面,这里就直接返回SUCCESS;
最后一个配置xwork.xml
请看前面的eclipse工程结构截图,xwork.xml 文件应该放在classpath 根目录下面,也就src根目录下.
这里只需要注意
- <action name="register" class="mypackage.RegisterAction">
里面的register
它对应的class 名字就是我们自己写的类:mypackage.RegisterAction,
实际上,webwok帮我们把一个请求的字符串(register)映射成一个Action Object了,然后由我们的Action Object 来处理这次请求!
- <interceptor-ref name="params"/>
这里引用的就是前面提到的拦截器技术,它帮我们在后台提供了获得请求页面参数的功能.webwork还提供了其他的拦截器,你自己也可以定义自己的拦截器
success.jsp:
- <%@taglib prefix="ww" uri="/webwork"%>
- <p>welcome to you !p>
- username:<ww:property value="user.username"/><br>
- password:<ww:property value="user.password"/><br>
页面效果:
register.jsp
success.jsp
至此你已经成功搭建起一个webwork工程,后面还有很多要学
验证
拦截器
value stack
和spirng集成
webwork测试
发表评论
-
JFace Text Editor完全掌握之终极指南(4)
2009-09-01 18:15 0错误标识(Error Marking) Error Marki ... -
clipse
2009-09-01 15:19 0JFace Text Editor是JFace里面一个功能强大 ... -
webwork2入门(二.2)
2007-03-22 11:41 3142在web应用经常需要要对用户提交的表单进行验证 webwork ... -
webwork2入门(二.1)
2007-03-21 17:43 3203这一节,我们要掌握的东西 webwork操作session w ... -
webwork2的测试
2007-03-15 14:26 3295webwork2分为webwork和xwork,通过webwo ...
相关推荐
总的来说,“webwork2入门例子”是一个很好的起点,通过实际操作和研究这个例子,你可以逐步熟悉WebWork2的架构和工作原理,为今后的Web开发打下坚实的基础。在实践中,不断尝试、调试和学习,你会发现WebWork2是一...
2. **WebWork入门** - **框架起源**:WebWork是Struts2的前身,它的许多理念和设计被Struts2采纳。WebWork引入了拦截器、类型转换、数据绑定等概念,显著提升了开发效率。 - **Action与ActionForm**:在WebWork中...
本篇将围绕"WebWork入门学习"这一主题,深入讲解WebWork的核心概念、基本架构以及如何使用WebWork进行Web项目开发。 一、WebWork简介 WebWork由Apache软件基金会维护,其设计理念是通过减少样板代码和提供强大的...
本指南将深入探讨WebWork2的基础知识、快速入门方法以及高级特性,以帮助开发者更好地理解和应用这一框架。 一、WebWork2基础知识 1. MVC模式:WebWork2遵循MVC设计模式,其中模型(Model)负责处理业务逻辑,视图...
这个"WebWork入门教程[创建你第一个WebWork action]"将引导你了解如何利用WebWork来构建动态的Web应用程序。让我们深入探讨WebWork的核心概念、Action的创建以及如何实现基本的流程控制。 **WebWork核心概念** 1. ...
2. **执行转换**:一旦找到合适的TypeConverter,WebWork就会调用其`convertValue()`方法进行转换。这个方法接受一个原始值和目标类型,然后返回转换后的值。 3. **错误处理**:如果转换过程中出现错误,WebWork会...
**WebWork 2.2 入门指南** WebWork 是一款基于 Java 的开源 Web 应用框架,它在 MVC(模型-视图-控制器)架构上构建,为开发者提供了强大的功能,包括动作映射、数据绑定、异常处理等。本文将深入浅出地介绍如何...
以上是WebWork入门的基本内容,涵盖了WebWork的核心概念、安装、动作、ActionContext以及请求处理机制。继续深入学习,你可以探索更多高级特性,如拦截器(Interceptor)、国际化(i18n)、AOP(面向切面编程)等,...
这个“WebWork入门例子 HelloWorld”是为初学者准备的一个简单教程,旨在帮助他们快速理解WebWork框架的基本概念和工作原理。 WebWork的核心特性包括动作映射、数据绑定、拦截器、异常处理和强大的视图渲染。它通过...
《WebWork入门到精通》这一课程由松迪科技(北京)有限公司的田雪松主讲,旨在全面解析WebWork框架,从基础知识到高级应用,帮助学员掌握WebWork的核心技术和实战技巧。 ### WebWork概述 WebWork是一个开源的MVC...
### WebWork2 教程详解 #### 一、引言 WebWork2 是一款轻量级的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在...希望本教程能帮助您快速入门 WebWork2,并在实际项目中灵活运用这些知识。
Webwork2是一款由OpenSymphony组织开发的轻量级Web应用框架,它在MVC(Model-View-Controller)设计模式的基础上提供了丰富的特性和灵活的架构,旨在简化Java Web应用的开发过程。本指南深入解析Webwork2的关键概念...
### WebWork快速入门知识点 #### 一、WebWork框架简介 **WebWork**是一个由OpenSymphony组织开发的Java Web应用框架,它采用MVC(Model-View-Controller)架构模式,强调组件化和代码重用。WebWork的最新版本为2.1...
WebWork入门与精通 WebWork是一个开源项目,由OpenSymphony组织开发,项目创始人是Rickard Oberg。WebWork是一个基于Java的Web应用程序框架,提供了一个灵活的架构,可以帮助开发者快速构建Web应用程序。 WebWork...
《webwork+spring+hibernate入门实例》 在当今的Web开发领域,Spring、Hibernate和WebWork(现称为Struts 2)是三个极为重要的框架。本实例将引导初学者深入理解这三大框架的集成与应用,以及如何与MySQL数据库进行...
Webwork2采用了一种基于Action的驱动模式,每个Action对应一个特定的业务逻辑处理单元。这种模式简化了控制器的职责,使得开发者能够更专注于业务逻辑的实现,而不是框架本身的细节。Action的配置通过配置文件或注解...
- **Action驱动模式**:WebWork2采用了一种基于Action的驱动机制,每一个用户请求都会映射到一个具体的Action上。这种方式简化了应用程序的控制逻辑,并允许开发者更清晰地管理业务流程。 - **XWork拦截器体系**:...
WebWork是由OpenSymphony组织开发的,致力于组件化和代码重用的J2EE Web...WebWork目前最新版本是2.2.2,现在的WebWork2.x前身是Rickard Oberg开发的WebWork,但现在WebWork已经被拆分成了Xwork1和WebWork2两个项目。