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

当前页面: 开发资料首页JSP 专题session 老是提示出错

session 老是提示出错

摘要: session 老是提示出错


<%
if (request.getParameter("pass")=="abc123") {
response.sendRedirect("index.jsp");
} else {
Session.setAttribute("user","china");
response.sendRedirect("main.jsp");
}
%>

输入密码,然后判断,是否是“abc123”,决定转向的页面。
结果总是提示:

未定义的变量或类名:Session
Session.setAttribute("user","worldsky");
^
1 个错误, 1 个警告

怎么回事啊?是不是少了什么东西?还有阿,我把“Session.setAttribute("user","china");”去掉,也不能自动转向其他页面,也是提示处错。

我以前是写ASP的,这个项目非要用jsp,没办法,希望大家帮忙。谢谢


session 小写不是大写


request.getParameter("pass")=="abc123"这个也是错的
这是在检验它们是否引用相同的内存地址
if(request.getParameter("pass")!=null && request.getParameter("pass").equals("abc123"))
like this!


把session改成小写后,出错的信息变了:

在 interface javax.servlet.http.HttpSession
中未找到方法 setAttribute(java.lang.String, java.lang.String)。
session.setAttribute("user","china");
^
1 个错误, 1 个警告


还有,在去掉session那段代码后,
我把request.getParameter("pass")=="abc123"改了。但是还是不能自动转向。

我用的webserver是jswdk。
他的提示信息,我有点看不懂。

com.sun.web.core.DefaultServlet: init
HANDLER THREAD PROBLEM: java.net.SocketException: Socket is closed
java.net.SocketException: Socket is closedHANDLER THREAD PROBLEM: java.net.Socke
tException: Socket is closed

at java.net.Socket.getInputStream(Unknown Source)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)
HANDLER THREAD PROBLEM: java.net.SocketException: Socket is closed
java.net.SocketException: Socket is closed
at java.net.Socket.getInputStream(Unknown Source)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)
java.net.SocketException: Socket is closed
at java.net.Socket.getInputStream(Unknown Source)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)
com.sun.jsp.runtime.JspServlet: init
Scratch dir for the JSP engine is: work/%3A80%2F
IMPORTANT: Do not modify the generated servlets
HANDLER THREAD PROBLEM: java.net.SocketException: Socket is closed
java.net.SocketException: Socket is closed
at java.net.Socket.getInputStream(Unknown Source)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)
HANDLER THREAD PROBLEM: java.net.SocketException: Socket is closed
java.net.SocketException: Socket is closed
at java.net.Socket.getInputStream(Unknown Source)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)
HANDLER THREAD PROBLEM: java.net.SocketException: Socket is closed
java.net.SocketException: Socket is closed
at java.net.Socket.getInputStream(Unknown Source)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)
HANDLER THREAD PROBLEM: java.net.SocketException: Socket is closed
java.net.SocketException: Socket is closed
at java.net.Socket.getInputStream(Unknown Source)
at com.sun.web.server.ConnectionHandler.run(ConnectionHandler.java:161)



改为session.setAttribute("user",new String("china"));


if ((String)request.getParameter("pass")=="abc123") {
response.sendRedirect("index.jsp");
}


用request.getSession()先得到session再用。


session.setAttribute("user",new String("china")); 还是出错,出错信息是一样的:

在 interface javax.servlet.http.HttpSession
中未找到方法 setAttribute(java.lang.String, java.lang.String)。
session.setAttribute("user","china");
^
1 个错误, 1 个警告

另外我在设置session之前加了“request.getSession();”,也没有用。怎么办啊,一共就几行代码,老是搞不定。


request.getSession().setAttribute("user",new String("china"));

这样也不行吗?


不是打击LZ,就这水平,还是先看看基础吧


用request.getSession().setAttribute("user",new String("china")); 还是提示一样的错误。那个键头指在setAttribute这里,是不是他有问题阿?

