Java Web应用与Oracle连接问题一例
Java Web编程习题解析(4-7)

第4章习题解析1. 答:使用请求对象(即HttpServletRequest接口)的getSession()方法。
2. 答:如果客户在指定时间内没有访问服务器,则该会话超时。
对超时的会话对象,服务器使其失效。
通过会话对象的setMaxInactiveInterval()方法设置会话最大超时时间。
web.xml文件使用<session-config>元素的子元素<session-timeout>设置最大超时时间,如下所示。
<session-config><session-timeout>20</session-timeout></session-config>这里的最大超时时间是对整个应用程序的所有会话有效,<session-timeout>元素指定的时间单位是分钟。
setMaxInactiveInterval()方法参数单位是秒。
3. 答:有些客户浏览器可能不支持Cookie或用户阻止所有的Cookie,此时不能用Cookie 实现会话。
4. 答:使用响应对象(即HttpServletResponse接口)的encodeURL()方法或encodeRedirectURL()方法。
5. 答:不能。
因为许多用户是通过代理服务器访问Internet的,此时服务器得到的是代理服务器的IP地址而不是实际用户的IP地址,因此这些用户的IP地址不唯一。
6. 答:D7. 答:A, B8. 答:A, D9. 答:C 10. 答:A,C 11. 答:C12. 答:C, D 13. 答:B,C 14. 答:C15. 答:B 16. 答:A 17. 答:C18. 答:A,B,D,F19. 答:具有很大的影响。
该应用程序将不能维护用户的状态。
Servlet容器将为每个客户的每次请求都创建一个新的会话。
修改这个问题的唯一方法是修改Servlet代码加入URL重写功能。
java 连oracle方法

java 连oracle方法在Java中连接Oracle数据库通常使用JDBC(Java Database Connectivity)来实现。
首先,你需要确保已经安装了Oracle数据库,并且已经设置了数据库的连接信息,包括主机名、端口号、数据库名称、用户名和密码。
接下来,你需要下载并安装Oracle提供的JDBC驱动程序,然后在Java程序中引入该驱动程序。
在Java代码中,你可以使用以下步骤来连接Oracle数据库:1. 加载并注册JDBC驱动程序,使用Class.forName()方法加载并注册Oracle JDBC驱动程序,例如,Class.forName("oracle.jdbc.driver.OracleDriver")。
2. 建立数据库连接,使用DriverManager.getConnection()方法建立与Oracle数据库的连接,传入数据库连接URL、用户名和密码,例如,Connection connection =DriverManager.getConnection("jdbc:oracle:thin:@localhost:15 21:ORCL", "username", "password")。
3. 执行SQL查询或更新,一旦建立了数据库连接,你就可以使用Connection对象创建Statement或PreparedStatement来执行SQL查询或更新操作,例如,Statement statement = connection.createStatement()。
4. 处理查询结果,如果你执行了查询操作,可以使用ResultSet对象来处理查询结果,例如,ResultSet resultSet = statement.executeQuery("SELECT FROM table")。
oracle端口导致web应用用不了80(localhost)的问题

修改oracle所占用的80端口1.这是由于oracle内置Apache造成的,可以更改Apache的应用端口,方法如下:请修改目录oracle\ora81\Apache\Apache\conf中的两个文件:httpd.conf、httpd.conf.default,将文件中的端口由80改为8080即可将Apache的应用端口改为8080端口,重新启动Apache,Web就能使用80端口了,此时Apache使用的是8080端口。
若你不知道Apache如何重启,就重新启动你的计算机,重启后,问题应当解决。
2.Oracle安装后解决80端口占用的办法:修改目录oracle\Apache\Apache\conf中的两个文件:httpd.conf、httpd.conf.default,将文件中的端口由80改为18001即可将Apache的应用端口改为18001端口,重新启动Apache,W eb就能使用80端口了,此时Apache使用的是18001端口。
若你不知道Apache如何重启,就重新启动你的计算机,重启后,问题应当解决。
解决8080端口占用的办法:使用sys账号以sysdba身份登录进去,用以下语句更改掉Oracle所占用的端口:Oracle 9i:call dbms_namespace.shell('@jis/install/serverendp.ssh admin 8080 9090 -register');Oracle 10g:call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),'/xdbconfig/sysc onfig/protocolconfig/httpconfig/http-port/text()',9090));注意:以上语句是更改Oracle XML数据库端口为9090,你可以改为其它空闲的端口。
java oracle connection isvalid 返回false

