Chinaunix

标题: [原创]我的JSP环境的配置过程!(JDK+TOMCAT+MYSQL) [打印本页]

作者: 狼神萧枫    时间: 2006-03-29 21:13
标题: [原创]我的JSP环境的配置过程!(JDK+TOMCAT+MYSQL)
感谢CU的JAVA版!
感谢  perryhg   kakasi   艾斯尼勒 等众多网友的热心帮助!
写下本文是为了让后来人少犯错误,少走弯路,希望对他们有帮助!
当中难免会有错漏,还请大家指正!

JSP实验环境的配置
1、准备工具
JDK      版本1.5   下载地址:http://java.sun.com/j2se/1.5.0/download.jsp
TOMCAT   版本5.5   下载地址:http://tomcat.apache.org/download-55.cgi
MYSQL    版本5.0   下载地址:http://dev.mysql.com/downloads/mysql/5.0.html
JDBC驱动 版本3.1   下载地址:http://dev.mysql.com/downloads/connector/j/3.1.html

2、安装工具
(1)JDK:安装路径:C:\JDK1.5
(2)TOMCAT:解压至:D:\TOMCAT5.5
(3)MYSQL:安装路径:D:\MYSQL5.0 帐号root密码chen
(4)JDBC驱动:将文件解压至%TOMCAT%的\common和\shared目录

3、环境变量配置
打开 系统属性--高级--环境变量 对话框,在 系统变量 进行如下操作:

新建 JAVA_HOME,值为 C:\JDK1.5;
新建 PATH,值为%JAVA_HOME%\bin;D:\MYSQL5.0\MySQL Server 5.0\bin;
---- perryhg 注释开始: ----
我曾经遇到过同时在系统变量里面设置JAVA_HOME,但是其他变量用%JAVA_HOME%无效的情况,
所以保险起见PATH应该用完整路径PATH=C:\JDK1.5\bin;...other path...;%PATH%
---- perryhg 注释结束: ----

特别说明:JDK1.4版本以上不需要配置CLASSPATH!本人从头到尾都未配置。此处要特别多谢perryhg版

主!

4、安装服务
1、安装TOMCAT服务
打开CMD窗口,定位至D:\TOMCAT5.5,输入命令:sevice.bat /install
TOMCAT服务名为 Apache Tomcat
2、安装MYSQL服务
MYSQL服务在安装MYSQL的时候已经安装!
MYSQL服务名为 MYSQL

JSP实验环境的测试
1、测试JDK
准备测试文件test.java,放至C:\根目录,内容如下:

public class test{
public static void main(String args[]){
System.out.println("This is a test program.");
}
}

打开CMD窗口,定位至C:\,然后输入命令:
javac test.java
此时应在C:\根目录会多出个test.class文件
java test.class
此时在窗口中应输出
测试成功

2、测试TOMCAT
首先启动TOMCAT服务
然后打开浏览器,输入地址
http://localhost:8080
此时应出现TOMCAT的欢迎界面
测试成功
点击Tomcat Manager可进入后台管理页面。管理员名和密码在%TOMCAT%\conf的tomcat-users.xml中设

置。用记事本打开,在</tomcat-users>前添加<user username="root" password="chen"
roles="admin,manager"/>,这样就添加了一个名为root密码为chen的管理员

3、测试MYSQL
首先启动MYSQL服务
然后打开CMD窗口,输入命令:
mysql -uroot -p
Enter password:chen
这时当然是输入密码chen啦,然后会出现MYSQL的欢迎词和版本信息
测试成功
然后你可以试着新建一个数据库,比如新建一个名为school的数据库以备后面测试:
create database school

4、测试JDBC驱动
准备测试文件testjdbc.jsp,放至%TOMCAT%/webapps/root/目录下,内容如下:

