您好,欢迎来到百家汽车网。
搜索
您的当前位置:首页Java web eclipse问题集锦

Java web eclipse问题集锦

来源:百家汽车网
Java web eclipse问题集锦

1、Multiple Contexts have a path of \"/***\"

Could not publish server configuration for Tomcat v6.0 Server at localhost. Multiple Contexts have a path of \"/***\"

出现这个异常是因为在server.xml里面有两个以上相同的Context定义

只要删除重复的就可以了

2、java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

因为缺少数据库驱动的jar包。对于出现这个问题,是tomcat找不到MYSQL JAR包的问题。要把相应数据库的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工程,请右键build path--add active 那个选项并找到你的文件,点击打开即可!

3、mysql数据库连接

我写的一个用jsp连接MySQL数据库的代码。

要正确的使用这段代码,你需要首先在MySQL数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据。

欢迎各位提出改进的意见。

以下用两种方式来实现JSP连接MySql数据库。

第一种方式,用JSP实现。

程序代码

<%@ page contentType=\"text/html; charset=gb2312\" language=\"java\"

import=\"java.sql.*\"%>

<%

//**************************************

********* JDBC_ODBC连接MySql数据库,不需要设置数据源

*********************************/

//********** 数据库连接代码 开始 ******/

//以下几项请自行修改

String server=\"localhost\"; //MYSQL 服务器的地址

String dbname=\"test\"; //MYSQL 数据库的名字

String user=\"root\"; //MYSQL 数据库的登录用户名

String pass=\"chfanwsp\"; //MYSQL 数据库的登录密码

String port=\"3306\"; //SQL Server 服务器的端口号,默认为1433

//数据库连接字符串

String url

=\"jdbc:mysql://\"+server+\":\"+port+\"/\"+dbname+\"?user=\"+user+\"&password=\"+pass+\"&useUnicode=true&characterEncoding=GB2312\";

//加载驱动程序

