struts框架的使用

1.简单的struts框架使用,在eclipse下新建一个动态web项目,整体目录如下:



2.导入包

   新建外部jar库,统一管理jar包

1.窗口->首选项->java->构建路径->用户库->新建->添加外部jar

构建路径,添加用户库

2.属性->java构建路径->添加库->用户库->选择需要的包

设置发布项目的时间将jar文件添加在web-INF下的lib文件

3.属性->developmentAssembly->选择

3.三层结构:po(视图层),dao(daoim)数据访问层,service(serviceImp),servlet业务逻辑层,业务逻辑层访问数据访问层

4.数据库连接池,在服务器上的context.xml中添加数据库配置信息

   <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver"

       maxActive="500" maxIdle="30"   maxWait="10000"name="jdbc/gwfxsys"

       password="chen123" type="javax.sql.DataSource"

       url="jdbc:mysql://localhost:3306/gwfxsys"username="root"/>

编写dao层:

public classBaseDao {

 

   //定义数据库连接对象

   private Connection  connection=null;

   //定义参数化的执行对象

   private PreparedStatement pment=null;

   //定义过程化的执行对象

   private CallableStatement cment=null;

   //定义一个结果集对象

   private ResultSet rs=null;

  

   public BaseDao(){

   }

  

   /**

    * 获取连接

    */

   public void getConnection(){

      try{

         //从数据库连接池获取连接

         Contextcxt=new InitialContext();

         DataSourceds=(DataSource) cxt.lookup("java:comp/env/jdbc/oneDB");

         connection=ds.getConnection();

      }catch(Exception e){

         e.printStackTrace();

      }

   }

  

   /**

    * 关闭数据库连接

    */

   public void closeAllObject(){

      //新建顺序反过来

      try{

         if(rs!=null){

            rs.close();

         }

         if(pment!=null){

            pment.close();

         }

         if(cment!=null){

            cment.close();

         }

         if(connection!=null){

            connection.close();

         }

      }catch(Exception e){

         e.printStackTrace();

      }

   }

  

   /**

    * 执行updateinsert,delete语句时使用,返回受影响的行数

    * @param sSql

    * @param oParams

    * @return

    */

   public int getNonQuery(String sSql,Object[] oParams){

      int iNonQuery=0;

      getConnection();

      try{

         pment=connection.prepareStatement(sSql);

            if(oParams!=null&&oParams.length!=0){

              for(int i=0;i<oParams.length;i++){

                 pment.setObject((i+1),oParams[i]);

              } 

            }

            iNonQuery=pment.executeUpdate();

      }catch(Exception e){

         e.printStackTrace();

      }finally {

         closeAllObject();

      }

      return iNonQuery;

   }

  

   /**

    * 获取查询数据集

    * @param sSql

    * @param oParams

    * @return

    */

   public ResultSetgetResultSet(String sSql,Object[]oParams){

       rs=null;

       getConnection();

       try{

          pment=connection.prepareStatement(sSql);

          if(oParams!=null&&oParams.length!=0){

                 for(int i=0;i<oParams.length;i++){

                    pment.setObject((i+1),oParams[i]);

                 } 

               }

               rs=pment.executeQuery();

         }catch(Exception e){

            e.printStackTrace();

         }finally {

            closeAllObject();

         }

       return rs;

       

   }

  

}

Struts开发步骤:

1、      导入Struts需要的包,步骤如上导包统一管理

2、      在web.xml中添加Struts核心处理类

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

3、      编写control的action层

   package com.action;

importjavax.servlet.http.HttpServletRequest;

importorg.apache.struts2.interceptor.ServletRequestAware;

importcom.opensymphony.xwork2.ActionContext;

importcom.opensymphony.xwork2.ActionSupport;

importcom.opensymphony.xwork2.ModelDriven;

import com.po.User;

importcom.service.IUserService;

importcom.service.imp.UserService;

publicclass LoginAction extends ActionSupport implements ModelDriven<User> ,ServletRequestAware {

       private static final longserialVersionUID = 1L;

       private User user=new User();

       private HttpServletRequest request;

       private String sUserName;

       private String sPassWord;

      

       @Override

       public User getModel() {

                 // TODO 自动生成的方法存根

                 return user;

       }

      

       @Override

       public String execute() throws Exception{

                 // TODO 自动生成的方法存根

                 User flag=null;

                

                 User user=new User(sUserName,sPassWord);

                 IUserService userService=newUserService();

                 flag=userService.findUserByLogin(user);

                 if(flag!=null){

                          ActionContextcontext=ActionContext.getContext();

                          context.getSession().put("user",user);

                          return "ok";

                 }

                 else{

                

                 return INPUT;

                

                 }

       }

      

    //重写炎症

       @Override

       public void validate() {

                 // TODO 自动生成的方法存根

                

                 sUserName=request.getParameter("username");

                 sPassWord=request.getParameter("password");

                

                 if(null==sUserName||""==sUserName)

                 {

                          this.addFieldError("username","null is not allow!");

                 }

                 if(null==sPassWord||""==sPassWord)

                 {

                          this.addFieldError("password","null is not allow!");

                 }

                

                

       }

       @Override

       public voidsetServletRequest(HttpServletRequest arg0) {

                 // TODO 自动生成的方法存根

                 request=arg0;

       }

}

4.编写Struts的配置文件(struts.xml的命名一定,否则会爆找不到的文件错误

struts.xml文件内容:

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

<!DOCTYPE struts PUBLIC

   "-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN"

   "http://struts.apache.org/dtds/struts-2.3.dtd">

 

<struts>

 

   <constant name="struts.enable.DynamicMethodInvocation"value="false" />

   <constant name="struts.devMode" value="true" />

   <include file="structs_cfg.xml"/>

   

   

</struts>

 

structs_cfg.xml文件内容:

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

<!DOCTYPE struts PUBLIC

   "-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN"

   "http://struts.apache.org/dtds/struts-2.3.dtd">

 

<struts>

 <package name="name" namespace="/"extends="struts-default">

    <action name="loginAction" class="com.action.LoginAction">

         <result name="ok">welcome.jsp</result>

         <result name="input">error.jsp</result>

    </action>

 </package>

 

</struts>



注意:Struts的配置文件名一定是struts.xml

  


猜你喜欢

转载自blog.csdn.net/hzs33/article/details/51591565