ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>日本韩国视频一区二区,国产欧美一区二区三区鸳鸯浴,国产精品18久久久久久久久http://www.aygfsteel.com/microlab4321/category/24789.html适时æ€È»“是一¿U很好的彌补æ–ÒŽ(gu¨©)³•!zh-cnTue, 21 Aug 2007 11:46:08 GMTTue, 21 Aug 2007 11:46:08 GMT60Spring+Struts+Hibernate(一个实现用æˆäh³¨å†Œçš„½Ž€å•示ä¾? http://www.aygfsteel.com/microlab4321/articles/138294.html冬天凸™µ°çš„çŒªå†¬å¤©å‡ø™µ°çš„猪Tue, 21 Aug 2007 02:28:00 GMThttp://www.aygfsteel.com/microlab4321/articles/138294.htmlhttp://www.aygfsteel.com/microlab4321/comments/138294.htmlhttp://www.aygfsteel.com/microlab4321/articles/138294.html#Feedback0http://www.aygfsteel.com/microlab4321/comments/commentRss/138294.htmlhttp://www.aygfsteel.com/microlab4321/services/trackbacks/138294.html本示例是 Spring+Struts+Hibernate æ•´åˆæ¥ç¼–写一个用æˆäh³¨å†Œçš„½Ž€å•示ä¾?/span> , ™å¹ç›®åç§°ä¸?/span> mySSH, ½CÞZ¾‹ä¸­è¿žæŽ¥çš„æ•°æ®åº“䨓 MySQL, 使用å‰åº”åœ?/span> MySQL 中创å»ÞZ¸€ä¸ªæ•°æ®åº“ mySSH,mySSH 中创建数æ®åº“è¡?/span> user,SQL 语å¥å¦‚下 ,CREATE TABLE ‘user’(‘id’ VARCHAR(32)NOT MULL,’username’ VARCHAR(32) NOT NULL,’password’ VARCHAR(32) NOT NULL,PRIMARY KEY (‘id’))ENGINE=MYISAM; ½CÞZ¾‹çš„简å•代ç å¦‚ä¸?/span> :

 

< 一 > �/span> mySSH/WEB-INF 目录下编�/span> web.xml

 

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

< web-app xmlns = "http://java.sun.com/xml/ns/j2ee"

xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"

version = "2.4"

xsi:schemaLocation = "http://java.sun.com/xml/ns/j2ee  

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >

 < servlet >

    < servlet-name > actionServlet </ servlet-name >

 < servlet-class > org.apache.struts.action.ActionServlet </ servlet-class >

    < init-param >

      < param-name > config </ param-name >

      < param-value > /WEB-INF/struts-config.xml </ param-value >

    </ init-param >

    < load-on-startup > 1 </ load-on-startup >

 </ servlet >

 < servlet-mapping >

    < servlet-name > actionServlet </ servlet-name >

    < url-pattern > *.do </ url-pattern >

 </ servlet-mapping >

</ web-app >

 

< äº?/span> > åœ?/span> mySSH/WEB-INF/jsp 目录下编写用æˆäh³¨å†Œé¡µé?/span> regedit.jsp

 

<%@ page contentType = "text/html;charset=GBK" %>

< html >

< head >< title > Spring,Struts å’?/span> Hibernate æ•´åˆå®žä¾‹ </ title ></ head >

<%

   String msg=request.getAttribute( "msg" )== null ? "" :(String)request.getAttribute( "msg" );

%>

< body > <%= msg %>

   < form action = "/mySSH/regedit.do" method = "post" >

      用户å?/span> : < input type = "text" name = "name" value = "${user.username }"/><br>

      å¯†ç  : < input type = "password" name = "password" value = "" />< br >

      < input type = "submit" name = "method" value = " æäº¤ " />

   </ form >

</ body >

</ html >

 

< ä¸?/span> > åœ?/span> mySSH/WEB-INF/jsp 目录下编写用æˆäh³¨å†ŒæˆåŠŸé¡µé?/span> success.jsp

 

<%@ page contentType = "text/html;charset=GBK" %>

< html >

< head >< title > Spring,Struts å’?/span> Hibernate æ•´åˆå®žä¾‹ </ title ></ head >

< body >

    æäº¤æˆåŠŸ : ä½ è¾“å…¥çš„ç”¨æˆ·åæ˜¯ :${user.name }, å¯†ç æ˜?/span> :${user.password }

</ body >

</ html >

 

< å›?/span> > åœ?/span> com.gc.vo 包下¾~–写 POJO---User.java

 

package com.gc.vo;

public class User {

    private String id ;

    private String username ;

    private String password ;

    public User(String username,String password){

       this . username =username;

       this . password =password;

    }

    public User(){

      

    }

    public String getId() {

       return id ;

    }

    public void setId(String id) {

       this . id = id;

    }

    public String getPassword() {

       return password ;

    }

    public void setPassword(String password) {

       this . password = password;

    }

    public String getUsername() {

       return username ;

    }

    public void setUsername(String username) {

       this . username = username;

    }  

}

 

< äº?/span> > åœ?/span> com.gc.vo 包下¾~–写映射文äšg User.hbm.xml

 

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

<! DOCTYPE hibernate-mapping PUBLIC

"-//Hibernate/Hibernate Mapping DTD 2.0//EN"

"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" >

< hibernate-mapping >

   < class name = "com.gc.vo.User" table = "user" >

      < id name = "id" type = "java.lang.String" >

        < generator class = "uuid.hex" ></ generator >

      </ id >

      < property name = "username"

                type = "java.lang.String"

                column = "username"

                not-null = "true"

                length = "32" >

      </ property >

      < property name = "password"

                type = "java.lang.String"

                column = "password"

                not-null = "true"

                length = "32" >

      </ property >

   </ class >

