jsp连接weblogic数据库【100分送上】

diyyong 2012-07-29 11:02:00
本人想新建一个myeclipse的web project,想通过连接weblogic的oracle达到展示数据的效果
weblogic与oracle已经连接上,测试成功
myeclipse已经配置好weblogic服务,测试也成功
就差web project连上这个数据库,代码不懂,网上也很少这方面的内容。请大家不吝赐教!谢谢
...全文
258 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
brightyq 2012-07-29
  • 打赏
  • 举报
回复
web项目连数据库
楼主这里缺的就是一个数据源的问题了。
2楼主给的是sqlserver的连接,连接oracle也是类似的,项目中要加相应的oracle的驱动包ojdbc14.jar,网上也有很多下载。

String url = "jdbc:oracle:thin:@localhost:1521:orcl";
Class.forName("oracle.jdbc.driver.OracleDriver");
String user = "user";
String password = "123456";
Connection cn = DriverManager.getConnection(url,user,password);
YAVA_2009 2012-07-29
  • 打赏
  • 举报
回复
以SQL server为例说下整个链接过程
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://127.0.0.1:1433;DatabaseName=shuju";
String user="admin";
String password="1234";
conn=DriverManager.getConnection(url,user,password);
以上链接好数据库;
Statement s = null;
ResultSet rs = null; s=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sql="select * from table";
rs=s.executeQuery(sql);//得到数据集
while(rs.next()){
rs.getString("lieming");//在相应位置显示值就可以了
.......
}
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
并不复杂,你学过JDBC不?

如果没学过的话,就Goole下:JDBC Oracle 样例

然后照猫画虎就行了。
diyyong 2012-07-29
  • 打赏
  • 举报
回复
真不好意思....我给错分了,60分本来是给ldh911的,结果给错了....给了qybao
diyyong 2012-07-29
  • 打赏
  • 举报
回复
ldh911 谢谢了,已经解决了,也谢谢brightyq的参考资料,很有用!
附上成功代码:
<%@ page contentType="text/html; charset=8859_1"%>
<%@ page import="javax.naming.Context"%>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.* "%>
<%
Statement stmt = null;
ResultSet rst = null;
String str_ts=null;
String sql_str=null;
try {
Context ctx =new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup ( "oracledatesource");
java.sql.Connection conn = ds.getConnection();
stmt=conn.createStatement();
sql_str= "SELECT oid from wy_e_xh";
rst=stmt.executeQuery(sql_str);
while(rst.next())
{
out.println( "oid:"+rst.getString( "oid"));
out.println( " <br> ");
}
}
catch(Exception ne)
{
str_ts= "last:sql error";
}
%>
diyyong 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 的回复:]

怕了你了,要import啊。。。

<%@ import="java.util.Properties"%>
<%@ import="javax.naming.*"%>
<%@ import="javax.sql.*"%>
[/Quote]这位朋友,能不能帮我调试一下,还是报错,我对这方面实在不是很在行,我QQ:465373530
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
怕了你了,要import啊。。。

<%@ import="java.util.Properties"%>
<%@ import="javax.naming.*"%>
<%@ import="javax.sql.*"%>
diyyong 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

显然给你的是JSP代码,不是JS代码。。。
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="……
[/Quote]似乎不行,打开的错误代码是:
Compilation of JSP File '/index.jsp' failed:
--------------------------------------------------------------------------------

index.jsp:12:27: The qualifier of this name is a package, which cannot contain fields.
properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
^----------^
index.jsp:13:27: The qualifier of this name is a package, which cannot contain fields.
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
^---------------------^
index.jsp:15:4: No type with this name could be found at this location.
Context ctx = new InitialContext(properties);
^-----^
index.jsp:15:22: No type with this name could be found at this location.
Context ctx = new InitialContext(properties);
^------------^
index.jsp:16:4: No type with this name could be found at this location.
DataSource ds = (DataSource) ctx.lookup("orcledatesource"); // 名字必须跟Weblogic配置一致!初学者基本上都是在这里要栽来栽去的
^--------^
index.jsp:16:21: No type with this name could be found at this location.
DataSource ds = (DataSource) ctx.lookup("orcledatesource"); // 名字必须跟Weblogic配置一致!初学者基本上都是在这里要栽来栽去的
^--------^