java oracle connection isvalid 返回false如果在使用Java连接Oracle数据库时,调用Connection.isValid()方法返回false,可能有以下几个原因:1.连接已关闭:确保在调用isValid()方法之前,数据库连接没有被关闭。
2.连接超时:连接可能由于闲置时间过长而被数据库服务器断开。
可以尝试设置连接池的参数,如idleTimeout,来保持连接的活跃状态。
3.网络问题:检查网络连接是否正常。
如果数据库服务器无法从Java应用程序所在的机器访问,那么连接可能会被视为无效。
4.数据库服务器问题:如果Oracle数据库服务器出现问题,比如重启或者宕机,那么现有的连接可能会被视为无效。
5.JDBC驱动问题:确保你使用的JDBC驱动与Oracle数据库版本兼容。
有时候,驱动的问题可能会导致isValid()方法返回不正确的结果。
6.配置问题:检查连接字符串(URL)、用户名、密码等配置信息是否正确。
7.防火墙或安全设置:防火墙或安全软件可能阻止了Java应用程序与数据库服务器之间的通信。
8.Oracle服务未运行:确保Oracle服务正在运行,并且监听器(Listener)也已启动。
为了解决这个问题,你可以尝试以下步骤:•确认数据库服务器的状态和网络连通性。
•检查JDBC驱动的版本和兼容性。
•如果使用了连接池,请检查连接池的配置,特别是与超时和验证连接有效性相关的设置。
•查看Oracle数据库的日志,以获取可能的错误信息或警告。
•尝试使用不同的工具或方法(如SQL*Plus)来验证数据库连接是否正常。
•如果问题依旧存在,考虑在Java代码中添加更详细的日志记录,以便进一步诊断问题所在。
Java连接oracle数据库方法

Java连接oracle数据库一、普通的连接数据库1、注册驱动Class.forName(“oracle.jdbc.driver.OracleDriver”);2、获取连接Connection conn=null;conn= DriverManager.getConnection(“jdbc:oracle:thin:@127.0.0.1:1521:XE”,user,pa ssword);3、建立statementStatement stat=conn.createStatement();4、执行SQL语句stat.execute(“SQL语句”);5、处理结果集ResultSet rs=null;rs=stat.executeQuery(“SQL语句”);While(rs.next()){System.out.println(“id:”+rs.getInt(“id”)+”last_name”+getString(“l ast_name”));}6、关闭连接Rs.close();Stat.close();Conn.close();二、加载properties文件连接数据库并使用PreparedStatement --------------------首先准备xxx.properties文件---------------------user=xxxxxpassword=xxxxxxdriver=oracle.jdbc.driver.DriverOracleurl=jdbc:oracle:thin:@127.0.0.1:1521:XE--------------------------------------------------------------------------------1、创建properties实例对象Properties prop=new Properties();2、加载xxx.properties文件prop.load(new FileInputStream(“xxx.properties文件路径”));3、获取xxx.properties文件中的属性Class.forName(prop.getString(“driver”));conn=DriverManager.getConnetion(prop.getString(“url”,prop));4、创建PreparedStatement实例对象并执行语句String sql=“select*from table_name where id=?And last_name=?”;PreparedStatement ps=conn.preparedStatement(sql);ps.setInt(1,4);ps.setString(2,”nihao”);ps.execute();5、处理结果集ResultSet rs=null;rs=ps.executeQuery(“SQL语句”);While(rs.next()){System.out.println(“id:”+rs.getInt(“id”)+”last_name”+getString(“l ast_name”));}6、关闭连接rs.close();ps.close();Conn.close();三、DOM解析XML文件连接数据库--------------------首先准备xxx.xml文件---------------------<?xml version="1.0"encoding="UTF-8"?><PEOPLE><PERSON><className>oracle.jdbc.driver.OracleDriver</className><url>jdbc:oracle:thin:@127.0.0.1:1521:XE</url><user>user</user><password>xxx</password></PERSON></PEOPLE>-------------------------------------------------------------------------Connection conn=null;try{1、建立解析工厂,获取实例DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();2、创建文件解析器DocumentBuilder builder=factory.newDocumentBuilder();3、加载xml文件Document doc=builder.parse("xxx.xml文件路径");4、获取根节点NodeList nl=doc.getElementsByTagName("PEOPLE");Element node=(Element)nl.item(0);5、获取驱动StringclassName=node.getElementsByTagName("className").item(0).getFirstChild().get NodeValue();6、获取urlStringurl=node.getElementsByTagName("url").item(0).getFirstChild().getNodeValue();7、获取用户名Stringuser=node.getElementsByTagName("user").item(0).getFirstChild().getNodeValue();8、获取用户密码Stringpwd=node.getElementsByTagName("password").item(0).getFirstChild().getNodeValu e();9、注册驱动Class.forName(className);10、连接数据库conn=DriverManager.getConnection(url,user,pwd);}catch(Exception e){e.printStackTrace();}。
泛微e-cology常见_问题解决及性能调优