Class.forName(\"org.gjt.mm.mysql.Driver\").newInstance();

//建立连接

Connection conn= DriverManager.getConnection(url);

//创建语句对象

Statement

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

// **** 数据库连接代码 结束 *******

String sql=\"select * from username\";

ResultSet rs=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目录下。

程序代码

package conn; //导入包

import java.sql.*; //导入数据库操作的类

public class DBConnMySql //构造方法,初始化

{

private Connection conn; //连接对象

private Statement stmt; //语句对象

private ResultSet rs; //结果集对象

private String MySqldriver;//MYSQL Server驱动程序字符串

private String MySqlURL; //MYSQL Server连接字符串

//********************************

*用 org.gjt.mm.mysql.Driver 驱动

* 该方法取得连接所需各种参数,组成连接字符串,然后再建立连接

* server;dbname,user,pass,port 分别表示MYSQL 服务器的地址,

* 数据库,用户名,密码,端口

**********************************/

public Connection getConnToMySql(String server,String dbname,String user,String pass,String port){

//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(Exception e){

System.out.println(\"操作数据库出错,请仔细检查\");

//System.err.println(e.getMessage());

}

return conn;

}

//关闭数据库连接

public void close()

{

try{

//rs.close();

//stmt.close();

conn.close();

}catch(SQLException sqlexception){

sqlexception.printStackTrace();

}

}

}

这个文件只是实现了数据库的连接,下面我们再写一个测试文件。

就是用sql语句从数据库里查询出记录,以验证我们数据库的连接是否成功。

connmysql.jsp 文件源代码如下:

程序代码

<%@ page contentType=\"text/html; charset=gb2312\" language=\"java\"

import=\"java.sql.*\" %>

<%

//以下几项请自行修改

String server=\"localhost\"; //MYSQL 服务器的地址

String dbname=\"test\"; //MYSQL 数据库的名字

String user=\"root\"; //MYSQL 数据库的登录用户名

String pass=\"chfanwsp\"; //MYSQL 数据库的登录密码

String port=\"3306\"; //SQL Server 服务器的端口号,默认为1433

Connection

conn=DBConn.getConnToMySql(server,dbname,user,pass,port);

Statement

stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

String sql=\"select * from username\";

String sql1=\"insert into username (uid,pwd) values('梦想年华','梦想年华')\";

stmt.executeUpdate(sql1);

ResultSet rs=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内不能启动问题

Starting Tomcat Server at localhost has encounterer a problemServer Tomcat v5.0 Server at localhost。 Server Tomcat v5.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

由于需要在项目启动时Debug跟踪问题,发现Tomcat启动45秒后会出现如下界面:

大致问题是Tomcat的默认启动时间是45秒,45秒内启动不了便会自动关闭服务,所以需要增加启动时间。

方法1:在server中,双击servser选项卡里面的tomcat服务器,打开Tomcat v6.0 at localhost的选项卡,找到timeout的下拉框,如下图,

将其修改保存即可。

方法2:编辑servers.xml(your_workspace/.metadata/.plugins/org.eclipse.wst.server.core/servers.xml),搜索\"start-timeout \",把值改大,比如start-timeout =\"50000\"。当然,需要重启eclipse。

4、解决mysql“Access denied for user 'root'@'localhost'”

# mysql -uroot -p

Enter password:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

使用网上介绍的方法修改root用户的密码:

# mysqladmin -uroot -p password 'newpassword'

Enter password:

mysqladmin: connect to server at 'localhost' failed

error: 'Access denied for user 'root'@'localhost' (using password: YES)'

现在终于被我找到了解决方法,如下(请先测试方法三,谢谢!):

方法一:

# /etc/init.d/mysql stop

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('newpassword') where

USER='root';

mysql> FLUSH PRIVILEGES;

mysql> quit

# /etc/init.d/mysql restart

# mysql -uroot -p

Enter password: <输入新设的密码newpassword>

mysql>

一、MySQL修改密码方法总结

首先要说明一点的是:一般情况下,修改MySQL密码是需要有mysql里的root权限的,这样一般用户是无法更改密码的,除非请求管理员帮助修改。

方法一

使用phpMyAdmin

(图形化管理MySql数据库的工具),这是最简单的,直接用SQL语句修改mysql数据库库的user表,不过别忘了使用PASSWORD函数,插入用户用Insert命令,修改用户用Update命令,删除用Delete命令。在本节后面有数据表user字段的详细介绍。

方法二

使用mysqladmin。输入

mysqladmin -u root -p oldpassword newpasswd

执行这个命令后,需要输入root的原密码,这样root的密码将改为newpasswd。同样,把命令里的root改为你的用户名,你就可以改你自己的密码了。

当然如果你的mysqladmin连接不上mysql

server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。

下面的方法都在mysql提示符下使用,且必须有mysql的root权限:

方法三

mysql> INSERT INTO mysql.user (Host,User,Password) VALUES

('%','system', PASSWORD('manager'));

mysql> FLUSH PRIVILEGES

确切地说这是在增加一个用户,用户名为system,密码为manager。注意要使用PASSWORD函数,然后还要使用FLUSH

PRIVILEGES来执行确认。

方法四

和方法三一样,只是使用了REPLACE语句

mysql> REPLACE INTO mysql.user (Host,User,Password)

VALUES('%','system',PASSWORD('manager'));

mysql> FLUSH PRIVILEGES

方法五

使用SET PASSWORD语句

mysql> SET PASSWORD FOR system@\"%\" = PASSWORD('manager');

你也必须使用PASSWORD()函数,但是不需要使用FLUSH PRIVILEGES来执行确认。

方法六

使用GRANT ... IDENTIFIED BY语句,来进行授权。

mysql> GRANT USAGE ON *.* TO system@\"%\" IDENTIFIED BY 'manager';

这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES来执行确认。

注:PASSWORD()函数作用是为口令字加密,在程序中MySql自动解释。

二、MySql中访问的设置方法

我们采用两种方法来设置用户。

进入到Mysql执行目录下(通常是c:/mysql/bin)。输入mysqld-shareware.exe,输入mysql

--user=root mysql ,不然不能添加新用户。进入到mysql>提示符下进行操作。

假设我们要建立一个超级用户,用户名为system,用户口令为manager。

方法一

用Grant 命令授权,输入的代码如下:

mysql>GRANT ALL PRIVILEGES ON *.* TO system@localhost IDENTIFIED BY

'manager' WITH GRANT OPTION;

应显示:Query OK, 0 rows affected (0.38 sec)

方法二

对用户的每一项权限进行设置:

mysql>INSERT INTO user

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\其相应的权限如下(按字段顺序排列):

权限 表列名称 相应解释 使用范围

select Select_priv 只有在真正从一个表中检索时才需要select权限 表

insert Insert_priv 允许您把新行插入到一个存在的表中 表

update Update_priv 允许你用新值更新现存表中行的列 表

delete Delete_priv 允许你删除满足条件的行 表

create Create_priv 允许你创建新的数据库和表 数据库、表或索引

drop Drop_priv 抛弃(删除)现存的数据库和表 数据库或表

reload Reload_priv 允许您告诉服务器再读入授权表 服务器管理

shutdown Shutdown_priv 可能被滥用(通过终止服务器拒绝为其他用户服务) 服务器管理

process Process_priv 允许您察看当前执行的查询的普通文本,包括设定或改变口令查询 服务器管理

file File_priv 权限可以被滥用在服务器上读取任何可读的文件到数据库表 服务器上的文件存取

grant Grant_priv 允许你把你自己拥有的那些权限授给其他的用户 数据库或表

references References_priv 允许你打开和关闭记录文件 数据库或表

index Index_priv 允许你创建或抛弃(删除)索引 表

alter Alter_priv 允许您改变表格,可以用于通过重新命名表来推翻权限系统 表

如果创建用户时只有select、insert、update和delete权限,则允许用户只能在一个数据库现有的表上实施操作.

下面就可以创建我们要用到的数据库了,我们直接输入. 例如:我们要创建数据库名为XinXiKu,可用如下代码:

mysql>create database XinXiKu;

应显示:Query OK, 1 row affected (0.00 sec)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baijiahaobaidu.com 版权所有 湘ICP备2023023988号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务