</ hibernate-mapping >

 

< å…?/span> > åœ?/span> com.gc.dao 包下¾~–写接壾c?/span> UserDAO.java

 

package com.gc.dao;

import com.gc.vo.*;

public interface UserDAO {

    // 新增用户

    public abstract void createUser(User user);

    // 修改用户

    public abstract void updateUser(User user);

    // 删除用户

    public abstract void deleteUser(User user);

    // 查询用户

    public abstract User queryUser(String name);

}

 

< ä¸?/span> > åœ?/span> com.gc.dao.impl 包下¾~–写接壾c?/span> UserDAO 的实现类 UserDAOImpl.java

 

package com.gc.dao.impl;

import com.gc.dao.UserDAO;

import com.gc.vo.User;

import java.util.ArrayList;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import org.springframework.orm.toplink.SessionFactory;

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{

    // ä¾èµ–注入 SessionFactory

    private SessionFactory sessionFactory ;

    // 定义查询 SQL 语气

    private String SQL = "from user u where u.username=?" ;

    // 新增用户

    public void createUser(User user){

       this .getHibernateTemplate().save(user);

    }

    // 修改用户

    public void updateUser(User user){

       this .getHibernateTemplate().update(user);

    }

    // 删除用户

    public void deleteUser(User user){

       this .getHibernateTemplate().delete(user);

    }

    // 查询用户

    public User queryUser(String name){

       List userList;

       if ( this .getHibernateTemplate().find( SQL , name)== null )

           userList= new ArrayList();

       else

           userList= this .getHibernateTemplate().find( SQL , name);

       return (User)userList.get(0);

    }

}

 

< å…?/span> > åœ?/span> mySSH/WEB-INF 目录下编å†?/span> Struts 的酾|®æ–‡ä»?/span> struts-config.xml

 

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

<! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

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

< struts-config >

 <!-- 定义 formBean -->

 < form-beans >

    < form-bean name = "user" type = "com.gc.vo.User" />

 </ form-beans >

 < action-mappings >

     < action path = "/regedit" type = "org.springframework.web.struts.DelegatingActionProxy" name = "user" >

         < forward name = "success" path = "WEB-INF/jsp/success.jsp" ></ forward >

        < forward name = "input" path = "WEB-INF/jsp/regedit.jsp" ></ forward >

     </ action >

     < action path = "/input" type = "org.apache.struts.actions.ForwardAction"

             parameter = "/WEB-INF/jsp/regedit.jsp" >

     </ action >

 </ action-mappings >

 <!-- 注册 Struts æ’äšg , ä¸?/span> Spring 相结å?/span> -->

 < plug-in className = "org.springframework.web.struts.ContextLoaderPlugIn" >

     < set-property property = "contextConfigLocation" value = "/WEB-INF/config.xml" />

    </ plug-in >

</ struts-config >

 

< ä¹?/span> > åœ?/span> mySSH/WEB-INF 目录下编å†?/span> Spring 的酾|®æ–‡ä»?/span> config.xml

 

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

<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

  "http://www.springframework.org/dtd/sring-beans.dtd" >

< beans >

 < bean id = "regedit" class = "com.gc.service.impl.RegeditImpl" >

     < property name = "userDAO" >

        < ref local = "userDAO" />

     </ property >

 </ bean >

 < bean name = "/regedit" class = "com.gc.action.RegeditAction" >

      < property name = "regedit" >

         < ref bean = "regedit" />

      </ property >

 </ bean >

 < bean name = "/input" class = "com.gc.action.RegeditAction" >

     < property name = "regedit" >

        < ref bean = "regedit" />

     </ property >

 </ bean >

 <!-- å®šä¹‰æ•°æ®æº?/span> -->

 < bean id = "dataSource"

     class = "org.apache.commons.dbcp.BasicDataSource"

     destroy-method = "close" >

     <!-- 讑֮šé©±åЍ -->

     < property name = "driverClassName" >

        < value > com.mysql.jdbc.Driver </ value >

     </ property >

     <!-- 讑֮š URL -->

     < property name = "url" >

        < value > jdbc:mysql://localhost:3306/mySSH </ value >

     </ property >

     <!-- 讑֮šç”¨æˆ·å?/span> -->

     < property name = "username" >

        < value > tang </ value >

     </ property >

     <!-- 讑֮šå¯†ç  -->

     < property name = "password" >

        < value > admin </ value >

     </ property >  

 </ bean >

 <!-- å’?/span> Hibernate è”ç³»èµäh¥ -->

 < bean id = "sessionFactory"

     class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" >

     < property name = "dataSource" >

        < ref bean = "dataSource" />

     </ property >

     < property name = "mappingResources" >

        < list >

           < value > com\gc\vo\User.hbm.xml </ value >

        </ list >

     </ property >

     < property name = "hibernateProperties" >

        < props >

           < prop key = "hibernate.dialect" > org.hibernate.dialect.MySQLDialect </ prop >

           < prop key = "hibernate.show_sql" > true </ prop >

         </ props >

     </ property >

 </ bean >

 <!-- ˜q›è¡Œäº‹åŠ¡å¤„ç† -->

 < bean id = "transactionManager"

     class = "org.springframework.orm.hibernate3.HibernateTransactionManager" >

     < property name = "sessionFactory" >

        < ref bean = "sessionFactory" />

     </ property >

 </ bean >

 <!-- ˜q›è¡Œäº‹åŠ¡ä»£ç† -->

 < bean id = "userDAOProxy"

     class = "org.springframework.transaction.interceptor.TransactionProxyFactoryBean" >

     < property name = "transactionManager" >

        < ref bean = "transactionManager" />

     </ property >

     < property name = "target" >

        < ref local = "userDAO" />

     </ property >

 </ bean >

 < bean id = "userDAO" class = "com.gc.dao.impl.UserDAOImpl" >

     < property name = "sessionFactory" >

        < ref bean = "sessionFactory" />

     </ property >

 </ bean >