常见问题之安装问题
3. License无法提交,提示License信息错误
用户环境: Windows、AIX、Linux
问题原因: 有些系统的文件编码并非GBK,导致文件上传后无法识别License文件信息。
解决方法: Windows: 1) 卸载Resin服务,使用命令 httpd.exe -remove 2) 重新安装Resin服务,使用命令重新安装Resin服务
应用并重启数据库使配置生效此操作具有一定危险性请配置前备份数据库最好由客户dba来配置常见问题之性能调优2优化oracle系统参数如果系统使用人数非常多需要调整下oracle的处理进程数
e-cology常见问题解 决及性能调优
常见问题及解决方法
安装问题
常见问题之安装问题
1.迁移、恢复Ecology系统后,License无法提交
常见问题之性能调优
Linux: 修改/usr/weaver/resin-2.1.14/bin/startresin.sh文件 /usr/weaver/resin-2.1.14/bin/httpd.sh -Xms1024M –Xmx1800M -Xss150k &
Linux下检查JDK
JDK版本号
Linux系统不同 支持的JDK大小 各有差异,要得 到最优配置就使
SQL脚本如下:
/usr/weaver/resin-2.1.14/bin/httpd.sh –Xms1024M -Xmx1800M -Dfile.encoding=GBK -Xss150k &
常见问题之安装问题
4. Linux环境下登录系统后所有页面显示乱码
用户环境: Linux、AIX
问题原因: 系统未安装GBK语言包,或者当前非GBK环境。
java oracle面试题

java oracle面试题1. 介绍Java和OracleJava是一种高级编程语言,具有面向对象的特性,可用于开发各种应用程序和平台。
Oracle是一种关系型数据库管理系统,被广泛用于数据存储和管理。
Java和Oracle常常被同时使用,因为Java提供了与Oracle数据库进行交互的强大工具和API。
2. Java面试题2.1 什么是Java?Java是一种面向对象的编程语言,具有跨平台的特性。
它由Sun Microsystems(现在是Oracle)开发,可用于开发Web应用、桌面应用、移动应用和嵌入式应用。
2.2 Java的主要特点有哪些?- 简单易学:Java的语法类似于C++,但是去除了一些复杂和不安全的特性,使得Java更易于学习和使用。
- 面向对象:Java支持面向对象的编程范式,提供类、继承、封装、多态等特性。
- 跨平台性:Java程序可以在不同平台上运行,只需在目标平台上安装Java虚拟机(JVM)。
- 安全性:Java提供了多种安全机制,如内存管理和异常处理,以及安全类库和安全管理器。
- 大型库支持:Java拥有庞大的开发者社区和丰富的类库,可用于快速开发各种应用。
2.3 什么是Java虚拟机(JVM)?Java虚拟机是Java程序运行的环境。
它负责将Java字节码翻译成机器码,并提供内存管理和垃圾回收、安全管理、线程管理等功能。
2.4 Java的基本数据类型有哪些?Java的基本数据类型包括:整数类型(byte、short、int、long)、浮点数类型(float、double)、字符类型(char)、布尔类型(boolean)。
2.5 什么是面向对象编程?面向对象编程(OOP)是一种编程范式,将数据和操作数据的方法封装为对象。
对象通过定义类的方式创建,具有属性和方法。
面向对象编程的核心思想是模块化和重用性。
3. Oracle面试题3.1 什么是Oracle数据库?Oracle数据库是一种关系型数据库管理系统,由Oracle Corporation开发。
weblgoic使用手册

