侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

struts2入门Demo示例

技术  /  管理员 发布于 7年前   106

本文讲述了struts2入门Demo示例。分享给大家供大家参考。具体如下:

1.新建Web Project, 名称:struts2Demo;

2.建立一个用户库struts2, 包含最少的struts2的最少的6个jar文件;
其实呢, 对于MyEclipse8以上来说, 是不必须的, 因为它直接支持struts2了.不需要另外导包.

3.用Build Path将struts2的库加进来;

4.在web.xml中加入以下配置:

<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >  <!-- struts2的配置 -->   <filter>     <filter-name>struts2</filter-name>     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>   </filter>   <filter-mapping>     <filter-name>struts2</filter-name>     <url-pattern>/*</url-pattern>   </filter-mapping>  <welcome-file-list>     <welcome-file>index.jsp</welcome-file>   </welcome-file-list> </web-app>

5.建立Action

package com.yenange.action; import com.opensymphony.xwork2.Action; public class LoginAction implements Action {   private String uname;  //表单中的姓名   private String upass;  //表单中的密码   //执行方法   @Override   public String execute() throws Exception {     System.out.println("姓名:"+uname);     System.out.println("密码:"+upass);     if (uname.equals("leaf") && upass.equals("leaf")) {       return "success";     }     return "error";   }   //记住, 要有get和set方法   public String getUpass() {     return upass;   }   public void setUpass(String upass) {     this.upass = upass;   }   public String getUname() {     return uname;   }   public void setUname(String uname) {     this.uname = uname;   } }

6.三个页面文件:

index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <html>   <head>     <title>My JSP 'index.jsp' starting page</title>   </head>   <body>     <form action="login">       用户名:<input type="text" name="uname"><br>       密 码:<input type="text" name="upass"><br>       <input type="submit" value="登陆" />     </form>   </body> </html> 

welcome.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <html>   <head>     <title>My JSP 'welcome.jsp' starting page</title>   </head>   <body>     welcome struts2  </body> </html> 

fail.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%> <html>  <head>   <title>My JSP 'welcome.jsp' starting page</title>  </head>  <body> 出错!</body> </html>

7.配置struts.xml. (对于MyEclipse6来说, 只能从别的地方copy)

<?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="default" namespace="/" extends="struts-default">     <action name="login" class="com.yenange.action.LoginAction">       <result name="success">/welcome.jsp</result>       <result name="error">/fail.jsp</result>     </action>   </package>   <!-- Add packages here --> </struts>

8.到此完成.可以运行一下了, 是不是很简单?

下面是取得request, session, application这些东西的方法.

package com.yenange.action; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext; import org.apache.struts2.interceptor.ServletRequestAware; import org.apache.struts2.interceptor.SessionAware; import org.apache.struts2.util.ServletContextAware; import com.opensymphony.xwork2.Action;public class LoginAction implements Action,ServletRequestAware,SessionAware,ServletContextAware {   private String uname;  //表单中的姓名   private String upass;  //表单中的密码   HttpServletRequest request;  //常用的request   Map session;  //常用的session,有不同, 但是不需要管   ServletContext application;    //常用的application   //第二种取的方法;   HttpServletRequest request2 = ServletActionContext.getRequest();   HttpServletResponse response2 = ServletActionContext.getResponse();   HttpSession session2 = request2.getSession();  @Override   public void setServletRequest(HttpServletRequest req) {     this.request=req;   }   @Override   public void setSession(Map session) {     this.session=session;   }   @Override   public void setServletContext(ServletContext application) {     this.application=application;   }   //执行方法   public String execute() throws Exception {     if (uname.equals("leaf") && upass.equals("leaf")) {       request.setAttribute("userName", uname);       return "success";     }     request.setAttribute("accessError", uname+"这个用户或密码不正确!");     return "error";   }   //记住, 要有get和set方法   public String getUpass() {     return upass;   }   public void setUpass(String upass) {     this.upass = upass;   }   public String getUname() {     return uname;   }   public void setUname(String uname) {     this.uname = uname;   } }

这些只是初步了, 后面再学习一些关于标签, 动态方法之类的东西.

希望本文所述对大家的Struts程序设计有所帮助。


  • 上一条:
    简单的手工hibernate程序示例
    下一条:
    struts2的select标签用法实例分析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 2024.07.09日OpenAI将终止对中国等国家和地区API服务(0个评论)
    • 2024/6/9最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 国外服务器实现api.openai.com反代nginx配置(0个评论)
    • 2024/4/28最新免费公益节点SSR/V2ray/Shadowrocket/Clash节点分享|科学上网|免费梯子(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-07
    • 2017-08
    • 2017-09
    • 2018-01
    • 2018-07
    • 2018-08
    • 2018-09
    • 2018-12
    • 2019-01
    • 2019-02
    • 2019-03
    • 2019-04
    • 2019-05
    • 2019-06
    • 2019-07
    • 2019-08
    • 2019-09
    • 2019-10
    • 2019-11
    • 2019-12
    • 2020-01
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-08
    • 2020-09
    • 2020-10
    • 2020-11
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-03
    • 2022-04
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-12
    • 2024-02
    • 2024-04
    • 2024-05
    • 2024-06
    • 2025-02
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客