</ beans >

 

< å?/span> > åœ?/span> com.gc.action 包下¾~–写控制å™?/span> RegeditAction.java

 

package com.gc.action;

import com.gc.vo.User;

import com.gc.service.Regedit;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

public class RegeditAction extends Action{

    private Regedit regedit ;

    // ä¾èµ–注入

    public Regedit getRegedit() {

       return regedit ;

    }

    public void setRegedit(Regedit regedit) {

       this . regedit = regedit;

    }

    public ActionForward execute(ActionMapping mapping,

           ActionForm form,HttpServletRequest request,

           HttpServletResponse response) throws Exception{

       // ä¿å­˜™åµé¢æäº¤çš„用户信æ?/span>

       getRegedit().saveUser((User)form);

       request.setAttribute( "user" ,(User)form);

       return mapping.findForward( "success" );

    }

}

 

< å一 > åœ?/span> com.gc.service 包下¾~–å†™ä¸šåŠ¡é€»è¾‘æŽ¥å£ Regedit.java

 

package com.gc.service;

import com.gc.vo.User;

public interface Regedit {

    // ä¿å­˜ç”¨æˆ·

    public abstract void saveUser(User user);

}

 

< å二 > åœ?/span> com.gc.service 包下¾~–写具体的业务逻辑¾c?/span> RegeditImpl.java

 

package com.gc.service.impl;

import com.gc.dao.UserDAO;

import com.gc.service.Regedit;

import com.gc.vo.User;

public class RegeditImpl implements Regedit{

    private UserDAO userDao ;

    // ä¿å­˜ç”¨æˆ·

    public void saveUser(User user){

       userDao .createUser(user);

    }

    // 修改用户

    public void updateUser(User user){

       userDao .updateUser(user);

    }

    // 修改用户

    public void deleteUser(User user){

       userDao .deleteUser(user);

    }

    // 查询用户

    public User queryUser(String username){

       return userDao .queryUser(username);

    }

    // ä¾èµ–注入

    public UserDAO getUserDao() {

       return userDao ;

    }

    public void setUserDao(UserDAO userDao) {

       this . userDao = userDao;

    }

}

 



]]>
Myeclipse3.1+ Tomcat5.0 +j2sdk1.5æ­å¾J2EEhttp://www.aygfsteel.com/microlab4321/articles/138172.html冬天凸™µ°çš„çŒªå†¬å¤©å‡ø™µ°çš„猪Mon, 20 Aug 2007 08:02:00 GMThttp://www.aygfsteel.com/microlab4321/articles/138172.htmlhttp://www.aygfsteel.com/microlab4321/comments/138172.htmlhttp://www.aygfsteel.com/microlab4321/articles/138172.html#Feedback0http://www.aygfsteel.com/microlab4321/comments/commentRss/138172.htmlhttp://www.aygfsteel.com/microlab4321/services/trackbacks/138172.html 

 

Myeclipse3.1+ Tomcat5.0 +j2sdk1.5æ­å¾J2EE

首先讲一下环境酾|®ï¼Œæ³¨æ„我酾|®çš„环境是在xp下的åQŒä¸æ˜?/span>linux下的åQŒé…¾|®çš„大致‹¹ç¨‹å’Œæ“作系¾lŸæ— å…»I¼Œä»…仅是在具体的安装上有差别。而酾|®æˆåŠŸä¸Žå¦ï¼Œä¸Žæ“作系¾lŸæ— å…Ÿë€?/span>

  软äšgå®‰è£…åˆ†äØ“ä¸€ä¸‹å‡ ä¸ªéƒ¨åˆ†ï¼š

  1ã€?/span> java环境安装åQ?/span>

  ˜q™é‡Œä½¿ç”¨çš„æ˜¯jdk1.5åQ?/span>jdk1.4是ä¸å¯ä»¥çš?/span>åQ‰ï¼Œ˜q™ä¸ªå¯ä»¥åˆ?/span>sunå…¬å¸çš„网站去下è²åQ?/span>

  2ã€?/span> tomcat环境安装åQ?/span>

  tomcat的版本是5.0的,安装版或是解压版都是å¯ä»¥çš„ï¼›

  3ã€?/span> eclipse 3 安装åQ?/span>

  å¯ä»¥åŽÖM¸‹åˆ—地å€ä¸‹è²http://www.eclipse.org/downloads/index.php

  我下载的æ˜?/span> 3.1M4 版本åQŒè¿™ä¸ªç‰ˆæœ¬åº”该是比较新的ã€?/span> 4ã€?/span> tomcatæ’äšg安装åQ?/span>

  tomcatæ’äšg是è¦åˆîC¸‹é¢åœ°å€ä¸‹è²http://www.sysdeo.com/eclipse/tomcatPlugin.htmlåQŒä¸‹è½½ä¹‹å‰éœ€è¦æŸ¥çœ‹æ’件是å¦é€‚åˆeclipse的版本,我下载的æ˜?/span>tomcatPluginV3.zipåQ?/span>

  5ã€?/span> lombozæ’äšg安装åQ?/span>

  lombozæ’äšg需è¦ä¸‹è½½ä¸¤ä¸ªéƒ¨åˆ†ï¼Œä¸€ä¸ªæ˜¯emf环境åQŒå¦ä¸€ä¸ªæ˜¯lombozæ’äšgåQŒåˆ†åˆ«åˆ°ä¸‹åˆ—地方åŽÀL‰¾