diyyong 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 8 楼 的回复:
引用 5 楼 的回复:
// 前三步设置Properties的,如果跟Weblogic是一个JVM内,可以不需要。
Properties properties = new Properties();
properties.put(Context.PROVIDER_UR……

我对这一块实在有点模糊,我用了你的代码似乎没反应,是不是哪里错了,我的代码是:
<……
[/Quote]嗯,这个已经配置好了的
Name:JNDI
Name:oracledatesource
Targets:AdminServer
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
显然给你的是JSP代码,不是JS代码。。。
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<%
// 前三步设置Properties的,如果跟Weblogic是一个JVM内,可以不需要。
Properties properties = new Properties();
properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
// 这里开始就是用JNDI来获取数据库连接
Context ctx = new InitialContext(properties);
DataSource ds = (DataSource) ctx.lookup("oracledatesource"); // 名字必须跟Weblogic配置一致!初学者基本上都是在这里要栽来栽去的
//Connection cn = ds.getConnection(); // 已经拿到连接,随便用,最后注意close()
if (ds !=null){
System.out.println( "已经获得DataSource!");
}else {
System.out.println( "连接失败! ");
}
%>
<body>
This is my JSP page.
</body>
</html>

你咋会把连接数据库理解为在浏览器端执行呐。。。
qybao 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
引用 5 楼 的回复:
// 前三步设置Properties的,如果跟Weblogic是一个JVM内,可以不需要。
Properties properties = new Properties();
properties.put(Context.PROVIDER_UR……

我对这一块实在有点模糊,我用了你的代码似乎没反应,是不是哪里错了,我的代码是:
<?xml version="1……
[/Quote]
首先要在你的weblogic里配置好datasource(jndi)

有两种方式配置
1 使用图形界面
进入 http://localhost:7001/console, 找到 Services-JDBC->Data Source
按向导一步步配置

2 修改配置文件
修改config.xml,追加<jdbc-data-source></jdbc-data-source> 配置
LZ再网上找个sample参考修改就好了
diyyong 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
// 前三步设置Properties的,如果跟Weblogic是一个JVM内,可以不需要。
Properties properties = new Properties();
properties.put(Context.PROVIDER_UR……
[/Quote]
我对这一块实在有点模糊,我用了你的代码似乎没反应,是不是哪里错了,我的代码是:
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
</head>
<script type="text/JavaScript">
// 前三步设置Properties的,如果跟Weblogic是一个JVM内,可以不需要。
Properties properties = new Properties();
properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
// 这里开始就是用JNDI来获取数据库连接
Context ctx = new InitialContext(properties);
DataSource ds = (DataSource) ctx.lookup("oracledatesource"); // 名字必须跟Weblogic配置一致!初学者基本上都是在这里要栽来栽去的
//Connection cn = ds.getConnection(); // 已经拿到连接,随便用,最后注意close()
if (ds !=null){
alert( "已经获得DataSource!");
}else {
alert( "连接失败! ");
}
</script>
<body>
This is my JSP page.
</body>
</html>
qybao 2012-07-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
不好意思,买菜回来迟了,以上的朋友说的应该是直接通过jdbc连接上oracle吧?weblogic配置的jdbc功能好像没用上,我在weblogic配置的jdbc连接好了oracle,想通过它让web项目连上oracle,这种方法有吗?
如果直接用jdbc连oracle似乎会被别人看到数据库帐号密码
[/Quote]
可以配置datasource,使用datasource就可以了
其实用户名密码,都会暴露在配置文件里的

brightyq 2012-07-29
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20060324/10/4636606.html
MiceRice 2012-07-29
  • 打赏
  • 举报
回复
你说的是数据库连接池吧?

可以的。

如果你打算纯代码,而不使用Hibernate之类的来做,就是:
// 前三步设置Properties的,如果跟Weblogic是一个JVM内,可以不需要。
Properties properties = new Properties();
properties.put(Context.PROVIDER_URL, "t3://localhost:7001");
properties.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
// 这里开始就是用JNDI来获取数据库连接
Context ctx = new InitialContext(properties);
DataSource ds = (DataSource) ctx.lookup("jdbc/zenki"); // 名字必须跟Weblogic配置一致!初学者基本上都是在这里要栽来栽去的
Connection cn = ds.getConnection(); // 已经拿到连接,随便用,最后注意close()
diyyong 2012-07-29
  • 打赏
  • 举报
回复
不好意思,买菜回来迟了,以上的朋友说的应该是直接通过jdbc连接上oracle吧?weblogic配置的jdbc功能好像没用上,我在weblogic配置的jdbc连接好了oracle,想通过它让web项目连上oracle,这种方法有吗?
如果直接用jdbc连oracle似乎会被别人看到数据库帐号密码
程声明:该课程是教学使用,视频内涉及漏洞利用方法,请勿在互联网环境中使用;维护互联网安全,人人有责。实验所需环境:vmware;kali虚拟机一台;windows server一台;有docker环境的Linux虚拟机环境下载地址在购买课程后单独发送 【课程配套资源】1、Python脚本(Margin老师自研,不光能学漏洞,还能学Python,实在是划算)2、与Margin老师实时互动3、免费的CISP-PTE考试技巧指导(Margin老师与CISP-PTE的负责人很熟的,非常多的一手消息^o^)4、Margin老师的内部直播可以优先参加5、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战   【课程主要解决问题】1、CSRF、SSRF搞不清楚?2、SSRF原理是什么?危害大小?如何利用SSRF获取主机权限?如果使用Python提高挖洞效率?3、Gopher协议、Dict协议?完全没听过啊,没关系,看完课程后你门清。4、SSRF渗透Redis数据库,Redis客户端和服务器端怎么通信?通信报文是怎么样的?看这里就行。5、SSRF渗透Struts2总是失败?不知道如何编码?不知道如何使用Gopher协议?来这里。6、SSRF表面简单,实则有无数坑,通过视频提高学习效率吧。 【CISP-PTE介绍】1、CISP-PTE是进入网络安全行业的TOP1认证,能帮你梳理完整的网络安全知识体系2、有PTE证书在网络安全公司是免技术笔试的,怎么样?是不是很棒。3、Margin老师的课程基于CISP-PTE的知识体系进一步扩展,使课程内容更贴近实战本课程属于CISP-PTE渗透测试工程师认证体系的课程,但内容更加丰富。CISP-PTE是国内第一个以动手实操为主的网络安全认证,该注册考试是为了锻炼考生世界解决网络安全问题的能力,持续增强我国的网络安全水平和防御能力,促进国内网络防御能力的不断提高。考试内容从多个层面进行,考点和网络安全动态相结合,真实的反应出真实的网络环境中发现的各种问题。如果要考取CISP-PTE证书需要掌握以下内容:1、Web安全基础,注入漏洞、上传漏洞、跨站脚本漏洞、访问控制漏洞、会话管理漏洞哦等。2、中间件的安全知识,如:Apache,IIS,Tomcat,以及 JAVA 开发的中间件 Weblogic,Jboss, Websphere 等,且要了解中间件加固方法,在攻与防的能力上不断提升。3、操作系统安全,包含Windows和Linux操作系统,从账户管理、文件系统权限、日志审计等方面讲解,了解常见的漏洞方式和加固方法。4、数据库安全,包含MSSQL、MYSQL、ORACLE、REDIS数据,了解常用的数据库漏洞和题全方法,保证数据库的安全性。 【关于Margin老师】· Margin/教育系统网络安全保障人员认证首批讲师/高级讲师· 擅长CTF/Web安全/渗透测试 /系统安全· 3年研发/擅长Java/Python/某银行现金循环机业务系统开发者· 曾参与开发网络安全认证教材· 知乎专栏/CISP-PTE渗透测试工程师学习· 4年线下网络安全讲师/2000+线下学员/100000+线上学员

81,095

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