<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%   
    String driver="com.mysql.jdbc.Driver";
    String url="jdbc:mysql://localhost:3306/school";  //连接到school数据库
    String userid="root";                             //用户
    String passwd="chen";                             //密码

    try{
       Class.forName(driver);
       }
    catch(Exception e){
        out.println("无法载入"+driver+"驱动程序!");
        e.printStackTrace();
    }
   
    try {
        Connection con=DriverManager.getConnection(url,userid,passwd);
         if(!con.isClosed())
            out.println("成功连接数据库!");
            con.close();
        }
    catch(SQLException SQLe){
        out.println("无法连接数据库!");
    }
   
%>
</BODY>
</HTML>

然后打开浏览器,输入地址http://localhost:8080/testjdbc.jsp
此时应出现
成功连接数据库!
测试成功


OK!
环境建好之后,你就可以开始你的下一步工作了!
当然首先要把数据库、表准备好,推荐使用界面工具操作MYSQL:mysql-front、mysql adminstrator

等等~~你应该可以想像在黑色的DOS命令窗口下通过命令建库建表输入数据的痛苦:)

希望对后来者有帮助!

[ 本帖最后由 perryhg 于 2006-4-2 17:04 编辑 ]
作者: kakasi    时间: 2006-03-30 12:57
感谢  perryhg   kakasi   艾斯尼勒 等众多网友的热心帮助!

支持原创,支持总结,支持引用~~~:em11:
作者: chouy    时间: 2006-03-30 13:04
写得是挺详细,早看到就好了!
现在做这个都已经是过去时了。步骤差不多。
作者: jervishe    时间: 2006-03-30 13:13
收先
作者: perryhg    时间: 2006-03-30 15:27
有一点,好像
TOMCAT_HOME=...
也是不需要的
作者: xxjoyjn    时间: 2006-03-30 17:03
可以借鉴
作者: 傲雪寒梅    时间: 2006-03-30 19:18
标题: re
怎么又把逻辑代码写到jsp中呢,害人哦
作者: 狼神萧枫    时间: 2006-03-30 20:56
原帖由 perryhg 于 2006-3-30 15:27 发表
有一点,好像
TOMCAT_HOME=...
也是不需要的


噢?也可以不需要?

呵呵,等我写完论文试试~~~~~~

谢谢perryhg的不吝赐教:)
作者: 狼神萧枫    时间: 2006-03-30 20:57
原帖由 傲雪寒梅 于 2006-3-30 19:18 发表
怎么又把逻辑代码写到jsp中呢,害人哦


逻辑代码?
害人?

何出此言呢?
还请赐教!
作者: perryhg    时间: 2006-03-30 22:36
梅姐说的是jsp代码里面写程序代码是不推荐的做法。

<%@ page contentType="text/html;charset=GB2312" %>
<jsp:useBean id="dbtbean" class="org.mycomp.DBTest" scope="page"/>
<jsp:setProperty name="dbtbean" property="*"/>
<HTML>
<BODY>
<%=dbtbean.getTestResult()%>
</BODY>
</HTML>

然后把你的代码都写到后台的bean里面的函数里面去。jsp里面调用这个函数就可以了。
作者: 傲雪寒梅    时间: 2006-03-31 08:04
标题: re
呵呵,确实是这个意思,我不推荐把程序代码写到jsp中,如果此文章能在构架上写好的话估计对更多的人有所帮助哦
作者: wuhao1001    时间: 2006-03-31 14:49
既然如此,傲雪寒梅 可以多写些经验文章,防止俺们初学者绕弯了。
作者: 艾斯尼勒    时间: 2006-03-31 14:56
关于scriptlet的问题,我认为初学者(尤其是现学jsp的)先写没关系,等学会了beans和servlet已经自定义标签再改就好啦。否则既不会beans也不会servlet不写scriptlet怎么搞阿呵呵
作者: kakasi    时间: 2006-03-31 16:31
初学阶段,原型开发阶段,没事练笔阶段,,,均可以写

好代码不是一蹴而就的,没有2年的代码积累根本做不到,而且有的时候懒惰因素会左右你的手指:em11:
作者: bjchenxu    时间: 2006-03-31 17:50
支持一下,可以作为新手指南

同时也希望大家能发一些有深度的文章来分享
作者: reeds    时间: 2006-04-02 01:56
8错
很适合像我这样的新手