http://forge.objectweb.org/project/showfiles.php?group_id=97

http://download.eclipse.org/tools/emf/scripts/downloads.php#goto2.1.0I

  我下载的æ˜?/span>emf-sdo-runtime-I200412160800.zipå’?/span>org.objectweb.lomboz_3.1.0.N20050106.zip åQ?/span>

  ˜q™é‡Œä¸»è¦æ˜¯æ ¹æ?/span>eclipse选择适当çš?/span>lombozæ’äšgåQŒç„¶åŽæŸ¥çœ‹ä¸€ä¸?/span>lombozæ’äšgçš?/span> 介ç»åQŒé‚£é‡Œä¼šä»‹ç»éœ€è¦çš„emfæ’äšg的版本,然åŽå†å޻䏋é¢çš„åœ°å€æ‰?/span>emfæ’äšgã€?/span>

  好了åQŒè¯¥ä¸‹è²çš„都有了åQŒä¸‹é¢æˆ‘介ç»ä¸€ä¸‹å¦‚何安装和é…ç½®ã€?/span>

  一�/span> java环境安装

  ˜q™ä¸ªåªè¦ç›´æŽ¥å®‰è£…ž®±å¯ä»¥äº†åQŒä¸˜q‡æœ€å¥½èƒ½å®‰è£…在系¾lŸç›˜ä»¥å¤–的地方,˜q™æ ·å¯ä»¥æ›´å¥½ç†è§£jvm的酾|®ï¼›å®‰è£…好了以åŽåQŒéœ€è¦é…¾|®çŽ¯å¢ƒå˜é‡ï¼Œæ–°å¾JAVA_HOMEåQŒåƈ且酾|?/span>pathåQŒæŠŠjdkçš?/span>bin目录æ·ÕdŠ ˜q›åŽ»åQŒè¿™æ ·å°±å¯ä»¥åœ¨å‘½ä»¤è¡Œçš„ä“Q何èµ\径ä‹Éç”?/span>jdk的命令了ã€?/span>

  [‹¹‹è¯•] åQšç¼–写一ä¸?/span>hello world½E‹åºåQŒç„¶åŽåœ¨dos下ä‹Éç”?/span>javac hello.javaå’?/span>java hello命ä×oåQŒå¦‚æžœå¯ä»¥æ­£å¸¸æ‰§è¡Œï¼Œž®Þp¯æ˜?/span>jdk安装æˆåŠŸäº†ã€?/span>

  二�/span> tomcat安装

  解压版的直接解压ž®±å¯ä»¥äº†åQŒç„¶åŽé…¾|?/span>TOMCAT_HOMEåQŒå®‰è£…ç‰ˆçš„è¦æ³¨æ„的两点,一个是安装完之å?/span>tomcatçš„æœåŠ¡å°±èƒ½å¤Ÿå¯åŠ¨çš„äº†åQŒä½†æ˜¯è¿˜æ˜¯è¦é…ç½®TOMCAT_HOMEåQ›ç¬¬äºŒä¸ªž®±æ˜¯éœ€è¦æŸ¥çœ‹ä¸€ä¸‹å®‰è£…ç¨‹åºæ˜¯ä¸æ˜¯æŠ?/span>tomcatæœåŠ¡æ³¨å†ŒæˆäØ“windowsçš„å¯åЍæœåŠ¡ï¼Œéœ€è¦åˆ°æœåŠ¡é‡ŒæŸ¥çœ‹ï¼Œå¦‚æžœæœ‰è¿™ä¸ªé€‰é¡¹ž®±æŠŠå®ƒè®¾¾|®äؓ手动å¯åЍåQŒåÆˆä¸”å…ˆåœæ­¢˜q™ä¸ªæœåŠ¡ã€?/span>

  [‹¹‹è¯•]åQšä‹Éç”?/span>startup.bat命ä×oåQŒæœåŠ¡æ­£å¸¸å¯åЍ之åŽï¼Œie‹¹è§ˆå™¨é‡Œè¾“å…¥

  http://localhost:8080/ 如果出现正常的å°çŒ«é¡µé¢ï¼Œé‚£å°±åº”该没有问题了ã€?/span>

  三�/span> eclipse 3安装

  eclipse的安装倒是很简å•,åªè¦è§£åŽ‹åQŒç„¶åŽæŠŠeclipse目录å¤åˆ¶åˆ°ç›˜½W¦ä¸‹ž®±å¯ä»¥äº†åQŒå¯åŠ¨çš„æ—¶å€™ï¼Œ¾pÈ»Ÿä¼šè‡ªåЍ坻æ‰?/span>jvmåQŒå½“ç„¶å¯ä»¥å†ä»¥åŽé…ç½®åQŒä½†æ˜¯å¥½åƒæ˜¯å¿…须先安è£?/span>jdkã€?/span>

  四ã€?/span> tomcatæ’äšg安装åQ?/span>emfæ’äšg安装åQ?/span>lombozæ’äšg安装

  ˜q™å‡ éƒ¨åˆ†çš„æ­¥éª¤éƒ½æ˜¯ä¸€æ ïLš„åQŒè§£åŽ‹èÊY件包åQŒç„¶åŽæ ¹æ®é‡Œé¢çš„目录¾l“æž„åQŒæŠŠç›®å½•æ–‡äšg分别å¤åˆ¶åˆ?/span>featureæˆ?/span>plugins目录里,˜q™æ ·ž®Þp¡Œäº†ï¼Œä¸‹é¢ž®†è¯¦¾l†è®²˜qîC¸€ä¸?/span>eclipse的酾|®ã€?/span>

  五ã€?/span> é…ç½®eclipse

  1ã€?/span> 首先åQŒæ‰“å¼€é…ç½®ç•Œé¢ window->preferences。如果这几个æ’äšg安装æˆåŠŸåQŒå·¦è¾¹çš„列表里应该有lombozå’?/span>tomcat的选项。如果没有,‹‚€æŸ¥ä¸Šé¢çš„æ­¥éª¤æ˜¯ä¸æ˜¯æ­£¼‹®ã€?/span>

  点击java->Installed JREsåQŒç„¶åŽæ˜¾½Cºå¦‚上,如果是åˆå§‹å®‰è£…çš„åQŒåªæœ‰æ˜¾½Cºç¬¬ä¸€ä¸?/span>jreåQˆä¸è¦é—®æˆ‘什么是jreåQŒè‡ªå·±æŸ¥èµ„料去)åQŒé‚£æ˜¯ç³»¾lŸé»˜è®¤çš„安装åœ?/span>c盘的jreåQŒå¦‚果系¾lŸå½“中安装了多个jdkåQŒé‚£ä¹ˆæœ€å¥½è¿˜æ˜¯æ–°å»ÞZ¸€ä¸ªï¼Œç‚¹å‡»addåQŒç„¶åŽé€‰æ‹©ä½ éœ€è¦ä‹É用的jdk的佾|®ï¼Œç„¶åŽå®ƒä¼šè‡ªåЍå¯ÀL‰¾å…¶ä»–çš„å‚æ•ŽÍ¼Œç‚¹å‡»ok。返回界é¢ä¹‹åŽï¼Œä¸è¦å¿˜è®°ç‚šw€‰åˆšåˆšæ·»åŠ çš„jdkåQŒè¦ä¸ç„¶æ˜¯æ²¡æœ‰ç”¨çš„。然åŽç‚¹å‡?/span>ok关闭˜q™ä¸ª½H—å£