我得java基础很差,没办法,人家很快就要阿。我还是花了两天看书的。
要用asp两天项目就作完了。可人家非要在windows 2000上用jsp。说是代码统一。


你的其他页面的session和request调用有没有成功过,如果这个是第一个页面的话我觉得可能你的jsp服务器会有点问题,因为这里Jsp的两个内建对象都不能正常使用


request 和 response 调用是成功的。就是这个session,是不是setAttribute有问题?


第一个页面就一个form,输入密码,传入这一页


你可以做个试验嘛,整个页面就一条语句,set 一个 session,看可不可以执行


你还是把整个页贴出来让大家看看的好


我把其他的都删掉了,就一行代码
request.getSession().setAttribute("user","worldsky");

还是出错


我贴出来的就是整个页面代码阿,一共不超过10行。

我在想是不是针对session调用,还要在前面加上什么代码阿,比如说
在页面头部加上“<% Page session=true %>”等等


搂住是怎么运行这个叶面的?


这个页面的功能起时就是检测用户在上个页面输入的密码是否正确,根据对错转向相应的页面。
现在就下面这行代码不能运行。
request.getSession().setAttribute("user","worldsky");
我把其他的代码都删了,只留这行代码,依然不行。


rg_nightkid() 的意思应该是你通过服务器访问这个页面的时候是不是正常


访问正常啊

asp里面这个代码的功能就是:session("user") = "worldsky"

jsp里面,我先用了:session.setAttribute("user","worldsky");
后来用了request.getSession().setAttribute("user","worldsky");
但都不行


不是,我是说他是在什么环境下运行的。没准他的程序根本就没建立session,那还取什么呀。或者类似的问题,明白了吧。


我要是去掉session附值这行代码,页面就是成功的。


你的服务器支不支持jsp 的啊?
问这个问题颇有点弱智,但还是要问一下


web server是jswdk-1.0.1


当然支持了,要不其他的jsp代码如何能通过


jsdk是1.5.0_08


小弟没有办法了 :)


chinagod(繁星) ( ) 信誉:70 Blog 2006-9-30 15:05:07 得分: 0
第一个页面就一个form,输入密码,传入这一页
---------------------------------------------------------------------
貌似jsp之间不能getParameter这样取值


第一个页面是index.jsp,里面就一个form,提交到这一页处理。



那位老兄现在的问题是就算一个页面只set一个session都出错阿,怀疑他的服务器对支持session颇有问题的说


现在主要的问题是哪有一个jsp往另一个jsp提交form的。搂住作asp的,jsp基本概念都没有。不保搂住在这个jsp叶面以外别的什么地方设置有问题,导致这个不能运行。
这个问题在这说不会有答案的。

揭帖把,搂住


呵呵


我知道问题在哪儿了,但不知道怎么解决。
setAttribute(String name, java.lang.Object value)
上面是setAttribute的定义。
我现在用这种方法调用:session.setAttribute("user","worldsky");

他就提示无法找到下面的方法:
setAttribute(java.lang.String, java.lang.String)

是不是这里有问题?


所以我就告诉你 setAttribute("user",new String("china"))
new String("china")才是一个对象


算了,我看别人的代码都是这样附值的,就我有问题,可能是系统问题吧,我再查查,实在不行,就换个方法实现算了,谢谢你了,我结贴。


理论上说呢setAttribute("user",new String("china"))这样set进去才是最规范的,但是
setAttribute("user", "china")这样也不会错


建议你换个服务器试试


session.setAttribute("user",new String("china")); 还是出错,出错信息是一样的:

在 interface javax.servlet.http.HttpSession
中未找到方法 setAttribute(java.lang.String, java.lang.String)。
session.setAttribute("user","china");
^
1 个错误, 1 个警告

另外我在设置session之前加了“request.getSession();”,也没有用。怎么办啊,一共就几行代码,老是搞不定。



你用request.getSession().setAttribute("user",name)


↑返回目录
前一篇: 冒泡问题
后一篇: 请问怎么设置一个session在浏览器关闭后马上无效?