THx
作者: reeds    时间: 2006-04-03 09:51
有问题
1.我把:JDBC驱动:将文件解压后为文件夹mysql-connector-java-3.1.12
把它分别放到至%TOMCAT%的\common和\shared目录下
结果不行,无法载入驱动程序
2.把这个文件夹里的所有东西直接拷到\common和\shared目录下,还是不行,无法载入驱动程序
其他步骤都按照上面说的设置了,问题出在哪呢??

SOS,谢谢
作者: kakasi    时间: 2006-04-03 13:02
原帖由 reeds 于 2006-4-3 10:51 发表
有问题
1.我把:JDBC驱动:将文件解压后为文件夹mysql-connector-java-3.1.12
把它分别放到至%TOMCAT%的\common和\shared目录下
结果不行,无法载入驱动程序
2.把这个文件夹里的所有东西直接拷到\common和\shar ...


jar不用解开,不过一旦解开了就得配置到classpath中去;

真的不用解开
作者: reeds    时间: 2006-04-03 13:53
是不是只要把mysql-connector-java-3.1.12.zip解压出来的mysql-connector-java-3.1.12-bin.jar拷贝到%TOMCAT%的\common和\shared目录下,但我试了一下还是不行,照样是无法载入驱动设备.

另外,PATH的设置我把D:\MYSQL5.0\MySQL Server 5.0\bin;改成了D:\MYSQL5.0\bin;这样每次它都会随开机就启动.而TOMCAT的下载的是安装版,不是解压版,所以不用"打开CMD窗口,定位至D:\TOMCAT5.5,输入命令:sevice.bat /install"来启动TOMCAT,每次也是开机就启动服务.

这样设置存在什么错误呢????
为什么还是不行,还是出现无法载入驱动设备呢??

求助!!!
谢谢
谢谢
作者: perryhg    时间: 2006-04-03 14:33
原帖由 reeds 于 2006-4-3 13:53 发表
是不是只要把mysql-connector-java-3.1.12.zip解压出来的mysql-connector-java-3.1.12-bin.jar拷贝到%TOMCAT%的\common和\shared目录下,但我试了一下还是不行,照样是无法载入驱动设备.

另外,PATH的设置我把D:\ ...

是把jar文件copy到%TOMCAT%\common\lib 下面 或者 %TOMCAT%\shared\lib 下面,不用两边都copy的。common\lib下面不仅对webapp可见,对tomcat的server也可用,而shared下面仅对所有的webapp可见。
作者: reeds    时间: 2006-04-03 17:17
好的
谢谢perryhg
作者: 狼神萧枫    时间: 2006-04-03 23:04
嗯,对,还是perryhg说的明白!

不好意思,我可能没讲清楚!
作者: 快乐的土豆    时间: 2006-04-04 09:54
JAVA_HOME最好要设
CATALINA_HOME最好要设