一ã€å®‰è£?/span>j2sdk1.5åQŒè®¾å®šçŽ¯å¢ƒå˜é‡ã€?/span>
  
  我的安装目录æ˜?/span> D:\j2sdk ã€?/span> 所以设定环境å˜é‡å¦‚下:
  
  æ“作åQ?/span> My Computer(å³é”®) ----> Properties ----> Advanced ----> Environment Variables :
  

 


  讑֮šçŽ¯å¢ƒå˜é‡ä¸ºï¼š
  
  1. (æ–°å¾)JAVA_HOME: D:\j2sdk
  
  2. (æ–°å¾)CLASSPATH: .;D:\j2sdk\lib\dt.jar;D:\j2sdk\lib\tools.jar (注æ„åQšç‚¹å·ä¸èƒ½çœç•¥ï¼Œè¡¨ç¤ºå½“å‰ç›®å½•)
  
  3. ¾~–辑PATHçš„å˜é‡å€û|¼Œåœ¨åŽé¢åŠ ä¸?/span> ;%JAVA_HOME%\bin åQˆæ³¨æ„ï¼šè¦æœ‰åˆ†å·éš”å¼€åQ?/span>
  
  到这里,j2sdk安装完毕åQŒç”¨å‘½ä×o½Ž€å•测试一ä¸?/span>: java -version
  

 


  二ã€å®‰è£?/strong>Tomcat5.0
  
  åŽÖM¸‹è½½ä¸€ä¸?/span>Tomcatçš?/span>zip版, 我用的是 jakarta-tomcat-5.0.28.zip åQ?/span> ä¸ä¸‹å®‰è£…版的目的是å¯ä»¥ä‹É用多ä¸?/span>Tomcatã€?/span>
  
  直接解压¾~©åˆ° G 盘:
  

 


  三ã€å®‰è£?/strong>Eclipse3.1
  
  下è²åœ°å€åQ?/span>http://www.eclipse.org/downloads/index.php 扑ֈ°ä¸‹é¢çš„页é¢ï¼š
  

 


  找个亚洲的æœåС噍䏋è²,速度会快一ç‚V€‚在flashget中如下:
  

 


  直接解压¾~©å°±å¯ä»¥ç”¨äº†åQŒæˆ‘是解压羃åœ?/span> G 盘:
  

 


  到这里, Eclipse3.1 安装完毕�/span>
  
  四ã€å®‰è£?/strong> Myeclipse4.0 (myeclipse䏿˜¯å…费的,所以我们先下è²ä¸€ä¸ªè¯•用版åQŒå†åŽÈ½‘上下载一个注册机)
  
  下è²ç‰ˆæœ¬åQ?/span> MyEclipse Enterprise Workbench 4.0 GA for Windows 98/2000/XP (8/29/2005) 如下图:
  

 


  åœ?/span>flashget下è²ä¸­æ˜¾½Cºå¦‚下:
  

 


  下è²å®ŒæˆåŽï¼Œå¼€å§‹å®‰è£…:
  
  1. 选择你的eclipse所在目录,其它都点下一步,默认安装�/span>
  

 


  2.安装完毕之åŽåQŒæ‰¾åˆ?/span>myeclipse的安装目录, 如下图所½Cºï¼š
  

 


  3. ž®?/span>featureså’?/span>plugins˜q?/span>2个目录å¤åˆ¶å‡ºæ¥ã€‚这样åšçš„目的是ä¸ÞZº†åœ¨ä¸€å°ç”µ(sh¨´)脑上å¯ä»¥ä½¿ç”¨å¤šä¸ªç‹¬ç«‹çš?/span>eclipseå¼€å‘åã^å°ã€‚如下图所½Cºï¼š
  

 


  4. ž®†åˆšæ‰å®‰è£…çš„ myeclipse 删除åQˆå安装åQ‰ã€?/span>
  
  5. ž®†ç¬¬3æ­¥å¤åˆ¶çš„featureså’?/span>plugins˜q?/span>2个目å½?/span>, 覆盖åˆ?/span> G
  

 


  解释一下上é¢åšçš„原因: 因䨓myeclipseæ˜?/span>eclipseçš„æ’ä»Óž¼Œæ‰€ä»¥åªè¦æŠŠfeatureså’?/span>plugins˜q?/span>2个目录覆盖在eclipse的相应目录,eclipseä¼šè‡ªåŠ¨è®¤å‡ø™¿™äº›æ’ä»¶ã€?/span>
  
  到这一步,myeclipse½Ž—是安装完毕ã€?/span> G 盘目录如下:
  

 


  五ã€ç ´è§?/strong>myeclipse4.0
  
  1.åŽ?/span>googleæœçƒ¦ä¸‹è²ä¸€ä¸ªæ³¨å†Œæœºã€‚如下图åQ?/span>
  

 


  2. 输入åå­—åQŒç®—åøP¼Œå¦‚下图:
  

 


  3.˜q行eclipse.exe, 讑֮šåŒç›®å½•下çš?/span>workspaceåQ?/span> 如下图:
  

 

