各位大虾 ,在Servlet中如何使用Session,我做的怎么就是报错呢?

时间:2022-03-18 14:46:14
我的代码:
import javax.servlet.*;
import javax.servlet.http.*;

.....
int test=1;
HttpSession session=request.getSession(true);
sesson.setAttribute("test",test);

系统报错为:
WEB-INF\classes\com\gj\src\LoginSB.java:72: cannot resolve symbol
symbol  : method setAttribute  (java.lang.String,int)
location: interface javax.servlet.http.HttpSession
session.setAttribute("ID",ID);
                               ^
1 error

17 个解决方案

#1


是个对象错误,
int 不是真正的对象!
session.setAttribute("test", new Integer(test));

#2


试过了
不是这个问题
改成Integer对象也不行
报的错都一样

#3


请试一下用:
session.putValue("ID",ID)


----------------------------------------
==================================================================
注意:此人因发表爱国言论,被斑竹hexiaofen*扣除6分信誉分,问你死未?!

*****************************************************************

#4


因为有可能是版本问题
2.1版本没有setAttribute方法的。
但是servlet2.2版本已经将putValue()用setAttribute()替换掉了


----------------------------------------
==================================================================
注意:此人因发表爱国言论,被斑竹hexiaofen*扣除6分信誉分,问你死未?!

*****************************************************************

#5


sesson.setAttribute("test",test);

这里的sesson应该是session


----------------------------------------
==================================================================
注意:此人因发表爱国言论,被斑竹hexiaofen*扣除6分信誉分,问你死未?!

*****************************************************************

#6


thanks beMing,
还想问一句
servlet2.2以上的版本还能用pubValue方法吗


#7


其实如果你是在jsp页面的话session是不用再定义的

另外,你的test如果是int类型可能不成功,要转换成String或者其他类型吧

在servelt2.2版本,我想应该不能用putValue啦,我看过API:
Deprecated. As of Version 2.2, this method is replaced by setAttribute(java.lang.String, java.lang.Object) 

所以我想应该不行。

#8


to:beMing
我用的tomcat首页上显示包含servlet2.3和jsp2.1啊
可是我编译的时候还是不能用setAttribute方法啊
怎么才能知道servlet的版本号呢?

#9


tomcat本身已经有说明,你的是什么版本的tomcat你在apache.org中就可以查看到是用什么版本的servlet

我刚刚试过

你这个方法可以用:以下是test.jsp源代码:
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<%@ page import="java.io.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<html>
<head>
<title>测试.jsp</title>
</head>

<body >
<hr>
<center>
<% 
String test="1";
//HttpSession sesson=request.getSession(true);
session.setAttribute("test",test);
out.println("ok");
%>
</center>
<hr>

</body>
</html>

#10


这个我知道
我在jsp页面中也能使用
可是现在我是想用servlet来实现这个功能
我刚又试过了
还是报错
提示说:
\WEB-INF\classes\com\gj\src\LoginSB.java:72: cannot resolve symbol
symbol  : method setAttribute  (java.lang.String,java.lang.String)
location: interface javax.servlet.http.HttpSession
session.setAttribute("ID",ID);
                               ^
1 error

Tool completed with exit code 1

还有,我用putValue方法传的值总是null,不知道是怎么回事

#11


to beMing:
对不起对不起,耽误你的时间了
我是白痴,我没把编译过的class文件放到指定的文件夹里
白痴白痴
真不好意思,为了表示歉意,给你的分数会加倍
如果愿意,我们可以交个朋友
我的邮箱iceman_fsm@163.com
QQ:35880949  不过QQ由于单位规定可能暂时用不了的
真是太感谢你了
能留下联系方式吗,如果我有问题就可以请教你了

#12


to beMing:
等你回复后我就给分了
我怕先给分你就没办法回复了
多等几分钟吧
嘻嘻

#13


ok

将int类型转换成String

之后sesson改成:session

servlet:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class writem extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>create file</title></head>");
out.println("<body bgcolor=\"#e0e0e0\"><center>");

String test="1";
HttpSession session=request.getSession(true);
session.setAttribute("test",test);
out.println("ok");

out.println("</center>");
out.println("</body>");
out.println("</html>");

}

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
doGet(request,response);
}
}

#14


呵呵,不怕跟你说,我也只是新手而已,我刚刚毕业

但是在公司实习期间就是专门学习servlet,所以略懂一二

我回复也不是为了拿分呢,呵呵,发表之余我也学到东西啦

#15


beming@21cn.com


==================================================================

注意:此人因发表爱国言论,被斑竹he*扣除6分信誉分,问你死未?!

#16