这样会减少走很多弯路。
作者: gaoxin    时间: 2006-04-05 15:10
linux版本好像没这么容易.有linux版么
作者: xxjoyjn    时间: 2006-04-05 15:32
是基于WINDOWS的?
作者: perryhg    时间: 2006-04-05 20:18
Linux下面设置也是一样的啊,你有什么困难吗?
作者: 狼神萧枫    时间: 2006-04-09 17:37
今天偶然看到,本贴居然被人剽窃,
http://bbs.zol.com.cn/index20060403/index_164_3785.html
哪人还是个版主,唉,有些论坛的水平啊~~
作者: perryhg    时间: 2006-04-10 03:37
中国是知识产权方面受害最大的国家,仔细体会一下这句话吧
作者: wzls3146    时间: 2006-04-12 11:53
好贴,支持~~
作者: cfqmxh    时间: 2006-04-12 13:10
初学有问题:
我用的是JDK1.4,Tomcat5.0,MYSQL5.0,各项测试都能运行了,可就是在测试JDBC驱动时总提示"无法载入com.mysql.jdbc.Driver驱动程序! 无法连接数据库! "
在MYSQL中已经建了School数据库了,用的是你测试JDBC驱动
的例子.我将mysql-connector-java-3.1.12-bin.jar文件也拷贝到
D:\Tomcat5.0\common\lib文件下了的.试了两天了都不行,到底是怎么回事呢?谢谢!
作者: cfqmxh    时间: 2006-04-13 09:40
现在JDBC测试行了,可测试JDK时又出问题了,在cmd下输命令
java test 报Exception in thread "main" java.lang.NoClassDefFoundError: test
而在cmd下输入 java -classpath . test却能正确运行.
我环境变量中classpath=.;d:\jdk1.4\lib\dt.jar;d:\jdk1.4\lib\tools.jar;d:\jdk1.4\bin;d:\jdk1.4\lib
不知道该怎么办了,请指点一下.谢谢!
作者: huipengdeng    时间: 2006-04-14 13:43
大家都好牛啊
作者: 傲雪寒梅    时间: 2006-04-14 17:32
标题: re
下面是hibernate等,这样就不用把逻辑代码写到jsp里了,希望大家指正,驱动程序更改也很方便了。下面代码是帮别人做的信息系统登录模块,没什么别意思,就是认为逻辑代码不应该写到jsp中,要不很难维护的,此贴原创者不要生气哈,呵呵 至于java环境如何配置就不写了,上面说的很清楚了。下面的代码请大家多提意见哦。

  1. package org.infman;



  2. import org.hibernate.Session;

  3. import org.hibernate.SessionFactory;

  4. import org.hibernate.cfg.Configuration;

  5. import org.hibernate.HibernateException;



  6. public final class HiberSession

  7. {

  8.         Session session = null;

  9.        

  10.         public Session returnSession()

  11.         {

  12.                 try

  13.                 {

  14.                         Configuration cfg = new Configuration().configure("infman.cfg.xml");

  15.                         if(session == null)

  16.                         {

  17.                                 SessionFactory sf = cfg.buildSessionFactory();

  18.                                 session = sf.openSession();

  19.                         }

  20.                 }

  21.                 catch(HibernateException err)

  22.                 {

  23.                         err.printStackTrace();

  24.                         //System.exit(1);

  25.                 }

  26.                 return session;

  27.         }

  28. }


复制代码

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC
  3.                 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  4.                 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  5. <hibernate-configuration>
  6.     <session-factory>
  7.         <property name="hibernate.connection.driver_class">org.gjt.mm.mysql.Driver</property>
  8.         <property name="hibernate.connection.password">连接数据库密码</property>
  9.         <property name="hibernate.connection.url">jdbc:mysql://IP地址/数据库名</property>
  10.         <property name="hibernate.connection.username">连接数据库用户</property>
  11.         <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
  12.         
  13.         <!--<property name="hibernate.dbcp.maxActive">100</property>
  14.         <property name="hibernate.dbcp.whenExhaustedAction">1</property>
  15.         <property name="hibernate.dbcp.maxWait">120000</property>
  16.         <property name="hibernate.dbcp.maxIdle">10</property>
  17.         <property name="hibernate.dbcp.ps.maxActive">100</property>
  18.         <property name="hibernate.dbcp.ps.whenExhaustedAction">1</property>
  19.         <property name="hibernate.dbcp.ps.maxWait">120000</property>
  20.         <property name="hibernate.dbcp.ps.maxIdle">10</property>
  21.         <property name="hibernate.dbcp.validationQuery">select 1 from dual</property>
  22.         <property name="hibernate.dbcp.testOnBorrow">true</property>
  23.         <property name="hibernate.dbcp.testOnReturn">false</property>-->
  24.                 <property name="hibernate.connection.pool_size">10</property>
  25.                 <property name="hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
  26.                 <property name="hibernate.c3p0.min_size">8</property>
  27.                 <property name="hibernate.c3p0.max_size">20</property>
  28.                 <property name="hibernate.c3p0.timeout">2500</property>
  29.                 <property name="hibernate.c3p0.max_statements">50</property>
  30.         <mapping resource="org/infman/login.hbm.xml"/>
  31.     </session-factory>
  32. </hibernate-configuration>