4.myeclipseæ’äšgå·²ç»è¢«è‡ªåŠ¨è®¤å‡ºï¼Œå¦‚ä¸‹å›¾ï¼š
  

 


  5. 点击 Window ----> Preferences ----> Subscription ----> Enter Subscription, 输入注册ç ï¼Œç ´è§£myeclipseåQŒä¸‹å›¾ï¼š
  

 


  到这里,myeclipse破解完毕�/span>
  
  六ã€è®¾å®?/strong>myeclipseçš?/span> jdk å’?/span> tomcat æœåС噍ã€?/span>
  
  1. 增加一ä¸?/span>jreåQ?/span> 点击 Window ----> Preferences ----> Installed JREs ----> Add 如下图:åQˆæ‰¾åˆ°è‡ªå·Þqš„j2sdk安装目录åQ?/span>
  

 


  2. 指定TomcatæœåŠ¡å™¨ï¼ŒWindow ----> Preferences ----> Tomcat5, òq¶è®¾å®šè¯¥tomcat所用的jre为我们上一步新增的。如下é¢2个图åQ?/span>
  

 


  

 


  到这一步,我们的开å‘环境就æ­å¾å®Œæ¯•了ã€?/span>
  
ã€€ã€€ä¸ƒã€æ–°å»ÞZ¸€ä¸ªé¡¹ç›®æ¥è¯•一试?
  
  1. 点击 File ----> New ----> Project , 选择Web ProjectåQ?/span> å†ç‚¹ä¸‹ä¸€æ­¥ï¼Œ 如下图:
  

 


  2. åœ?/span> Project Name 中输å…?/span>teståQ?/span> ç‚?/span> finishã€?/span> 如下图:
  

 


  3. å¼€å‘工兯‚‡ªåŠ¨ç”Ÿæˆäº†test™å¹ç›®ã€?/span> 如下图:
  

 


  4.点击 WebRoot ----> (å³é”®)New ----> JSP , æ–°å¾ä¸€ä¸?/span> JSP ™åµé¢ åQ?/span>hello.jspåQ‰ï¼Œ 如下图:
  

 


  5. ¾~–辑器生æˆçš„æ˜?/span>jspæ–‡äšg是按模æ¿ç”Ÿæˆçš„, ½Ž€å•修改一下, 代ç å¦‚下图:
  

 


  6. å†ç”¨åŒæ ·çš„æ–¹æ³•, æ–°å¾ä¸€ä¸ªå« hello_result.jsp çš?/span>JSPæ–‡äšgåQ?/span> 代ç å¦‚下图:
  

 


  7. deployåQˆéƒ¨¾|ÔŒ¼‰˜q™ä¸ªtest™å¹ç›®ã€?/span> 如下图: åQˆç”¨é»‘线ç”ÖMº†çš„æŒ‰é’®å°±æ˜?/span> deploy 的按钮) åQ?/span> 在弹出窗å£ç‚¹ AddåQ?/span> 部çÖvtest™å¹ç›®ã€?/span>
  

 


  8. å¯åЍTomcatæœåŠ¡å™¨ã€‚å¦‚ä¸‹å›¾åQ?/span> åQˆç”¨é»‘线ç”ÖMº†çš„æŒ‰é’®å°±æ˜?/span> å¯åЍTomcat 的按钮)
  

 


  9. Tomcat å¯åŠ¨è¾“å‡ºä¿¡æ¯å¦‚下图:
  

 


  10. ¾|‘页讉K—®å’Œç»“果图.
  

 


  


  到这里,¾lˆäºŽæžå®Œäº†ï¼åQï¼å¤§å®¶å¯ä»¥åŽ?/span>eclipseçš?/span>workspace目录下看çœ?/span>test™å¹ç›®çš„代ç ï¼Œä¹Ÿå¯ä»¥åŽ»Tomcatçš?/span>webapps目录下,看看部çÖv之åŽçš?/span> test™å¹ç›®çš„结构ã€?/span>


 

 



]]>
Java容器分æž--Listå’ŒSethttp://www.aygfsteel.com/microlab4321/articles/137049.html冬天凸™µ°çš„çŒªå†¬å¤©å‡ø™µ°çš„猪Wed, 15 Aug 2007 13:21:00 GMThttp://www.aygfsteel.com/microlab4321/articles/137049.htmlhttp://www.aygfsteel.com/microlab4321/comments/137049.htmlhttp://www.aygfsteel.com/microlab4321/articles/137049.html#Feedback0http://www.aygfsteel.com/microlab4321/comments/commentRss/137049.htmlhttp://www.aygfsteel.com/microlab4321/services/trackbacks/137049.html  作者:Flyingis

    容器¾cÕd¯ä»¥å¤§å¤§æé«˜ç¼–½E‹æ•ˆçŽ‡å’Œ¾~–程能力åQŒåœ¨Java2中,所有的容器都由SUNå…¬å¸çš?/span>Joshua Bloch˜q›è¡Œäº†é‡æ–°è®¾è®¡ï¼Œä¸°å¯Œäº†å®¹å™¨ç±»åº“的功能ã€?/span>

         Java2容器¾cȱ»åº“的用途是“ä¿å­˜å¯¹è±¡”åQŒå®ƒåˆ†äؓ两类åQ?/span>

