站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题如何将字符串输出(新手)在线等,解决马上给分

如何将字符串输出(新手)在线等,解决马上给分

摘要: 如何将字符串输出(新手)在线等,解决马上给分


index.jsp页面内容如下
<%@ page import="java.sql.*"%>
<%@ page contentType="text/html; charset=GBK"%>

<%
String name="";
name="故事会";
System.out.println(name);

String strurl="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D:/Java/Tomcat 4.1/webapps/ROOT/user/books.mdb";
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("before connection");
Connection conn=DriverManager.getConnection(strurl);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from users");
String name1="";
if(rs.next())
{
System.out.println(rs.getString("name"));
%>
<input type="text" name="T1" size="20" value="<%=rs.getString("name")%>">
<%
//name1=String(rs.getString("name"));
}


System.out.println("定义成功!");
%>
但是输出出错
<input type="text" name="T1" size="20" value="<%=rs.getString("name")%>">
这句好像不能这样取,和asp还是有区别的,请问如何取或者是输出
顺便问一下我如何取得全部users表里面的数据?应该怎么写?





输出什么样的错误啊,可能和你的数据有关


数据库连上了么?连上了 users表中有name字段么?还有
while(rs.next())
{
System.out.println(rs.getString("name"));
%>
<input type="text" name="T1" size="20" value="<%=rs.getString("name")%>">
<%

}

连接 没关闭



当然连接上了,问题是我输入到input诓的时候出错了,和字符串格式化有问题
我数据在监视窗口都是能看到的
users表里面的name字段是有的


关闭的确是没关闭,刚开始搞java,没看到还用的是asp的写法,呵呵

对于框架的东西还是不太明白,先弄明白这个在说了,慢慢来


System.out.println(rs.getString("name"));可以输出么


你先关闭数据库 name是数据库表的字段么


最好是把出错信息贴上来!
检查下你的表结构!


HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: No data found
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)


root cause

javax.servlet.ServletException: No data found
at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:536)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:77)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2422)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:163)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:199)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)



--------------------------------------------------------------------------------

Apache Tomcat/4.1.30

表结构没问题,我前面已经取得了,而且能输出
System.out.println(rs.getString("name"));


说的通俗点吧,我如何将取得的数据输出到那个input的value里面去,这个明白了吧

是在输出的时候出的问题

还有,如何关闭数据库啊?
原来用的都是rs.close()
conn.close()
如果是用cmd好像是不用特别写的。


先付值再输出试试
if(rs.next())
{
String name = rs.getString("name"));
System.out.println(name);
%>
<input type="text" name="T1" size="20" value="<%=name>">
<%
}

For any row in the ResultSet, you can read any column from left to right, and each column should be read only one time.



String name="";
if(rs.next())
{
System.out.println(rs.getString("name"));
name=rs.getString("name");
%>
<input type="text" name="T1" size="20" value="<%=name%>">
<%
//name1=String(rs.getString("name"));
}

要是用的Jbuilder的话 做单步调试比较好看出错误



System.out.println(rs.getString("name"));
%>
<input type="text" name="T1" size="20" value="<%=rs.getString("name")%>">
上面这一段中,ResultSet为轻量级的。不能两次用rs.getString("name")。你把上面的代码改为下面的试一下:
String name = rs.getString("name");
System.out.println(name);
%>
<input type="text" name="T1" size="20" value="<%=name%>">



eg. MSSQL
ResultSet objects that contain a BLOB column (for example, text, ntext, or image data types). The driver cannot return a BLOB column out of order because it does not cache all the content of BLOB data types because of size limitations.
The other db systems also have similar symptoms.



搞定了,不过不明白
String s = rs.getString("name");
System.out.println(s);
%>

<input type="text" name="T1" size="20" value="<%=s%>">


<%
这样就可以输出,如果直接输出就不行


to isaaq(不会飞的鱼)
正解
解决,给分,你不介意我分点给别人吧


no matter



rs.getString()方法已经把数据转换了一变了,在调用getString()方法时当然出错啦,
就像你把字节码转换为字符串的时候,你再调用自己转字符方法就失败了一样.rs内的数据类型已经改变了.


↑返回目录
前一篇: 这种情况下如何将登陆页面文本框中的内容添加到session中??先谢谢
后一篇: 方正集团何如