Java web eclipse问题集锦.docx
- 文档编号:5710985
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:9
- 大小:63.29KB
Java web eclipse问题集锦.docx
《Java web eclipse问题集锦.docx》由会员分享,可在线阅读,更多相关《Java web eclipse问题集锦.docx(9页珍藏版)》请在冰豆网上搜索。
Javawebeclipse问题集锦
Javawebeclipse问题集锦
1、MultipleContextshaveapathof"/***"
CouldnotpublishserverconfigurationforTomcatv6.0Serveratlocalhost.MultipleContextshaveapathof"/***"
出现这个异常是因为在server.xml里面有两个以上相同的Context定义
只要删除重复的就可以了
2、java.lang.ClassNotFoundException:
com.mysql.jdbc.Driver
因为缺少数据库驱动的jar包。
对于出现这个问题,是tomcat找不到MYSQLJAR包的问题。
要把相应数据库的jar包导入到项目中,所以只要把mysql-connector-java-5.1.7-bin.jar导入到tomcat的lib目录下面就可以了。
在java项目中,只需要引入mysql-connector-java-5.1.7-bin.jar就可以运行java项目。
建的如果是web工程,就把这个jar包拷贝到工程的lib目录下,如果是java工程,请右键buildpath--addactive那个选项并找到你的文件,点击打开即可!
3、mysql数据库连接
我写的一个用jsp连接MySQL数据库的代码。
要正确的使用这段代码,你需要首先在MySQL数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:
uid,pwd,然后插入几条测试数据。
欢迎各位提出改进的意见。
以下用两种方式来实现JSP连接MySql数据库。
第一种方式,用JSP实现。
程序代码
<%@pagecontentType="text/html;charset=gb2312"language="java"
import="java.sql.*"%>
<%
//**************************************
********* JDBC_ODBC连接MySql数据库,不需要设置数据源
*********************************/
//**********数据库连接代码 开始******/
//以下几项请自行修改
Stringserver="localhost"; //MYSQL服务器的地址
Stringdbname="test"; //MYSQL数据库的名字
Stringuser="root"; //MYSQL数据库的登录用户名
Stringpass="chfanwsp"; //MYSQL数据库的登录密码
Stringport="3306"; //SQLServer服务器的端口号,默认为1433
//数据库连接字符串
Stringurl="jdbc:
mysql:
//"+server+":
"+port+"/"+dbname+"?
user="+user+"&password="+pass+"&useUnicode=true&characterEncoding=GB2312";
//加载驱动程序
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
//建立连接
Connectionconn=DriverManager.getConnection(url);
//创建语句对象
Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
//**** 数据库连接代码 结束*******
Stringsql="select*fromusername";
ResultSetrs=stmt.executeQuery(sql);
//rs.first();
while(rs.next()){
out.print("用户名:
");
out.print(rs.getString("uid")+"密码:
");
out.println(rs.getString("pwd")+"
");
}
rs.close();
stmt.close();
conn.close();
%>
第二种方式,用JavaBean来实现。
请看代码:
DBConnMySql.java
编译以后的Class文件应该放在 WEB-INF\classes\conn目录下。
程序代码
packageconn; //导入包
importjava.sql.*; //导入数据库操作的类
publicclassDBConnMySql //构造方法,初始化
{
privateConnectionconn; //连接对象
privateStatementstmt; //语句对象
privateResultSetrs; //结果集对象
privateStringMySqldriver;//MYSQLServer驱动程序字符串
privateStringMySqlURL;//MYSQLServer连接字符串
//********************************
*用 org.gjt.mm.mysql.Driver驱动
* 该方法取得连接所需各种参数,组成连接字符串,然后再建立连接
* server;dbname,user,pass,port分别表示MYSQL服务器的地址,
* 数据库,用户名,密码,端口
**********************************/
publicConnectiongetConnToMySql(Stringserver,Stringdbname,Stringuser,Stringpass,Stringport){
//MYSQl驱动程序
MySqldriver="org.gjt.mm.mysql.Driver";
MySqlURL="jdbc:
mysql:
//"; //连接字符串一部分
try{
//完整的连接字符串
MySqlURL=MySqlURL+server+":
"+port+"/"+dbname+"?
user="+user+"&password="+pass+"&useUnicode=true&characterEncoding=GB2312";
Class.forName(MySqldriver);
conn=DriverManager.getConnection(MySqlURL);
}catch(Exceptione){
System.out.println("操作数据库出错,请仔细检查");
//System.err.println(e.getMessage());
}
returnconn;
}
//关闭数据库连接
publicvoidclose()
{
try{
//rs.close();
//stmt.close();
conn.close();
}catch(SQLExceptionsqlexception){
sqlexception.printStackTrace();
}
}
}
这个文件只是实现了数据库的连接,下面我们再写一个测试文件。
就是用sql语句从数据库里查询出记录,以验证我们数据库的连接是否成功。
connmysql.jsp文件源代码如下:
程序代码
<%@pagecontentType="text/html;charset=gb2312"language="java"
import="java.sql.*" %>
useBeanid="DBConn"scope="page"class="conn.DBConnMySql"/><% //以下几项请自行修改 Stringserver="localhost"; //MYSQL服务器的地址 Stringdbname="test"; //MYSQL数据库的名字 Stringuser="root"; //MYSQL数据库的登录用户名 Stringpass="chfanwsp"; //MYSQL数据库的登录密码 Stringport="3306"; //SQLServer服务器的端口号,默认为1433 Connectionconn=DBConn.getConnToMySql(server,dbname,user,pass,port); Statementstmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); Stringsql="select*fromusername"; Stringsql1="insertintousername(uid,pwd)values('梦想年华','梦想年华')"; stmt.executeUpdate(sql1); ResultSetrs=stmt.executeQuery(sql); while(rs.next()){ out.print("用户名: "); out.print(rs.getString("uid")+"密码: "); out.println(rs.getString("pwd")+" } //rs.close(); //stmt.close(); //conn.close(); DBConn.close(); %> 4、服务器45s内不能启动问题 StartingTomcatServeratlocalhosthasencountereraproblemServerTomcatv5.0Serveratlocalhost。 ServerTomcatv5.0Serveratlocalhostwasunabletostartwithin45seconds.Iftheserverrequiresmoretime,tryincreasingthetimeoutintheservereditor. 由于需要在项目启动时Debug跟踪问题,发现Tomcat启动45秒后会出现如下界面: 大致问题是Tomcat的默认启动时间是45秒,45秒内启动不了便会自动关闭服务,所以需要增加启动时间。 方法1: 在server中,双击servser选项卡里面的tomcat服务器,打开Tomcatv6.0atlocalhost的选项卡,找到timeout的下拉框,如下图, 将其修改保存即可。 方法2: 编辑servers.xml(your_workspace/.metadata/.plugins/org.eclipse.wst.server.core/servers.xml),搜索"start-timeout",把值改大,比如start-timeout="50000"。 当然,需要重启eclipse。 4、解决mysql“Accessdeniedforuser'root'@'localhost'” #mysql-uroot-p Enterpassword: ERROR1045(28000): Accessdeniedforuser'root'@'localhost'(usingpassword: NO) 使用网上介绍的方法修改root用户的密码: #mysqladmin-uroot-ppassword'newpassword' Enterpassword: mysqladmin: connecttoserverat'localhost'failed error: 'Accessdeniedforuser'root'@'localhost'(usingpassword: YES)' 现在终于被我找到了解决方法,如下(请先测试方法三,谢谢! ): 方法一: #/etc/init.d/mysqlstop #mysqld_safe--user=mysql--skip-grant-tables--skip-networking& #mysql-urootmysql mysql>UPDATEuserSETPassword=PASSWORD('newpassword')whereUSER='root'; mysql>FLUSHPRIVILEGES; mysql>quit #/etc/init.d/mysqlrestart #mysql-uroot-p Enterpassword: <输入新设的密码newpassword> mysql> 一、MySQL修改密码方法总结 首先要说明一点的是: 一般情况下,修改MySQL密码是需要有mysql里的root权限的,这样一般用户是无法更改密码的,除非请求管理员帮助修改。 方法一 使用phpMyAdmin (图形化管理MySql数据库的工具),这是最简单的,直接用SQL语句修改mysql数据库库的user表,不过别忘了使用PASSWORD函数,插入用户用Insert命令,修改用户用Update命令,删除用Delete命令。 在本节后面有数据表user字段的详细介绍。 方法二 使用mysqladmin。 输入 mysqladmin-uroot-poldpasswordnewpasswd 执行这个命令后,需要输入root的原密码,这样root的密码将改为newpasswd。 同样,把命令里的root改为你的用户名,你就可以改你自己的密码了。 当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。 下面的方法都在mysql提示符下使用,且必须有mysql的root权限: 方法三 mysql>INSERTINTOmysql.user(Host,User,Password)VALUES ('%','system',PASSWORD('manager')); mysql>FLUSHPRIVILEGES 确切地说这是在增加一个用户,用户名为system,密码为manager。 注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES来执行确认。 方法四 和方法三一样,只是使用了REPLACE语句 mysql>REPLACEINTOmysql.user(Host,User,Password) VALUES('%','system',PASSWORD('manager')); mysql>FLUSHPRIVILEGES 方法五 使用SETPASSWORD语句 mysql>SETPASSWORDFORsystem@"%"=PASSWORD('manager'); 你也必须使用PASSWORD()函数,但是不需要使用FLUSHPRIVILEGES来执行确认。 方法六 使用GRANT...IDENTIFIEDBY语句,来进行授权。 mysql>GRANTUSAGEON*.*TOsystem@"%"IDENTIFIEDBY'manager'; 这里PASSWORD()函数是不必要的,也不需要使用FLUSHPRIVILEGES来执行确认。 注: PASSWORD()函数作用是为口令字加密,在程序中MySql自动解释。 二、MySql中访问限制的设置方法 我们采用两种方法来设置用户。 进入到Mysql执行目录下(通常是c: /mysql/bin)。 输入mysqld-shareware.exe,输入mysql --user=rootmysql,不然不能添加新用户。 进入到mysql>提示符下进行操作。 假设我们要建立一个超级用户,用户名为system,用户口令为manager。 方法一 用Grant命令授权,输入的代码如下: mysql>GRANTALLPRIVILEGESON*.*TOsystem@localhostIDENTIFIEDBY 'manager'WITHGRANTOPTION; 应显示: QueryOK,0rowsaffected(0.38sec) 方法二 对用户的每一项权限进行设置: mysql>INSERTINTOuser VALUES('localhost','system',PASSWORD('manager'), 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'); 对于3.22.34版本的MySQL,这里共14个"Y",其相应的权限如下(按字段顺序排列): 权限表列名称相应解释使用范围 selectSelect_priv只有在真正从一个表中检索时才需要select权限表 insertInsert_priv允许您把新行插入到一个存在的表中表 updateUpdate_priv允许你用新值更新现存表中行的列表 deleteDelete_priv允许你删除满足条件的行表 createCreate_priv允许你创建新的数据库和表数据库、表或索引 dropDrop_priv抛弃(删除)现存的数据库和表数据库或表 reloadReload_priv允许您告诉服务器再读入授权表服务器管理 shutdownShutdown_priv可能被滥用(通过终止服务器拒绝为其他用户服务)服务器管理 processProcess_priv允许您察看当前执行的查询的普通文本,包括设定或改变口令查询服务器管理 fileFile_priv权限可以被滥用在服务器上读取任何可读的文件到数据库表服务器上的文件存取 grantGrant_priv允许你把你自己拥有的那些权限授给其他的用户数据库或表 referencesReferences_priv允许你打开和关闭记录文件数据库或表 indexIndex_priv允许你创建或抛弃(删除)索引表 alterAlter_priv允许您改变表格,可以用于通过重新命名表来推翻权限系统表 如果创建用户时只有select、insert、update和delete权限,则允许用户只能在一个数据库现有的表上实施操作. 下面就可以创建我们要用到的数据库了,我们直接输入.例如: 我们要创建数据库名为XinXiKu,可用如下代码: mysql>createdatabaseXinXiKu; 应显示: QueryOK,1rowaffected(0.00sec)
");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java web eclipse问题集锦 eclipse 问题 集锦