??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品啪在线观看国产18,久久综合九色,日本一区二区成人http://www.aygfsteel.com/linansengling/category/15124.htmlzh-cnTue, 27 Feb 2007 10:39:09 GMTTue, 27 Feb 2007 10:39:09 GMT60java 实现分页技?Structs+Hibernate+MySQL)http://www.aygfsteel.com/linansengling/archive/2006/09/21/70960.html周先?/dc:creator>周先?/author>Wed, 20 Sep 2006 16:42:00 GMThttp://www.aygfsteel.com/linansengling/archive/2006/09/21/70960.htmlhttp://www.aygfsteel.com/linansengling/comments/70960.htmlhttp://www.aygfsteel.com/linansengling/archive/2006/09/21/70960.html#Feedback20http://www.aygfsteel.com/linansengling/comments/commentRss/70960.htmlhttp://www.aygfsteel.com/linansengling/services/trackbacks/70960.html    通过Structs+Hibernate+MySQL数据数来实现分页技术的应用. 
   
   源程序下?/a>
   至于Hibernate, Structs, MySQL的具体用法我׃说了,你可以看源程序来查看详细内容.我们来看看分应用的相关内容.
 架构上和Spring JPetStore没多区? 只是没用Spring框架所以Structs中的UserdisplayAction中必new出各个对象ƈ完成它们之间的关? q就是Spring IOC可自动完成的功能. 它也是三?表现?Structs), 业务?POJO), 数据?Hibernate讉KMySQL). 同样业务层通过DAO接口(UserDAO)来访问数据库, 讉K数据库的通过Hibernate(在UserDAOImpl中实?. q一ơ分要在业务层中来实现, 业务层同样向表现层提供一个Facada(门面,  UserManager接口), 来访问业? 在UserManagerImpl中通过调用UserDAO来访问数? 调用POJO来实现分功? 看以下关键代?

先看POJO的分布类?

Page.java

package org.flyware.util.page;

public class Page { 
    
    private boolean hasPrePage; 
    
     private boolean hasNextPage; 
        
    private int everyPage; 
    
    private int totalPage; 
        
    private int currentPage; 
    
      private int beginIndex; 
    
    
      public Page(){
       
    } 
    
        public Page(int everyPage){
        this.everyPage = everyPage;
    }
   
    /** The whole constructor */
    public Page(boolean hasPrePage, boolean hasNextPage, 
                    int everyPage, int totalPage,
                    int currentPage, int beginIndex) {
        this.hasPrePage = hasPrePage;
        this.hasNextPage = hasNextPage;
        this.everyPage = everyPage;
        this.totalPage = totalPage;
        this.currentPage = currentPage;
        this.beginIndex = beginIndex;
    }

      ......    
      
   public int getTotalPage() {
        return totalPage;
    } 
   
    public void setTotalPage(int totalPage) {
        this.totalPage = totalPage;
    }
   
}

PageUtil.java(用来构造Page实例 相当于page工厂)

package org.flyware.util.page;

public class PageUtil {
   
    private static final Log logger = LogFactory.getLog(PageUtil.class); 
    
       public static Page createPage(Page page, int totalRecords){ 

        return createPage(page.getEveryPage(), page.getCurrentPage(), totalRecords);
    } 
    
        public static Page createPage(int everyPage, int currentPage, int totalRecords){
        everyPage = getEveryPage(everyPage); 

        currentPage = getCurrentPage(currentPage); 

        int beginIndex = getBeginIndex(everyPage, currentPage); 

        int totalPage = getTotalPage(everyPage, totalRecords); 

        boolean hasNextPage = hasNextPage(currentPage, totalPage); 

        boolean hasPrePage = hasPrePage(currentPage);
       
        return new Page(hasPrePage, hasNextPage, 
                                everyPage, totalPage,
                                currentPage, beginIndex);
    }
   
    private static int getEveryPage(int everyPage){
        return everyPage == 0 ? 10 : everyPage;
    }
   
    private static int getCurrentPage(int currentPage){
        return currentPage == 0 ? 1 : currentPage;
    }
   
    private static int getBeginIndex(int everyPage, int currentPage){
        return (currentPage - 1) * everyPage;
    }
       
    private static int getTotalPage(int everyPage, int totalRecords){
        int totalPage = 0;
               
        if(totalRecords % everyPage == 0)
            totalPage = totalRecords / everyPage;
        else
            totalPage = totalRecords / everyPage + 1 ;
               
        return totalPage;
    }
   
    private static boolean hasPrePage(int currentPage){
        return currentPage == 1 ? false : true;
    }
   
    private static boolean hasNextPage(int currentPage, int totalPage){
        return currentPage == totalPage || totalPage == 0 ? false : true;
    }
   

}



业务实现c?UserManaerImpl.java

package com.linan.service.impl;

public class UserManagerImpl implements UserManager {
   
    private UserDAO userDAO;

       public void setUserDAO(UserDAO userDAO) { 

        this.userDAO = userDAO; 

    } 
  
//提供业务Ҏ

public Result listUser(Page page) throws HibernateException,

ObjectNotFoundException { 

        int totalRecords = userDAO.getUserCount(); 

        if(totalRecords == 0) 

            throw new ObjectNotFoundException("userNotExist", null);
 
        page = PageUtil.createPage(page, totalRecords); 

        List users = userDAO.getUserByPage(page);   
   
        return new Result(page, users); 

    }

}


DAO数据讉K实现c?UserDAOImpl.java

package com.linan.dao.impl;

public class UserDAOImpl  implements UserDAO {

  ...........

      public List getUserByPage(Page page) throws HibernateException { 

        String querySentence = "FROM user in class com.linan.bo.Userlist"; 

        Query query = getSession().createQuery(querySentence); 

         //实现分页功能

        query.setFirstResult(page.getBeginIndex()) 

                .setMaxResults(page.getEveryPage()); 

        return query.list(); 

    }

}

表现层Structs中的Action UserdisplayAction.java

package com.linan.struts.action;

public class UserdisplayAction extends Action {

   public ActionForward execute(
  ActionMapping mapping,
  ActionForm form,
  HttpServletRequest request,
  HttpServletResponse response) {

   Page page=new Page(); 

        UserManagerImpl userManager=new UserManagerImpl();

        UserDAOImpl userDAO=new UserDAOImpl();

        userManager.setUserDAO(userDAO);

       //掉用业务代理完成分页

        Result result=userManager.listUser(page);

        List list=result.getContent();

        HttpSession session=request.getSession();

        session.setAttribute("list",list);

  return mapping.findForward("displayGo");

 }

}


 



]]>
Spring JPetStore(? 实现自已的Sunlight Netstorehttp://www.aygfsteel.com/linansengling/archive/2006/09/19/70625.html周先?/dc:creator>周先?/author>Tue, 19 Sep 2006 13:56:00 GMThttp://www.aygfsteel.com/linansengling/archive/2006/09/19/70625.htmlhttp://www.aygfsteel.com/linansengling/comments/70625.htmlhttp://www.aygfsteel.com/linansengling/archive/2006/09/19/70625.html#Feedback18http://www.aygfsteel.com/linansengling/comments/commentRss/70625.htmlhttp://www.aygfsteel.com/linansengling/services/trackbacks/70625.html     看过了Spring JPetStore自已觉得界面有点不好? 我觉得界面在购物|站中还是重要的. 所以在Spring  JPetStore基础上我用Structs的Title框架对原pȝ做了一定的改变形成了自q"阛_|店"(Sunlight NetStore), 现在贴出来和大家分n, 大虾见了请别见笑, q请多多指教, 学生的作? 都没多少实用? 只是学了一些东西来l练?

Sunlight NetStore源码下蝲

下蝲的源E序是Eclipse下完成的工程源程?可以在Eclipse下只接导入进来打开完成发布.  也可以在tomcat安装目录\webapps目录下新Z文g夹jpetstore然后把下载下来的WebRoot目录下的所有内定w拯?  数据库的建立, 我开发时使用的是mysql4.0(如果你用的是mysql5.0则可能有时会出错, 5.0是它的测试版我用了感觉有时会出现莫明其妙的错?q以为是E序错误, 费了我好多时? ?.0是它的发布版很稳定的). 使用mysql你可以配合用MySQL Control Center(mysql4.0, MySQL Control Center可以|上下蝲Google一下吧q里׃提供下蝲地址?很好用的和微软的SQL Server差不? 在MySQL Control Center中执行数据库脚本, 然后启动tomcat服务? 你将看到如下:  (开发用的技术是Structs里面的东? ׃说了. 架构, 业务层和数据层和原来的不? 想了解请看Spring JPetStore(? Spring JPetStore的分?/a>)              
                                                                                                                                 

index1.jpg



index3.jpg

           

dog.jpg

  

data.jpg



]]>
Spring JPetStore(? JPetStore的分?/title><link>http://www.aygfsteel.com/linansengling/archive/2006/09/17/70122.html</link><dc:creator>周先?/dc:creator><author>周先?/author><pubDate>Sun, 17 Sep 2006 04:16:00 GMT</pubDate><guid>http://www.aygfsteel.com/linansengling/archive/2006/09/17/70122.html</guid><wfw:comment>http://www.aygfsteel.com/linansengling/comments/70122.html</wfw:comment><comments>http://www.aygfsteel.com/linansengling/archive/2006/09/17/70122.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/linansengling/comments/commentRss/70122.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/linansengling/services/trackbacks/70122.html</trackback:ping><description><![CDATA[ <p>  Spring JPetStoreM架构属于三层l构. 分ؓ业务服务层?表现层?数据讉K?br />  <br />       业务服务层用由POJO(javac?实现, 它们q行在轻量的容器Spring? 轻量U容器的功能在于, 一 理业务对象的生命周? ?借助于Spring 的IOC(Inversion of Control, 控制反{)功能来完成对象之间的依赖关系, 而不用编E一昄完成. ?借助于Spring的AOP(Aspect-Oriented Programming, 面向斚w的程序设? 行在容器中的对象提供一些企业服? 比如声明式的事务理. 业务层放弃了EJB而用运行在轻量U容器的服务? 会有以下好处:<br />1.  能够在Servlet引擎中运? 不用EJB容器的服务器, tomcatp搞定, 软g的费用低, Ҏ理, 负蝲?<br />2 . Ҏ在不同的应用服务器或serverlet引擎之间UL. 要想辑ֈ高可UL? 对于EJB容器来说要比web容器困难, 比如, 需要确保不同的EJB容器在启动时都会q行某一些代?<br />3.  实现更ؓ?<br />4. 不需要那么篏赘的部v文g.<br />不好的地?<br />1.  ~Z对远E调用的内置支持.<br />2.  ~Z一个标准的环境, 用于容纳, 理业务对象.<br />3.  没有清晰的业务层.<br />4.  在不同的应用pȝ之间~Z一致? W个pȝ都可能会有自q一套做? 怎么讉K业务对象 怎么解决事务理 怎么讉K数据{?<br />虽然如此但现在我们有了spring一切就有了解决之道?<br /><br />      表现层中, Spring JPetStore提供了两U不同的web层实? 二者都要依靠同一个中间层, 一个是ZStructs?另一个则是Spring的MVC框架. 二者都是基于JSTL的JSP视图.<br /><br />      数据讉K?使用了J2EE模式中的"数据讉K对象"(Data Access Object, DAO), 他用一个DAO接口隐藏了持久化操作的细? q样使用q个模式的业务对象无需知道底层的持久化技术的l节. Spring JPetStore中用了iBATIS框架.<br /><br />下面让我们来看一下应用中的细节内容吧, 先在Eclipse下把应用加进来方便调? q行.<br /><br />Eclipse可到(<a >http://www.eclipse.org/downloads/</a>上下?他是压羃包解压后可?可以再去下MyEclipe <a >http://www.myeclipse.com</a>是Eclipese的开发插件方便开? 不过要付费可以下载它的破解文?a >http://jinxinxin.bokee.com/inc/myeclipse_keygens.rar</a> MyEclipse的安装如果不会去Google一下吧). 好了开发工具安装后新徏一工程jpetstore, 然后?.\spring-jpetstore\samples\jpetstore下的src目录复盖你的eclipse工作I间下的\jpetstore下的src目录,然后再把..\spring-jpetstore\samples\jpetstore下的war目录下的全部内容拷到你的eclipse工作I间下的\jpetstore下的WebRoot目录下复盖WEB-INF.回到eclipse下刷新工E你可看到如?<br /><br /></p> <p align="center"> <img style="WIDTH: 694px; HEIGHT: 691px" height="768" alt="e.jpg" src="http://www.aygfsteel.com/images/blogjava_net/linansengling/e.jpg" width="1024" border="0" /> </p> <p> <br /> <br />先从数据讉K层说起吧, 他用iBATIS框架来访问数据库,?.\spring-jpetstore\samples\jpetstore\db目录下有它的各种数据库的schema有hsql, mysql, oracle, postges你用拿一U数据库是通过..\spring-jpetstore\samples\jpetstore\war\WEB-INF下的jdbc.properties来配|的.默认的是hsql数据?<br /># Properties file with JDBC-related settings.<br /># Applied by PropertyPlaceholderConfigurer from "dataAccessContext-local.xml".<br /># Targeted at system administrators, to avoid touching the context XML files.</p> <p>jdbc.driverClassName=org.hsqldb.jdbcDriver<br />jdbc.url=jdbc:hsqldb:hsql://localhost:9002<br />jdbc.username=sa<br />jdbc.password=<br />要改为用mysql只要改ؓ:<br />#jdbc.driverClassName=org.hsqldb.jdbcDriver<br />#jdbc.url=jdbc:hsqldb:hsql://localhost:9002<br />#jdbc.username=sa<br />#jdbc.password=</p> <p>jdbc.driverClassName=com.mysql.jdbc.Driver<br />jdbc.url=jdbc:mysql://localhost:3306/jpetstore<br />jdbc.username=root<br />jdbc.password=<br /><br />卛_.业务层能q?..jpetstore.dao包下的接口来讉K....jpetstore.dao.ibatis包从而通过iBATIS框架讉K数据库中的数据的部䆾代码如下:<br /><br /><font color="#cc66ff">package org.springframework.samples.jpetstore.dao;<br />public<font color="#006600"> interface</font> AccountDao {</font></p> <p> <font color="#cc66ff">  Account getAccount(String username, String password) throws DataAccessException;</font> </p> <p> <font color="#cc66ff">  ...........</font> </p> <p> <font color="#cc66ff">}<br /></font> <br /> <font color="#006600">package org.springframework.samples.jpetstore.dao.ibatis;<br />public class SqlMapAccountDao extends SqlMapDaoSupport <font color="#cc66ff">implements AccountDao</font> {</font> </p> <p> <font color="#006600">    public Account getAccount(String username, String password) throws DataAccessException {<br />    Account account = new Account();<br />    account.setUsername(username);<br />    account.setPassword(password);<br />    return (Account) getSqlMapTemplate().executeQueryForObject("getAccountByUsernameAndPassword", account);<br />  }<br />..............<br />}<br /></font> <br />Account.xml<br /><br /><font color="#ff00ff"><mapped-statement name="getAccountByUsernameAndPassword" result-map="result"><br />    select<br /></font>      SIGNON.USERNAME as USERID,<br />      ACCOUNT.EMAIL,<br />      ACCOUNT.FIRSTNAME,<br />      ACCOUNT.LASTNAME,<br />      ACCOUNT.STATUS,<br />      ACCOUNT.ADDR1,<br />      ACCOUNT.ADDR2,<br />      ACCOUNT.CITY,<br />      ..    <br /><font color="#ff33ff">    from ACCOUNT, PROFILE, SIGNON, BANNERDATA<br />    where ACCOUNT.USERID = #username#</font><br />      and SIGNON.PASSWORD = #password#<br />      and SIGNON.USERNAME = ACCOUNT.USERID<br />      and PROFILE.USERID = ACCOUNT.USERID<br />      and PROFILE.FAVCATEGORY = BANNERDATA.FAVCATEGORY<br />  </mapped-statement><br /><br />然后C业务? 业务层ؓ表达层提供服?操纵数据层来完成业务逻辑比如从数据库中读出客启信息传l表辑ֱ 向数据库中插入订单等.业务层还要完成对数据库操作的完整?正确性即事务理. 此应用是通过Spring的AOP来完成无需~程实现如下:<br /><br /><font color="#009900">dataAccessContex-local.xml</font><br /><br /><font color="#9933ff"><bean id="<font color="#ff0066">dataSource</font>" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><br />  <property name="driverClassName"><value><font color="#ff3366">${jdbc.driverClassName}</font></value></property><br />  <property name="url"><value>${jdbc.url}</value></property><br />  <property name="username"><value>${jdbc.username}</value></property><br />  <property name="password"><value>${jdbc.password}</value></property><br /> </bean></font></p> <p> <font color="#9933ff"> <!-- Transaction manager for a single JDBC DataSource --><br /><bean id="<font color="#ff3366">sessionFactory</font>" class="org.springframework.orm.<font color="#ff3333">hibernate3</font>.LocalSessionFactoryBean"><br />  <property name="dataSource"><br />   <ref local="dataSource" /><br />  </property><br />  <property name="mappingResources"><br />   <list><br />    <value>org/springframework/samples/jpetstore/Hibernate/Account.hbm.xml</value><br />   </list><br />  </property><br />  <property name="hibernateProperties"><br />   <props><br />    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><br />    <prop key="hibernate.show_sql">true</prop><br />   </props><br />  </property><br /> </bean><br /> <br /> <!-- (see dataAccessContext-jta.xml for an alternative) --><br /><bean id="<font color="#ff3366">transactionManager</font>" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><br />  <property name="sessionFactory"><br />   <ref local="sessionFactory" /><br />  </property><br /> </bean></font> </p> <p> <font color="#9933ff"> <!-- SqlMap setup for iBATIS Database Layer --><br /> <bean id="sqlMap" class="org.springframework.orm.ibatis.SqlMapFactoryBean"><br />  <property name="configLocation"><value>WEB-INF/sql-map-config.xml</value></property><br /> </bean></font> </p> <p> <br /> <font color="#9933ff"> <!-- ========================= DAO DEFINITIONS: IBATIS IMPLEMENTATIONS ========================= --></font> </p> <p> <font color="#9933ff"> <bean id="<font color="#ff3366">accountDao</font>" class="org.springframework.samples.jpetstore.dao.hibdaoimp.AccountDaoImp"><br />  <property name="sessionFactory"><br />   <ref local="sessionFactory" /><br />  </property><br />   <br /> </bean><br />................</font> </p> <p> <font color="#9933ff"></beans><br /></font> </p> <p> <font color="#009966">applicationContex.xml<br /></font> <br /> <font color="#cc33ff"><bean id="<font color="#ff0033">petStoreTarget</font>" class="org.springframework.samples.jpetstore.domain.logic.<font color="#ff3300">PetStoreImpl</font>"><br />  <property name="<font color="#ff0033">accountDao</font>"><ref bean="<font color="#ff0066">accountDao</font>"/></property><br />  <property name="categoryDao"><ref bean="categoryDao"/></property><br />  <property name="productDao"><ref bean="productDao"/></property><br />  <property name="itemDao"><ref bean="itemDao"/></property><br />  <property name="orderDao"><ref bean="orderDao"/></property><br /> </bean></font> </p> <p> <font color="#cc33ff"> <!-- Transactional proxy for the JPetStore primary business object --><br /> <bean id="<font color="#ff0033">petStore</font>" class="<font color="#ff0066">org.springframework.transaction.interceptor.</font><font color="#ffcc66">TransactionProxyFactoryBean</font>"><br />  <property name="t<font color="#ff0066">ransactionManager</font>"><ref bean="transactionManager"/></property><br />  <property name="target"><ref local="<font color="#ff0033">petStoreTarget</font>"/></property><br />  <property name="transactionAttributes"><br />   <props><br />    <prop key="<font color="#ff0066">insert</font>*">PROPAGATION_REQUIRED</prop><br />    <prop key="update*">PROPAGATION_REQUIRED</prop><br />    <prop key="*">PROPAGATION_REQUIRED,readOnly</prop><br />   </props><br />  </property><br /></font> <br />从上面的配置代码我们可看到通过Spring的IOC完成?font color="#ff0033"><font color="#cc33ff">org.springframework.samples.jpetstore.domain.logic.</font><font color="#ff3300">PetStoreImpl<font color="#000000">{类的注? 通过AOP?/font><font color="#ff0066">org.springframework.transaction.interceptor.</font><font color="#ffcc66">TransactionProxyFactoryBean</font></font></font><font color="#000000">来完成事务代?br />业务层通过一个门?facada)PetStoreFacade.java接口来ؓ表达层提供服?<br /><br /></font><font color="#cc00cc">package org.springframework.samples.jpetstore.domain.logic;<br /></font><font color="#9900cc">public <font color="#ff0066">interface PetStoreFacade</font> {</font></p> <p> <font color="#9900cc"> Account getAccount(String username);</font> </p> <p> <font color="#9900cc"> Account getAccount(String username, String password);</font> </p> <p> <font color="#9900cc"> void insertAccount(Account account);</font> </p> <p> <font color="#9900cc"> void updateAccount(Account account);</font> </p> <p> <font color="#000000"> <font color="#9900cc">..........<br />}<br />用PetStoreImp.java来实?<br /><br />package org.springframework.samples.jpetstore.domain.logic;<br /><br />public class PetStoreImpl implements PetStoreFacade, OrderService {</font> </font> </p> <p> <font color="#000000"> <font color="#9900cc">  private AccountDao accountDao;</font> </font> </p> <p> <font color="#000000"> <font color="#9900cc"> .........<br /></font> </font> <font color="#000000"> <font color="#9900cc"> <br /> public void setAccountDao(AccountDao accountDao) {<br />  this.accountDao = accountDao;<br /> }</font> </font> </p> <p> <br /> public Account getAccount(String username) {<br />    return this.accountDao.getAccount(username);<br />  }</p> <p>  public Account getAccount(String username, String password) {<br />  return this.accountDao.getAccount(username, password);<br />  }</p> <p>  public void insertAccount(Account account) {<br />  this.accountDao.insertAccount(account);<br />  }</p> <p>  .......<br />}<br /><br /><font color="#000000">表达层这里介lStructs,Structs中通过PetStoreFacade接口来访问业务层:<br /><br /></font><font color="#cc00ff">package org.springframework.samples.jpetstore.web.struts;</font></p> <p> <font color="#cc00ff">public abstract class BaseAction extends Action {</font> </p> <p> <font color="#cc00ff">  private</font> <font color="#ff0066">PetStoreFacade petStore;</font> </p> <p> <font color="#cc00ff"> public void setServlet(ActionServlet actionServlet) {<br />  super.setServlet(actionServlet);<br />  ServletContext servletContext = actionServlet.getServletContext();<br />  WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);<br />  <font color="#ff0033">this.petStore = (PetStoreFacade) wac.getBean("petStore");<br /></font> }</font> </p> <p> <font color="#cc00ff"> protected PetStoreFacade getPetStore() {<br />  return petStore;<br /> }</font> </p> <p> <font color="#cc00ff">}<br /><br /><br /></font> <font color="#009900">public class SignonAction extends<font color="#cc00ff"> BaseAction</font> {</font> </p> <p> <font color="#009900">  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {<br />       AccountActionForm acctForm = (AccountActionForm) form;<br />      String username = acctForm.getUsername();<br />      String password = acctForm.getPassword();<br />     <font color="#cc00ff"> Account account = getPetStore().getAccount(username, password);</font><br />.....<br />                return mapping.findForward("success");<br />    }<br /><font color="#000000">Structs框架通过struct-config.xml文来控制相关映射转发?</font>    <br /><br />struct-config.xml       </font> <font color="#cc00ff"> <font color="#009900"> <br /><action path="/<font color="#ff0066">signon</font>" type="org.springframework.samples.jpetstore.web.struts.<font color="#cc00ff">SignonAction</font>"<br />   name="accountForm" scope="request"<br />   validate="false"><br />   <forward name="success" path="/<font color="#cc00ff">index.jsp</font>"/><br />  </action><br /><br /></font> </font> <font color="#000000">关于jsp׃在多说了下面再来看一下它的web.xml文g:</font> </p> <p> <font color="#cc00ff">  <context-param><br />  <param-name>contextConfigLocation</param-name><br />  <param-value><br />   <font color="#ff0066">/WEB-INF/dataAccessContext-local.xml  /WEB-INF/applicationContext.xml</font><br />  </param-value><br />   </context-param><br /><br /><servlet><br />  <servlet-name>context</servlet-name><br />  <servlet-class><font color="#ff0066">org.springframework.web.context.ContextLoaderServlet</font></servlet-class><br />  <load-on-startup>1</load-on-startup><br /> </servlet></font> </p> <p> <font color="#cc00ff"> <servlet><br />  <servlet-name>action</servlet-name><br />  <servlet-class><font color="#ff0033">org.apache.struts.action.ActionServlet</font></servlet-class><br />  <load-on-startup>3</load-on-startup><br /> </servlet></font> </p> <p> <font color="#cc00ff">  </font> <font color="#009966">  <servlet-mapping><br />   <servlet-name><font color="#ff0066">action</font></servlet-name><br />  <br />  <url-pattern<font color="#ff0066">>*.do</font></url-pattern><br /> </servlet-mapping></font> </p> <p> <font color="#009966"> </font> <font color="#000000">q有关于q程机制有Caucho的Hessian(一个借助HTTP的二q制协议) Burlap(一个基于XML的借助HTTP的传输协?, Apache Axis提供的JAX-RPC(ZSOAP的借助HTTP传输的web serverice), q有ZRMI的远E调?<br />想了解更多还是自已细看里面的代码?<br /><a href="/linansengling/archive/2006/09/19/70625.html">Ll关注Spring JPetStore(? 在其上实现自已的Sunlight Netstore</a></font> </p> <img src ="http://www.aygfsteel.com/linansengling/aggbug/70122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/linansengling/" target="_blank">周先?/a> 2006-09-17 12:16 <a href="http://www.aygfsteel.com/linansengling/archive/2006/09/17/70122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring JPetStore(一) 发布JPetStore应用http://www.aygfsteel.com/linansengling/archive/2006/09/16/70041.html周先?/dc:creator>周先?/author>Sat, 16 Sep 2006 07:13:00 GMThttp://www.aygfsteel.com/linansengling/archive/2006/09/16/70041.htmlhttp://www.aygfsteel.com/linansengling/comments/70041.htmlhttp://www.aygfsteel.com/linansengling/archive/2006/09/16/70041.html#Feedback0http://www.aygfsteel.com/linansengling/comments/commentRss/70041.htmlhttp://www.aygfsteel.com/linansengling/services/trackbacks/70041.html    PetStore(宠物?怿大家都不默生 , 它的功能包括一个品目?, 一个购物R , 客户账户理 , 订单历史 , q有一些基本的个性选项功能 . q是一个相当标准的数据驱动的J2EEWeb应用pȝ(没有EIS集成,也没有消息处理需? . The Middleware Company(TMC, 著名JAVAC֌TSS的母公司)?002q正式规范化了本pȝ的业务需?q且?003q出了进一步修?, 加入了两U特D的需? 要支持用唯一的数据库保存所有的持久化数?  也要支持双数据库的场? 一个数据库保存客户订单,另一个保存品和账务数据. 前一U场境当然性能更好,对于相对单的应用pȝ也更为实? 后一U用了L据库实现目录跟踪功能(也就是说, 存放产品目录和客戯̎h?, 而客戯单则分开存放在另一个订单数据库? q样, ׃pȝ在两个数据库上运? 所以在下订单的时候就要求实现分布化事?对PetStore有网上有各种不同的实现这里要讨论的是ZSructs+Spring+iBATIS的轻量框架实现?来自?lt;<J2EE Development without EJB>> Rod Johnson  电子工业出版C?
源码下蝲(http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764558315,descCd-download_code.html

       好了有了源码让我们先来一睹ؓ快然后再来分?
       要构建Spring Jpetstore 应用你还需要安装JDK 和Tomcat详情L我的JSP开发入门用L陆认?/a> 此外Z用ANT构徏应用q要安装讄ANT工具(下蝲地址:http://www.jakarta.apache.org) ANT的安装Y件是解压软g?只需把压~文件解压到本地盘. q设|一下环境变?ANT_HOME=ANT的安装目?PATH=%PATH%;%ANT_HOME%\bin; CLASSPATH=%CLASSPATH%;%ANT_HOME%\lib;
        好了环境搭徏完闭, 现在q入 ..\spring-jpetstore\samples\jpetstore>
执行ANT命o ..\spring-jpetstore\samples\jpetstore>ant
则将?..\spring-jpetstore\samples\jpetstore\dist目录下生成jpetstore.war的发布文? 现在大功告成把jpetstore.war文g拷到tomcat安装目录\webapps\? 启动tomcat服务?tomcat安装目录\bin\star_up.bat). 启动hsql数据?..\spring-jpetstore\samples\jpetstore\db\hsqldb\server.bat). 好了一切搞定现在打开览器输?
http://localhost:8080/jpetstore)你将可看到如?

index.jpg 

借助?..\spring-jpetstore\samples\jpetstore\db\hsqldb\manager.bat)看到的hsql数据库中的数?br />

db.jpg

发布搞定下面对它做一些简要的分析!
LSpring JPetStore(?   JPetStore的分?/a>



]]>
JSP开发入门用L陆认?/title><link>http://www.aygfsteel.com/linansengling/archive/2006/09/12/69243.html</link><dc:creator>周先?/dc:creator><author>周先?/author><pubDate>Tue, 12 Sep 2006 13:07:00 GMT</pubDate><guid>http://www.aygfsteel.com/linansengling/archive/2006/09/12/69243.html</guid><wfw:comment>http://www.aygfsteel.com/linansengling/comments/69243.html</wfw:comment><comments>http://www.aygfsteel.com/linansengling/archive/2006/09/12/69243.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/linansengling/comments/commentRss/69243.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/linansengling/services/trackbacks/69243.html</trackback:ping><description><![CDATA[ <p> <a title="jsp开发入? href="/files/linansengling/login.rar" target="_blank">源程?/a> <br /> <br />此应用涉及开发环境的搭徏Q表单的提交、接Ӟ数据库的dQjsp的应用,以及javaScript对用戯入的验证Q页<br />面的跌{。如有问题请与我探讨。——linan:</p> <p>一  开发环境的搭徏<br />1 软g安装</p> <p>1.1 安装数据库管理系lSQL Server2000<br />1.2  安装JDK1.4(例:安装在C:\jdk1.4)<br />JDK可到<a >http://www.sun.com/download/index.jsp?cat=Application%20Development&tab=3&subcat=SDKs%20(Software%20Development%20Kits</a>) 下蝲<br />1.3  安装JSP服务器Tomcat5.0(例:安装在C:\tomcat5.0)<br />Tomcat可到<a >http://jakarta.apache.org/site/downloads/downloads_tomcat-5.html</a>下蝲  <br />(如果下蝲的是压羃包则解压后就可用不用安装Q接着以下讄环境变量)<br /></p> <p>1Q? 安装好要讄环境变量 <br />步骤Q右L的电?>属?>高->环境变量?如果已有变量名则~辑Q如果还没有则新?<br />catalina_home=Tomcat安装路径 Q例Q?catalina_home=C:\tomcat5.0Q?br />catalina_base = Tomcat安装路径 Q例Q?catalina_base=C:\tomcat5.0Q?br />classpath= .;JDK安装路径\lib;%classpath%  (? classpath=.;C:\jdk1.4\lib;)<br />java_home= JDK安装路径 (? java_home=c:\jdk1.4)</p> <p>1.5 试服务器安装是否成?br />启动服务?双击c:\tomcat5.0\bin\startup.bat文g)Q启动浏览器在地址栏中输入Q?a href="http://localhost:8080/">http://localhost:8080/</a>Q?br /><br />?建立用户登陆认证应用(可用C本来~辑Q扩展名保存?jsp?htm卛_)<br />在c:\tomcat5.0\webapps下徏立如下的目录l构Q?br />新徏文g夹login  在login文g夹下建立文g夹WEB-INF和文件login.htm、logincheck.jsp、ok.htm再在WEB-INF建立文夹lib<br />q将我所提供的lib下的文gQmsbase.jar,msutil.jar,mssqlserver.jarQ文件拷到新建的lib文g夹下。下面各文g的内容分别ؓQ?br />1  longin.htm</p> <p><%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %><br /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a ><br /><html><br /><head><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><title>login.html</title><br /><script language="javascript" src="../share/com.js"></script><br /><script language="javaScript" ><br /><!--<br /> function checkstr()<br /> {  <br />  if(form.username.value=="")<br />    {alert("用户名不能ؓI!");     <br />     return false;<br />    }<br />      if(form.password.value=="")<br />    {alert("密码不能为空Q?);      <br />    return false;}<br />   else {<br />      form.submit();<br />   }<br /> }  <br />--><br /> </script><br /></head><br /><body></p> <p><table width="1000" border="0" cellspacing="0" cellpadding="0"><br />  <tr><br />    <td ><form name="form" method="post" action="logincheck.jsp"><br />        <table width="563" height="100" border="0" bordercolor="#FF9900"><br />          <tr><br />            <td width="148" align="center">&nbsp;</td><br />            <td width="121" height="35" align="center"> &nbsp;用户名:</td><br />            <td width="280" align="left" ><br />              <input name="username" type="text" maxlength="13" value="linan"></td><br />          </tr><br />          <tr><br />            <td align="center">&nbsp;</td><br />            <td align="center">?amp;nbsp;&nbsp;码:</td><br />            <td align="left"><br />              <input name="password" type="password" maxlength="15" value="linan"></td><br />          </tr><br />          <tr align="center" valign="bottom"><br />            <td height="32" colspan="3"><input name="login" type="button" value="登陆" onClick="checkstr()"><br />              <input name="button" type="button"  onClick="reg()"  value="注册"></td><br />          </tr><br />        </table><br />    </form></td><br />  </tr><br /></table><br /></body><br /></html></p> <p>2   logincheck.jsp</p> <p><%@ page contentType="text/html; charset=gb2312" language="java" %></p> <p><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a ><br /><html><br /><head><br /><title>logincheck.jsp</title><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /></head><br /> <%@ page import="java.sql.*"%></p> <p><body><br /><%   <br /> String username=(String)request.getParameter("username");<br /> String password=(String)request.getParameter("password");<br /> <br /> try{<br /> <br /> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");<br />    Connection con=DriverManager.getConnection("jdbc:odbc:login","","");<br />  <br /> String sqls="select * from usertest where username='"+username+"' and password='"+password+"'";<br /> Statement stmt=con.createStatement();<br />    ResultSet rs=stmt.executeQuery(sqls);<br />     int k=0;<br />     if(rs.next()){<br />    k=k+1;<br />   }   <br />  <br />     if(k>0)  <br />     response.sendRedirect("ok.htm"); <br />   else<br />     response.sendRedirect("login.html");    <br />     <br /> con.close();<br />     <br /> }catch(Exception e){<br /> out.println(e.toString());<br /> }<br />  %><br /></body><br /></html></p> <p>3   ok.htm</p> <p><%@ page contentType="text/html; charset=gb2312" %><br /><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "<a ><br /><html><br /><head><br /><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><br /><title>ok</title><br /></head><br /><body><br /><p>成功登陆Q?lt;/p><br /></body><br /></html></p> <p>?建立数据?br />1 建立数据库login建立表usertest<br />create database test<br />CREATE TABLE usertest (<br />[userid] [int] IDENTITY (1, 1) NOT NULL ,<br />[username] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,<br />[password] [char] (10) COLLATE Chinese_PRC_CI_AS NULL <br />) ON [PRIMARY]<br />insert into usertest values('linan','linan');</p> <p>2.配置ODBC数据源(用JDBC-ODBC讉K数据库容易成功开发时可用Q?br />   开?>讄->控制面版->理工具->ODBC数据?>d->SQL Server->(名称Qlogin(不能是其它的否则接不上数据库) 服务器:(127.0.0.1))->下一?>Q用windowsNT认证Q?>下一?>(更改默认的数据库为test))->下一?>完成<br />?一切搞定下面测?br />启动服务?双击c:\tomcat5.0\bin\startup.bat文g)Q启动浏览器在地址栏中输入Q?a href="http://localhost:8080/login\login.jsp">http://localhost:8080/login\login.jsp</a>(如果用户名与数据库中的相同则登陆成功Q默认ؓuser=name“linan?password=”linan?<br /></p> <img src ="http://www.aygfsteel.com/linansengling/aggbug/69243.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/linansengling/" target="_blank">周先?/a> 2006-09-12 21:07 <a href="http://www.aygfsteel.com/linansengling/archive/2006/09/12/69243.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">տ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ƽɽ</a>| <a href="http://" target="_blank">ʹ</a>| <a href="http://" target="_blank">˫</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ϫ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ԣ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">罭</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">ǹ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݸ</a>| <a href="http://" target="_blank">ͤ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">綫</a>| <a href="http://" target="_blank">ƽɽ</a>| <a href="http://" target="_blank">Ĵʡ</a>| <a href="http://" target="_blank">߰</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>