在jsp中使用java文件的问题

popy007 2004-04-03 09:26:30
各位高手,

我在一个login.jsp文件中使用一个UserSession.java

我的UserSession.java在C:\tomcat\webapps\ROOT\ssyl\jutil目录
classpath里面设置了C:\tomcat\webapps\ROOT\ssyl
login.jsp在C:\tomcat\webapps\ROOT
觉得这里应该没有问题。

UserSession.java文件为:

package jutil;

public class UserSession {

public String id;
public String pw;

public UserSession(String sid, String spw){
this.id = sid;
this.pw = spw;
}

public UserSession(){
id = "";
pw = "";
}

public void setId(String sid){
id = sid;
}
public void setPw(String spw){
pw = spw;
}

}

然后在login.jsp中我使用它:

<%@ page
language = "java"
contentType = "text/html; charset=gb2312"
import = "java.util.*, java.sql.*, jutil.*"
%>

<%!

Connection conn = null;
java.sql.Statement stmt = null;
ResultSet rs = null;
%>


<%
String name = request.getParameter("name");
String password = request.getParameter("password");

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:myds");
stmt = conn.createStatement();
rs = stmt.executeQuery("select * from tab_user");

while(rs.next())
{
if(name.equals(rs.getString("name")))
{

out.println("hello " + name);
UserSession us = new UserSession(name, password); // !!!!!!!!!!!
}
}
stmt.close();
conn.close();
%>

我的目的是打开数据库,然后查询登陆用户是否存在,然后

把信息放到一个UserSession对象里面,但出现错误:

Error: 500
Location: /ssyl/login.jsp
Internal Servlet Error:

java.lang.IllegalStateException: Response has already been committed
at org.apache.tomcat.core.HttpServletResponseFacade.sendError(HttpServletResponseFacade.java:157)
at org.apache.jasper.runtime.JspServlet.unknownException(JspServlet.java:299)
at org.apache.jasper.runtime.JspServlet.service(JspServlet.java:377)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.handleRequest(ServletWrapper.java:503)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:559)
at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:160)
at org.apache.tomcat.service.TcpConnectionThread.run(SimpleTcpEndpoint.java:338)
at java.lang.Thread.run(Thread.java:534)


把标有// !!!!!!!!!!! 的语句去掉就没有问题了,所以请教高手

UserSession us = new UserSession(name, password); // !!!!!!!!!!!

错在哪里,如何修改才能达到我的目的。



...全文
95 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
postfather 2004-04-04
  • 打赏
  • 举报
回复
你的JSP和UserSession毫无关系,所以要在jsp中import UserSession.class
gsen 2004-04-03
  • 打赏
  • 举报
回复
你要编译你的.java文件成.class文件.
在你的jsp里导入这个类
import 包.你的类
zj2977 2004-04-03
  • 打赏
  • 举报
回复
对头,就跟使用servlet差不多,但必须要import才可以用地
caoyang221 2004-04-03
  • 打赏
  • 举报
回复
对,.java文件是类文件,要放在yourapp\WEB-INF\classes下的包中,在JSP中可以这样调用JAVA的!
popy007 2004-04-03
  • 打赏
  • 举报
回复
我没有用JavaBean阿~
popy007 2004-04-03
  • 打赏
  • 举报
回复
我用javac编译了一下就好了,需要像servlet一样编译才行吗?
postfather 2004-04-03
  • 打赏
  • 举报
回复
UserSession us = new UserSession(name, password);
不能直接用
需要用<jsp:useBean.../>来调用
lhbf 2004-04-03
  • 打赏
  • 举报
回复
.java文件是类文件,要放在yourapp\WEB-INF\classes下的包中,具体到你的情况应放在yourapp\WEB-INF\classes\jutil目录中

81,122

社区成员

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

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