Weblogic使用手册1、weblogic上下文路径问题:weblogic.xml文件内容如下错误的配置如下<weblogic-web-app><context-root>/</context-root><virtual-directory-mapping><local-path>Z:/message/upload</local-path><url-pattern>/message/upload/*</url-pattern></virtual-directory-mapping></weblogic-web-app>正确的配置如下<weblogic-web-app><context-root>/</context-root><virtual-directory-mapping><local-path>z:/</local-path><url-pattern>/*</url-pattern></virtual-directory-mapping></weblogic-web-app>为啥第一个访问不了呢???原因就在<context-root>/</context-root>上。
>>>>>>>>>>>>>>>>>>>>>>>>>摘自文档开始context-rootcontext-root 元素定义该独立Web 应用程序的上下文根。
如果Web 应用程序不是独立的,而属于某EAR 的一部分,请在该EAR 的META-INF/application.xml 文件中指定上下文根。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java Web应用与Oracle连接问题
1.概况
刚安装的Java Web应用连接不到数据库,初步判断是数据库连接字符串没有正确配置。
通常在Tomcat中可以通过配置WEB-INF下的web.xml或者applicationContext.xml文件来修改数据库连接字符串。
后询问高手,在Tomcat自身路径下也有配置文件:
%TOMCAT%\conf\Catalina\localhost\%APPNAME%.xml
修改数据库连接字符串中的IP和SID
<?xml version="1.0" encoding="UTF-8"?>
<Context
workDir="work/Catalina/localhost/LogisticCall">
<Resource
auth="Container"
description="SqlServer Datasource "
name="jdbc/logisticcallsource"
type="javax.sql.DataSource"
password="135246"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="5000"
username="orclfl"
url="jdbc:oracle:thin:@10.96.149.65:1521:dlwl"
maxActive="4"/>
</Context>
刷新页面,仍然报错无法连接:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
10.96.149.65:1521:DLWL
)
2.探索
使用WireShark侦听网络传输内容,对比PL/SQL和JDBC连接不同。
2.1.PL/SQL Dev传送的连接字符串
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.96.149.66)(PORT=1521))(LO AD_BALANCE=yes)(CONNECT_DA TA=(SERVER=DEDICATED)(SERVICE_NAME=dlwl)(F AILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))
(CID=(PROGRAM=E:\apps\PLSQL Developer 9.0.0.1601\plsqldev.exe)
(HOST=PC-XK)(USER=Administrator))(INSTANCE_NAME=dlwl1)))
2.2.JDBC传送的连接字符串
(DESCRIPTION=(CONNECT_DATA=(SID=DLWL)(CID=(PROGRAM=)(HOST=__jdbc__)( USER=)))(ADDRESS=(PROTOCOL=tcp)(HOST=10.96.149.65)(PORT=1521)))
错误提示如下
(DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12505)(ERROR_STACK=(ERROR =(CODE=12505)(EMFI=4))))
基本判定是连接字符串中的SID和ServiceName导致的差异。
查询了相关资料,猜测可能是ojdbc14.jar的版本导致的问题,程序中的版本为"10.2.0.3.0",相对较新,不存在问题。
3.SID和ServiceName
转而以“数据库连接字符串”为关键字查询资料
参考:/gladfeel/blog/item/739a82ee0cbbb4092cf534f0.html
JDBC Thin Driver 的格式有三种格式:
3.1.格式一: ServiceName:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
Example: jdbc:oracle:thin:@//192.168.115.1:1521/db
注意这里的格式,@后面有//, 这是与使用SID的主要区别。
这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。
3.2.格式二: SID:
jdbc:oracle:thin:@<host>:<port>:<SID>
Example: jdbc:oracle:thin:192.168.112.1:1521:XXX
Note: Support for SID is being phased out. Oracle recommends that users switch over to usingservice names.
3.3.格式三:TNSName:
jdbc:oracle:thin:@<TNSName>
Example: jdbc:oracle:thin:@tns_a
Note:
Support for TNSNames was added in the driver release 10.2.0.1
4.解决
修改配置中的数据库连接字符串为url="jdbc:oracle:thin:@//10.96.149.65:1521/dlwl"
问题解决。