复制代码

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-mapping  PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  3. <hibernate-mapping package="org.infman">
  4.         <class name="Login" table="login">
  5.                 <id name="id" type="int">
  6.                         <generator class="native"/>
  7.                 </id>
  8.                 <property name="username" column="username"/>
  9.                 <property name="userpassword" column="userpassword"/>
  10.         </class>
  11. </hibernate-mapping>
复制代码

  1. package org.infman;



  2. public class Login

  3. {

  4.         private int id;

  5.         private String userName;

  6.         private String userPassword;

  7.        

  8.         public void setId(int id)

  9.         {

  10.                 this.id = id;

  11.         }

  12.        

  13.         public int getId()

  14.         {

  15.                 return id;

  16.         }

  17.        

  18.         public void setUserName(String userName)

  19.         {

  20.                 this.userName = userName.trim();

  21.         }

  22.        

  23.         public String getUserName()

  24.         {

  25.                 return userName;

  26.         }

  27.        

  28.         public void setUserPassword(String userPassword)

  29.         {

  30.                 this.userPassword = userPassword.trim();

  31.         }

  32.        

  33.         public String getUserPassword()

  34.         {

  35.                 return userPassword;

  36.         }

  37.        

  38. }


复制代码

  1. package org.infman;



  2. //import javax.servlet.RequestDispatcher;

  3. //import javax.servlet.ServletException;

  4. import javax.servlet.http.HttpServletRequest;

  5. import javax.servlet.http.HttpSession;

  6. import javax.servlet.http.HttpServletResponse;

  7. import org.apache.struts.action.Action;

  8. //import org.apache.struts.action.ActionMessage;

  9. //import org.apache.struts.action.ActionMessages;

  10. import org.apache.struts.action.ActionForm;

  11. import org.apache.struts.action.ActionForward;

  12. import org.apache.struts.action.ActionMapping;

  13. //import org.apache.struts.util.MessageResources;



  14. public final class LoginCheck extends Action

  15. {

  16.         public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) throws Exception

  17.         {

  18.                 ActionForward myForward = null;

  19.                 boolean flag = false;

  20.                 //MessageResources messages = getResources(request);

  21.                 //ActionMessages errors = new ActionMessages();

  22.                 String userName = (String)((LoginForm)form).getUserName();

  23.                 String userPassword = (String)((LoginForm)form).getUserPassword();

  24.                 HiberLoginCheck logicCheck = new HiberLoginCheck();

  25.                 flag = logicCheck.check(userName,userPassword);

  26.                 if(flag)

  27.                 {

  28.                         request.removeAttribute(mapping.getAttribute());

  29.                         LoginSession loginSession = new LoginSession();

  30.                        

  31.                         loginSession.setUserName(userName);

  32.                         HttpSession session = request.getSession();

  33.                         session.setAttribute(Constants.LOGINSESSION_KEY,loginSession);

  34.                         //request.setAttribute("login",loginSession);

  35.                         myForward = mapping.findForward("success");

  36.                 }

  37.                 else

  38.                 {

  39.                         myForward = mapping.findForward("failure");

  40.                 }

  41.                 return myForward;

  42.         }

  43. }


复制代码

  1. package org.infman;



  2. import org.hibernate.Transaction;

  3. import org.hibernate.Session;

  4. import org.hibernate.HibernateException;

  5. //import java.util.Iterator;

  6. import java.util.List;

  7. import org.hibernate.Query;



  8. public class HiberLoginCheck

  9. {

  10.         private Session sess = null;

  11.         private Transaction t = null;

  12.         public boolean check(String userName,String userPassword)

  13.         {

  14.                 boolean flag = false;

  15.                 try

  16.                 {

  17.                         HiberSession session = new HiberSession();

  18.                         sess = session.returnSession();

  19.                         t = sess.beginTransaction();

  20.                         Query q = sess.createQuery("from Login where username=? and userpassword=?");

  21.                         q.setString(0,userName);

  22.                         q.setString(1,userPassword);

  23.                         List result = q.list();

  24.                         if(result.isEmpty())

  25.                         {

  26.                                 flag = false;

  27.                         }

  28.                         else

  29.                         {

  30.                                 flag = true;

  31.                         }

  32.                 }

  33.                 catch(HibernateException err)

  34.                 {

  35.                         err.printStackTrace();

  36.                         sess.close();

  37.                         System.exit(1);

  38.                 }

  39.                 finally

  40.                 {

  41.                         t.commit();

  42.                         if(sess != null)

  43.                         {

  44.                                 sess.close();

  45.                         }

  46.                 }

  47.                 return flag;

  48.         }

  49. }


