【Struts2】查询Student表

注:之前的一篇博客【JDBC】查询Student表是用纯JSP实现的,现在将Struts2引入其中。Eclipse、MySQL、Struts2。

简介

  Struts1是最早的基于MVC模式的轻量级Web框架,Struts2是Struts1的下一代产品,解决了Struts1存在的一些问题。Struts2是在Struts1和WebWork技术的基础上合并出来的一个全新的MVC框架,其设计思想与Struts1有很大的差别。

实例

1、创建Web项目
2、添加Struts2相应jar包

  Struts2的jar包可以从官网(http://struts.apache.org/)下载,lib目录下包括Struts2的所有jar包。通常在项目的WEB-INF/lib目录下添加几个常用的jar包即可,本实例中用到的jar包可单击下载

3、配置Struts2的核心过滤器

  在Web.xml中添加如下代码。

<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>
4、定义处理用户请求的Action类

  这里添加一个SelectAction类,具有一个sno属性,具体代码如下:

public class SelectAction extends ActionSupport{

    String url = "jdbc:mysql://127.0.0.1:3306/dbname";

    private String sno;
    public String getSno() {
        return sno;
    }
    public void setSno(String sno) {
        this.sno = sno;
    }

    public String execute() throws Exception{
        Class.forName("com.mysql.jdbc.Driver");
        //与数据库建立连接
        Connection conn = DriverManager.getConnection(url,"root","jujianfei");
        //创建Statement对象,用于执行SQL语句
        Statement sm = conn.createStatement();
        //执行一个SQL Select语句
        ResultSet rs = sm.executeQuery("select Sno from student where Sname = '王小波'");
        if(rs.next()){
            this.setSno(rs.getString("Sno"));
            return SUCCESS;
        }
        else{
            return ERROR;
        }
    }
}
5、编写Struts2的配置文件

  在src目录下新建一个名称为struts.xml文件,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 指定Struts2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- Struts2配置文件的根元素 -->
<struts>
    <!-- Struts2的Action必须放在指定的包空间下定义 -->
    <package name="hello" namespace = "/" extends ="struts-default" >
        <!-- 定义action,该action对应的类为cn.jujianfei.action.SelectAction.java -->
        <action name = "select"  class ="cn.jujianfei.action.SelectAction">
            <!-- 定义处理结果和视图资源之间的映射关系 -->
            <result name="success" >/success.jsp</result>
        </action>
    </package>
</struts>
6、创建视图文件

  在WebContent目录下创建一个index.jsp页面,在其中编写一个超链接,用于访问Action对象,此链接指向的地址为select.action,核心代码如下:

<body>
    <h1>Welcome to struts2!</h1>
    <a href="${pageContext.request.contextPath}/select.action" >select</a>
</body>

  最后在WebContent下再创建一个名为success.jsp的文件,作为Action对象处理成功后返回的页面,核心代码如下:

<body>
    //用EL表达式获取从数据库读出的学号
    Sno为:${sno}
</body>

结语

  作为一个优秀的开源的MVC框架,其重点实现了两部分:业务逻辑控制器和视图页面。控制器主要有Action来提供支持,而视图则是由大量的标签来提供支持。Struts2的拦截器机制是其核心组成部分,数据校验、转换器、国际化等功能都可由拦截器来实现。另外,为了方便统一管理数据,Struts2引入了值栈的概念,使用OGNL表达式可简化数据的访问操作,方便了前后台数据的交互。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值