`
zhangcong170
  • 浏览: 69738 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

struts2初体验

    博客分类:
  • j2ee
阅读更多

      学struts2也有那么一阵子了,感觉还不错。同struts1.x相比较起来,struts2要方便得多。从配置上来看,struts2的页面明显要简洁一些。在struts1.x中,每一个jsp页面,对应于一个Form表单,转到后台去处理,就得对应于一个form和一个actionForm,form主要对应表单的每个属性,以及get和set方法,还可以使用validate进行验证,但我们更多的,是采用验证框架去处理,struts1.x的验证框架总感觉比较复杂,需要一些正则表达式方面的知识。而struts2则没有对应的form和actionForm,它把两个东西合在一块了,只有一个action,换句话说,一个页面表单提交过来的数据,对应于一个form,这样感觉更"像"mvc一点,思路也很清晰。下面给出一个struts2入门级的例子。

注:开发工具为myEclipse

 

login.jsp

 

<%@ page language="java"  pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>login</title>
  </head>
  <body>
    <form action="login.action" method="post">
    username:<input type="text" name="username"> <br>
    password:<input type="password" name="password"><br>
    <input type="submit" value="submit">
    <input type="reset" value="reset">
    </form>
  </body>
</html>

 

LoginAction.java

package action;

import com.opensymphony.xwork2.ActionSupport;


public class LoginAction extends ActionSupport{
    private String username;
    private String password;
   
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 //在struts2中,execute()方法是自动执行的
 public String execute() throws Exception{
  if("zc".equals(this.getUsername().trim())&&"123".equals(this.getPassword().trim())){
    return "success";
  }else{
     /*系统默认的页面是input,也就是login.jsp,可以参看后面的struts.xml配置, 如果用户名和密码输入错误,则返回原来的页面,并给出错误提示*/
   this.addFieldError("username","username or password is not correct");
   return "input"; 
  }
 }
 
 public void validate(){
  if("".equals(this.getUsername())||null==this.getUsername().trim()){
   this.addFieldError("username","username can not be null");
  }
  if("".equals(this.getPassword())||null==this.getPassword().trim()){
   this.addFieldError("password","password can not be null");
  }
  
 }
}

 

result.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
 <head>
  <title>result</title>
 </head>
 <body>
  <%=request.getParameter("username")%><br>
  <%=request.getParameter("password")%>
 </body>
</html>

 

 

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
 <package name="struts2" extends="struts-default">
   <action name="login" class="action.LoginAction">
      <result name="success">/result.jsp</result><!-- 页面验证成功,跳转到result.jsp-->
     <result name="input">/login.jsp</result><!-- 页面验证失败,返回到login.jsp-->
  </action>

 </package>

</struts>

 

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

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

整个程序的页面逻辑非常简单,用户从login.jsp登陆,如果用户名不是zc 或密码不是123,则系统返回login.jsp并给出错误信息。呵呵,算是我的第一个struts2程序吧。

 

PS:本人刚刚学struts2不久,可能上面的认识有误,欢迎朋友们指正!加油!

 

0
0
分享到:
评论
3 楼 zhangcong170 2008-11-04  
alvase 写道

感觉struts2比struts1改进最大的地方是在action中不用传递一大堆servlet相关的参数了,相当于每一个action都是一个POJO。而相应的参数有拦截器完成。这比较类似于WebWork。

struts2本身就是基于webwork
2 楼 alvase 2008-11-03  
感觉struts2比struts1改进最大的地方是在action中不用传递一大堆servlet相关的参数了,相当于每一个action都是一个POJO。而相应的参数有拦截器完成。这比较类似于WebWork。
1 楼 yeowin 2008-10-31  
有总结自己学过的东西的意识,聪哥太犀利啦,,,

相关推荐

    Struts 2初体验

    Struts 2初体验 PPT课程说明 第一步:加载Struts2 类库 第二步:配置web.xml 第三步:开发视图层页面 ...

    Struts 2 第二章 Struts 2 初体验

    Struts 2 第二章 Struts 2 初体验。pdf课件

    struts2初体验(附视频)

    视频第二部分 下载视频前请看博客详细 博文链接:https://dlivan.iteye.com/blog/65619

    java从入门到精通70个PPT

    32 Struts 2初体验 33 Struts 2配置详解 34 Struts 2深入 拦截器 35 Struts 2综合应用 36 类型转换和OGNL 37-40 项目案例:在线投票系统 41 jsp servlet struts总结 42 Hibernate 入门 43 Hibernate 关联映射 44 HQL...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    Eclipse开发入门与项目实践 源代码

    2.1 Java项目开发初体验 11 2.1.1 新建Java项目 12 2.1.2 导入外部Java类 16 案例2-1 随机抽奖程序的实现 18 2.1.3 打开及关闭已有Java项目 22 2.2 Eclipse中编写Java程序的技巧 24 2.2.1 新建Java类 ...

    my-first-maven.7z

    maven初体验源码,包含web.xml,pom.xml,struts2文件等,欢迎大家免费下载,一起讨论并进步。

    SSH相关整合的总要资料

    SSH初体验 1 什么是SSH 都说Y2学年J2EE方向的学习重点是SSH框架的掌握。那么什么是SSH呢?是否真的开发J2EE大型框架很难呢?今天我们将通过一个实例,在常用IDE—Eclipse3.2.2+MyEclipse5.5.1+Tomcat6.0的基础之上给...

    网络安全培训方案.docx

    模拟http请求 4.http和https协议区别 第二节:截取HTTP请求 1.burpsuit初体验 2.fiddler介绍 3.winsocke*pert实验 第三节:HTTP应用:黑帽SEO之搜索引擎劫持 第二天 信息刺探 第一节:googlehack 1.搜集子域名 2....

    Web安全深度剖析(张柄帅)

    2.2.1 Burp Suite Proxy 初体验 15 2.2.2 Fiddler 19 2.2.3 WinSock Expert 24 2.3 HTTP应用:黑帽SEO之搜索引擎劫持 24 2.4 小结 25 第3章 信息探测 26 3.1 Google Hack 26 3.1.1 搜集子域名 26 3.1.2 搜集Web信息 ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。 WebStorage HTML新增的本地存储解决...

Global site tag (gtag.js) - Google Analytics