Collection----一¾l„独立的元素åQŒé€šå¸¸˜q™äº›å…ƒç´ éƒ½æœä»ŽæŸ¿U规则ã€?/span>Listå¿…é¡»ä¿æŒå…ƒç´ ç‰¹å®šçš„顺åºï¼Œè€?/span>Setä¸èƒ½æœ‰é‡å¤å…ƒç´ ã€?/span>

Map----一¾l„æˆå¯¹çš„“键值对”对象åQŒå³å…¶å…ƒç´ æ˜¯æˆå¯¹çš„对象,最典型的应用就是数æ®å­—典,òq¶ä¸”˜q˜æœ‰å…¶å®ƒòq¿æ³›çš„应用。å¦å¤–,Mapå¯ä»¥˜q”回其所有键¾l„æˆçš?/span>Set和其所有值组æˆçš„CollectionåQŒæˆ–å…‰™”®å€¼å¯¹¾l„æˆçš?/span>SetåQŒåƈ且还å¯ä»¥åƒæ•°¾l„一æ äh‰©å±•多¾l?/span>MapåQŒåªè¦è®©Map中键值对的æ¯ä¸?#8220;å€?#8221;是一ä¸?/span>Mapå›_¯ã€?/span>

1.
˜q­ä»£å™?/font>

       ˜q­ä»£å™¨æ˜¯ä¸€¿U设计模å¼ï¼Œå®ƒæ˜¯ä¸€ä¸ªå¯¹è±¡ï¼Œå®ƒå¯ä»¥éåŽ†åÆˆé€‰æ‹©åºåˆ—中的对象åQŒè€Œå¼€å‘äh员ä¸éœ€è¦äº†è§£è¯¥åºåˆ—的底层结构。è„P代器通常被称ä¸?#8220;轻釾U?#8221;对象åQŒå› ä¸ºåˆ›å»ºå®ƒçš„代价å°ã€?/span>

       Java中的Iterator功能比较½Ž€å•,òq¶ä¸”åªèƒ½å•å‘¿UÕdЍåQ?/span>

(1)    使用æ–ÒŽ(gu¨©)³•iterator()è¦æ±‚容器˜q”回一ä¸?/span>Iterator。第一‹Æ¡è°ƒç”?/span>Iteratorçš?/span>next()æ–ÒŽ(gu¨©)³•æ—Óž¼Œå®ƒè¿”回åºåˆ—çš„½W¬ä¸€ä¸ªå…ƒç´ ã€?/span>

(2)    使用next()获得åºåˆ—中的下一个元素ã€?/span>

(3)    使用hasNext()‹‚€æŸ¥åºåˆ—中是妘q˜æœ‰å…ƒç´ ã€?/span>

(4)    使用remove()ž®†è„P代器新返回的元素删除ã€?/span>

Iteratoræ˜?/span>Java˜q­ä»£å™¨æœ€½Ž€å•的实现åQŒäØ“List设计çš?/span>ListIteratorå…ähœ‰æ›´å¤šçš„功能,它å¯ä»¥ä»Žä¸¤ä¸ªæ–¹å‘é历ListåQŒä¹Ÿå¯ä»¥ä»?/span>List中æ’入和删除元素ã€?/span>

2.List的功能方�/span>

List(interface): ‹Æ¡åºæ˜?/span>List最é‡è¦çš„特点;它确ä¿ç»´æŠ¤å…ƒç´ ç‰¹å®šçš„™åºåºã€?/span>Listä¸?/span>Collectionæ·ÕdŠ äº†è®¸å¤šæ–¹æ³•ï¼Œä½¿å¾—èƒ½å¤Ÿå?/span>List中间æ’入与移除元ç´?/span>(åªæŽ¨è?/span>LinkedList使用)。一ä¸?/span>Listå¯ä»¥ç”ŸæˆListIteratoråQŒä‹É用它å¯ä»¥ä»Žä¸¤ä¸ªæ–¹å‘éåŽ?/span>ListåQŒä¹Ÿå¯ä»¥ä»?/span>List中间æ’入和删除元素ã€?/span>