复制代码

  1. package org.infman;



  2. public class LoginSession

  3. {

  4.         private String userName = null;

  5.        

  6.         public void setUserName(String userName)

  7.         {

  8.                 this.userName = userName.trim();

  9.         }

  10.        

  11.         public String getUserName()

  12.         {

  13.                 return userName;

  14.         }

  15. }


复制代码

  1. package org.infman;



  2. import javax.servlet.http.HttpServletRequest;

  3. import org.apache.struts.action.ActionMessage;

  4. import org.apache.struts.action.ActionErrors;

  5. import org.apache.struts.action.ActionForm;

  6. import org.apache.struts.action.ActionMapping;



  7. public final class LoginForm extends ActionForm

  8. {

  9.         /**

  10.          *

  11.          */

  12.         //private static final long serialVersionUID = 1L;

  13.         private String userName = null;

  14.         private String userPassword = null;

  15.        

  16.         public String getUserName()

  17.         {

  18.                 return userName;

  19.         }

  20.        

  21.         public void setUserName(String userName)

  22.         {

  23.                 this.userName = userName.trim();

  24.         }

  25.        

  26.         public void setUserPassword(String userPassword)

  27.         {

  28.                 this.userPassword = userPassword.trim();

  29.         }

  30.        

  31.         public String getUserPassword()

  32.         {

  33.                 return userPassword;

  34.         }

  35.        

  36.         public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)

  37.         {

  38.                 ActionErrors errors = new ActionErrors();

  39.                 if((userName == null)||((userName.length()<1)&&(userName.length()>18)))

  40.                 {

  41.                         errors.add("username",new ActionMessage("login.no.username.error"));

  42.                 }

  43.                 if((userPassword == null)||((userPassword.length()<1)&&(userPassword.length()>18)))

  44.                 {

  45.                         errors.add("userpassword",new ActionMessage("login.no.userpassword.error"));

  46.                 }

  47.                 return errors;

  48.         }

  49. }


复制代码

  1. package org.infman;



  2. public class Constants

  3. {

  4.         public static final String LOGIN_KEY = "login";

  5.         public static final String LOGINSESSION_KEY = "loginsession";

  6. }


复制代码

以上是我帮别人写的办公系统登录模块,用了hibernate+struts等。希望大家提些意见,在实际应用中,我用了tomcat的连接池,这样就改改infman.cfg.xml文件把

  1. <property name="connection.datasource">java:comp/env/JNDI名字</property>
  2. <property name="show_sql">false</property>
复制代码

这段替换上述文件连接池部分就可以了。如果要换驱动程序那么就把相应的驱动程序填写到

  1. <property name="connection.driver_class">你的驱动程序</property>
复制代码

就可以了 最后想说明一点的是如果对spring熟悉的人一定要用,不要吝啬,确实很有帮助的。这个项目我已经体会到了
作者: 傲雪寒梅    时间: 2006-04-14 17:35
标题: re
说明一下,我学hibernate和struts是参照孙卫琴的那两本书学的,所以很多写法就直接套用孙卫琴的模式了,不知道这是否算盗版
作者: zhlchen    时间: 2006-12-14 10:22
linux下如何做环境配置?
作者: tntxia    时间: 2006-12-14 16:48
呵呵,,现在我用JBoss了
作者: {[(...)]}    时间: 2006-12-14 21:08
特别说明:JDK1.4版本以上不需要配置CLASSPATH!

恐怕编译Servlet时会有麻烦!
作者: lonely_521    时间: 2007-01-20 13:46
测试的时候可以这么写,但是到实际应用的时候就不要这么写喽!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2