欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Struts2实例教程.docx

    • 资源ID:13874823       资源大小:181.38KB        全文页数:69页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Struts2实例教程.docx

    1、Struts2实例教程Struts2实例教程(上)一、 经典的MVC模式二、 Struts1.x对MVC的实现三、 Struts1.x的主要组件和作用组件作用ActionServlet中央控制器Action分控制器,调用JavaBean实现业务逻辑,Action可以分为Action、DispatchAction等不同类型ActionForm封装参数,实现服务器验证,文件上传等Forward转发到目的地,可以是JSP,也可以是另一个ActionStruts-config.xml配置文件,配置有ActionForm,Action,Forward等,通过XML解析,然后使用反射技术使用该文件Stru

    2、ts标签库和JSTL类似,和Struts-config.xml、ActionForm、Action等对象可以紧密集成四、 Struts1.x 开发实例-登录程序见案例。五、 Struts2(WebWork)的MVC Struts2的MVC架构六、 Struts2的主要组件组件作用FilterDispatcher起中央控制器作用的过滤器Action处于Model层的Action,调用JavaBean实现业务逻辑struts.xml核心配置文件,配置有Action、Result等result和forward类似,转发的目的地,支持多种视图技术。七、 Struts2的实例-登录在MyEclipse环

    3、境中建立一个新的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

    4、 class UserAction extends ActionSupport private String username; private String userpass; public String getUsername() return username; public void setUsername(String username) this.username = username; public String getUserpass() return userpass; public void setUserpass(String userpass) this.userpas

    5、s = userpass; Override public String execute() throws Exception if (Mike.equals(username) & 123.equals(userpass) | 张三.equals(username) & abc.equals(userpass) return success; else return error; 在src目录下建立Struts2的配置文件struts.xml,内容如下: /Success.jsp /Error.jsp 修改web.xml,在其中加入一个过滤器,过滤/*路径。struts2org.apache

    6、.struts2.dispatcher.FilterDispatcher struts2 /* 在webroot目录下编写3个jsp页面,index.jsp、Success.jsp和Error.jsp,注意这里把page指令中的pageEncoding设置为“utf-8”,就没有中文问题了。 index.jsp base href= My JSP index.jsp starting page 用户名: 密  码: Success.jsp base href= My JSP Success.jsp starting page 欢迎 ,登录 Error.jsp base hr

    7、ef= My JSP Error.jsp starting page 用户名或密码错误! 把程序部署在tomcat5.5以上的版本中运行。图1-2 index.jsp图1-3 Success.jsp八、 Struts2的中文乱码解决中文乱码问题一般是指当请求参数有中文时,无法在Action中得到正确的中文。Struts2中有2种办法可以解决这个问题: 设置JSP页面的pageEncoding=”utf-8”,就不会出现中文乱码; 如果JSP页面的pageEncoding=”GBK”,那么需要修改struts.i18n.encoding=GBK,在struts.xml中加入如下语句进行修改。 上

    8、面2种方法可以解决POST请求中的中文参数,但是GET请求中的中文参数不能解决,GET请求中的中文参数的乱码需要通过修改Tomcat的server.xml文件来解决,修改如下内容,加入URIEncoding=”GBK”:九、 Struts2的Action中访问web对象Struts2的Action就是一个普通的POJO对象,它和Web对象request、response、session和application没有耦合在一起,这样便于单独测试Action,那么我们在Action中如何访问这些web对象呢?访问这些web内部对象有2种方式: 直接访问Web对象Struts2框架提供org.apac

    9、he.struts2.ServletActionContext辅助类来获得web对象。HttpServletRequest request = ServletActionContext.getRequest();HttpServletResponse response = ServletActionContext.getResponse();HttpSession session = request.getSession();ServletContext application = ServletActionContext.getServletContext(); Action访问Action

    10、Contextcom.opensymphony.xwork2.ActionContext是一个Action执行的上下文,Action执行期间所用到的对象都保存在ActionContext中,例如session、参数等,并且ActionContext是一个局部线程变量,不用担心Action的线程安全。ActionContext context = ActionContext.getContext();该类的常用方法见表1-3所示:表1-3 ActionContext中的常用方法Object get(Object key)使用key来查找当前ActionContext中的值Map getAppli

    11、cation()返回一个Application范围的Mapstatic ActionContext getContext()获得当前线程的ActionContext实例Map getParameters()Map类型的所有HttpServletRequest的参数Map getSession()Map类型的HttpSession值ValueStack getValueStack()返回一个ValueStack类型OGNL值栈void put(Object key,Object value)向当前ActionContext存入值,等于在HttpServletRequest中加入值void set

    12、Application(Map application)设置application上下文void setSession(Map session)设置session值,参数为Map实例 这种方法使用的所有对象和Web对象没有直接联系,所以在测试的时候也是很方便的,我们推荐在程序中使用此方法来访问web对象。一十、 操作实例 Struts2实现按类别查询图书本案例的工程文件结构如图1-7所示,文件说明见表1-4所示:图1-7 案例的工程文件结构表1-4 案例的文件说明文件名说明BookAction.javaStrut2的ActionDbConn.java数据库连接类BookOper.java数据库

    13、查询类Book.java数据对象类struts.xmlStruts2的action配置文件web.xmlWeb应用配置文件,Struts2框架在其中配置了Filterbooklist.jsp显示查询结果页面Index.jsp输入书籍类别的页面1. 生成一个web project,名称为“Struts2按类别查询图书”,指定存放路径为f: Struts2按类别查询图书;2. 生成Model层的JavaBean; 数据库连接类DbConn.javapackage db;import java.sql.Connection;import java.sql.DriverManager;import j

    14、ava.sql.SQLException;public class DbConn public static Connection getConn() Connection conn = null; try Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); conn = DriverManager.getConnection( jdbc:sqlserver:/localhost:1433;databasename=pubs, sa, ); catch (ClassNotFoundException e) / TODO Au

    15、to-generated catch block e.printStackTrace(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); return conn; 数据库查询类BookOper.javapackage oper;import java.sql.Connection;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import po.Book;public clas

    16、s BookOper public List selectByType(String type) Connection conn = db.DbConn.getConn(); java.sql.PreparedStatement pstmt = null; java.sql.ResultSet rs = null; List data = new ArrayList(); try pstmt = conn .prepareStatement(select title_id,title,type,price from titles where type=?); pstmt.setString(1

    17、, type); rs = pstmt.executeQuery(); while (rs.next() Book book = new Book(); book.setTitleid(rs.getString(1); book.setTitle(rs.getString(2); book.setType(rs.getString(3); book.setPrice(rs.getFloat(4); data.add(book); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); final

    18、ly if (rs != null) try rs.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); if (pstmt != null) try pstmt.close(); catch (SQLException e) / TODO Auto-generated catch block e.printStackTrace(); if (conn != null) try conn.close(); catch (SQLException e) / TODO Auto-

    19、generated catch block e.printStackTrace(); return data; 数据持久化类Book.javapackage po;/图书的数据类public class Book private String titleid; private String title; private String type; private float price; public float getPrice() return price; public void setPrice(float price) this.price = price; public String

    20、 getTitle() return title; public void setTitle(String title) this.title = title; public String getTitleid() return titleid; public void setTitleid(String titleid) this.titleid = titleid; public String getType() return type; public void setType(String type) this.type = type; 3. 生成Struts2的Action对象,在sr

    21、c目录中编写action的配置文件struts.xml; BookAction.javapackage action;import oper.BookOper;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class BookAction extends ActionSupport private String type; /书类型 private BookOper bo = new BookOper(); /查询类 public String getType() return type; public void setType(String type) this.type = type; Override public String


    注意事项

    本文(Struts2实例教程.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开