ArrayList: 由数¾l„实现的List。它å…è®¸å¯¹å…ƒç´ è¿›è¡Œå¿«é€Ÿéšæœø™®¿é—®ï¼Œä½†æ˜¯å?/span>List中间æ’入与移除元素的速度很慢ã€?/span>ListIteratoråªåº”该用æ¥ç”±åŽå‘å‰éåŽ?/span>ArrayListåQŒè€Œä¸æ˜¯ç”¨æ¥æ’入和删除元素åQŒå› ä¸ø™¿™æ¯?/span>LinkedList开销è¦å¤§å¾ˆå¤šã€?/span>

LinkedList: 寚w¡ºåºè®¿é—®è¿›è¡Œäº†ä¼˜åŒ–åQŒå‘List中间æ’入与删除得开销ä¸å¤§åQŒéšæœø™®¿é—®åˆ™ç›¸å¯¹è¾ƒæ…¢(å¯ç”¨ArrayList代替)。它å…ähœ‰æ–ÒŽ(gu¨©)³•addFirst()ã€?/span>addLast()ã€?/span>getFirst()ã€?/span>getLast()ã€?/span>removeFirst()ã€?/span>removeLast()åQŒè¿™äº›æ–¹æ³?/span>(没有在ä“Qä½•æŽ¥å£æˆ–基类中定义过)使得LinkedListå¯ä»¥å½“作堆栈ã€é˜Ÿåˆ—å’ŒåŒå‘队列使用ã€?/span>

3.Set的功能方�/span>

Set(interface): 存入Setçš„æ¯ä¸ªå…ƒç´ å¿…™åÀL˜¯å”¯ä¸€çš„ï¼Œå› äØ“Setä¸ä¿å­˜é‡å¤å…ƒç´ ã€‚加å…?/span>Setçš?/span>Object必须定义equals()æ–ÒŽ(gu¨©)³•以确ä¿å¯¹è±¡çš„唯一性ã€?/span>Setä¸?/span>Collection有完全一æ ïLš„æŽ¥å£ã€?/span>Set接å£ä¸ä¿è¯ç»´æŠ¤å…ƒç´ çš„‹Æ¡åºã€?/span>

HashSet: 为快速查找而设计的Set。存å…?/span>HashSet的对象必™åÕd®šä¹?/span>hashCode()ã€?/span>

TreeSet: ä¿æŒ‹Æ¡åºçš?/span>SetåQŒåº•å±‚äØ“æ ‘ç»“æž„ã€‚ä‹É用它å¯ä»¥ä»?/span>Set中æå–有åºçš„åºåˆ—ã€?/span>

LinkedHashSet: å…ähœ‰HashSet的查询速度åQŒä¸”内部使用链表¾l´æŠ¤å…ƒç´ çš„顺åº?/span>(æ’入的次åº?/span>)。于是在使用˜q­ä»£å™¨éåŽ?/span>Setæ—Óž¼Œ¾l“果会按元素æ’å…¥çš„æ¬¡åºæ˜¾½Cºã€?/span>

       HashSet采用散列函数对元素进行排åºï¼Œ˜q™æ˜¯ä¸“门为快速查询而设计的åQ?/span>TreeSet采用¾U¢é»‘树的数殾l“æž„˜q›è¡ŒæŽ’åºå…ƒç´ åQ?/span>LinkedHashSet内部使用散列以加快查询速度åQŒåŒæ—¶ä‹É用链表维护元素的‹Æ¡åºåQŒä‹É得看èµäh¥å…ƒç´ æ˜¯ä»¥æ’入的顺åºä¿å­˜çš„ã€‚éœ€è¦æ³¨æ„的是,生æˆè‡ªå·±çš„ç±»æ—Óž¼ŒSet需è¦ç»´æŠ¤å…ƒç´ çš„存储™åºåºåQŒå› æ­¤è¦å®žçްComparable接å£òq¶å®šä¹?/span>compareTo()æ–ÒŽ(gu¨©)³•ã€?br>



]]>
Ö÷Õ¾Ö©Öë³ØÄ£°å£º ÄÏ´¨ÊÐ| ±¾ÏªÊÐ| Í­´¨ÊÐ| ÇçÂ¡ÏØ| ºÏ´¨ÊÐ| ³çÈÊÏØ| ÁÖ¿ÚÏØ| ÅíË®| Ð˹úÏØ| ÔúÀ¼ÍÍÊÐ| ÀàÎÚÆëÏØ| ƽÏçÏØ| ºéÑÅÏØ| ÂÖÌ¨ÏØ| Ë«³ÇÊÐ| ÄþÔ¶ÏØ| ²ÊƱ| áÓãôÏØ| »ôÉ½ÏØ| »´±±ÊÐ| ÐÂÃÜÊÐ| ÎäÒÄɽÊÐ| ÖêÖÞÊÐ| ·±²ýÏØ| ÂÃÓÎ| ÏæÏçÊÐ| º£³ÇÊÐ| ÓñÌïÏØ| ×ÊÖÐÏØ| ´ïÀ­ÌØÆì| ·ïÏèÏØ| ºÍÁúÊÐ| ̨°²ÏØ| ÔÀÑôÊÐ| ÔÓ¶àÏØ| °×ɽÊÐ| ¸ß´¾ÏØ| ÉÛ¶«ÏØ| ¹ã¶«Ê¡| ·ï¸ÔÏØ| ¸ßÁêÏØ|