to beMing:

 为什么这个setAttribute 方法一会儿行一会儿不行呢
刚刚还可以的
现在又报错了

#17


没可能吧,我没有碰见过这个问题

或者你应该要重启服务器吧

报什么错呢??

路径问题吗?有没有打包??

#1


是个对象错误,
int 不是真正的对象!
session.setAttribute("test", new Integer(test));

#2


试过了
不是这个问题
改成Integer对象也不行
报的错都一样

#3


请试一下用:
session.putValue("ID",ID)


----------------------------------------
==================================================================
注意:此人因发表爱国言论,被斑竹hexiaofen*扣除6分信誉分,问你死未?!

*****************************************************************

#4


因为有可能是版本问题
2.1版本没有setAttribute方法的。
但是servlet2.2版本已经将putValue()用setAttribute()替换掉了


----------------------------------------
==================================================================
注意:此人因发表爱国言论,被斑竹hexiaofen*扣除6分信誉分,问你死未?!

*****************************************************************

#5


sesson.setAttribute("test",test);

这里的sesson应该是session


----------------------------------------
==================================================================
注意:此人因发表爱国言论,被斑竹hexiaofen*扣除6分信誉分,问你死未?!

*****************************************************************

#6


thanks beMing,
还想问一句
servlet2.2以上的版本还能用pubValue方法吗


#7


其实如果你是在jsp页面的话session是不用再定义的

另外,你的test如果是int类型可能不成功,要转换成String或者其他类型吧

在servelt2.2版本,我想应该不能用putValue啦,我看过API:
Deprecated. As of Version 2.2, this method is replaced by setAttribute(java.lang.String, java.lang.Object) 

所以我想应该不行。

#8


to:beMing
我用的tomcat首页上显示包含servlet2.3和jsp2.1啊
可是我编译的时候还是不能用setAttribute方法啊
怎么才能知道servlet的版本号呢?

#9


tomcat本身已经有说明,你的是什么版本的tomcat你在apache.org中就可以查看到是用什么版本的servlet

我刚刚试过

你这个方法可以用:以下是test.jsp源代码:
<%@ page language="java" contentType="text/html;charset=GB2312" %>
<%@ page import="java.io.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<html>
<head>
<title>测试.jsp</title>
</head>

<body >
<hr>
<center>
<% 
String test="1";
//HttpSession sesson=request.getSession(true);
session.setAttribute("test",test);
out.println("ok");
%>
</center>
<hr>

</body>
</html>

#10


这个我知道
我在jsp页面中也能使用
可是现在我是想用servlet来实现这个功能
我刚又试过了
还是报错
提示说:
\WEB-INF\classes\com\gj\src\LoginSB.java:72: cannot resolve symbol
symbol  : method setAttribute  (java.lang.String,java.lang.String)
location: interface javax.servlet.http.HttpSession
session.setAttribute("ID",ID);
                               ^
1 error

Tool completed with exit code 1

还有,我用putValue方法传的值总是null,不知道是怎么回事

#11


to beMing:
对不起对不起,耽误你的时间了
我是白痴,我没把编译过的class文件放到指定的文件夹里
白痴白痴
真不好意思,为了表示歉意,给你的分数会加倍
如果愿意,我们可以交个朋友
我的邮箱iceman_fsm@163.com
QQ:35880949  不过QQ由于单位规定可能暂时用不了的
真是太感谢你了
能留下联系方式吗,如果我有问题就可以请教你了

#12


to beMing:
等你回复后我就给分了
我怕先给分你就没办法回复了
多等几分钟吧
嘻嘻

#13


ok

将int类型转换成String

之后sesson改成:session

servlet:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class writem extends HttpServlet
{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head><title>create file</title></head>");
out.println("<body bgcolor=\"#e0e0e0\"><center>");

String test="1";
HttpSession session=request.getSession(true);
session.setAttribute("test",test);
out.println("ok");

out.println("</center>");
out.println("</body>");
out.println("</html>");

}

public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
doGet(request,response);
}
}

#14


呵呵,不怕跟你说,我也只是新手而已,我刚刚毕业

但是在公司实习期间就是专门学习servlet,所以略懂一二

我回复也不是为了拿分呢,呵呵,发表之余我也学到东西啦

#15


beming@21cn.com


==================================================================

注意:此人因发表爱国言论,被斑竹he*扣除6分信誉分,问你死未?!

#16


to beMing:

 为什么这个setAttribute 方法一会儿行一会儿不行呢
刚刚还可以的
现在又报错了

#17


没可能吧,我没有碰见过这个问题

或者你应该要重启服务器吧

报什么错呢??

路径问题吗?有没有打包??