两个问题求教,jsp访问Httpsession不成功

百曉生 2016-06-07 10:47:25
学生成绩管理系统,有学生教师管理员三种用户,在用户登录表中,有角色这个字段,有student、teacher、admin三种角色,通过Httpsession,在jsp页面中进行判断是那种角色,下面是java代码中的login方法,
在java类中,

DlService dlService=new DlServiceImp();
private int pageNow=1;
private int pageSize=8;
private HttpSession session1;
private HttpServletRequest request1;

private Dlb dl;
public Dlb getDl() {
return dl;
}
public void setDl(Dlb dl) {
this.dl = dl;
}
public String login() throws Exception {
DlService dlService=new DlServiceImp();
Dlb user=dlService.find(dl.getXh(), dl.getMm());
if(user!=null)
{
session1 = ServletActionContext.getRequest().getSession();
session1.setAttribute("USER", user);

return SUCCESS;
}
else
return ERROR;
}


下面是jsp代码

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

<html>
<head>

<title>学生成绩管理系统</title>

</head>


<frameset rows="18%,82%" cols="*" framespacing="3" frameborder="yes" border="0">

<frame src="head.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" />
<frameset rows="*" cols="210,*" framespacing="0" frameborder="yes" border="1">

<s:if test="#session1.USER.getJs() == 'admin'">
<frame src="left_adm.jsp" name="left_admFrame" scrolling="no" noresize="noresize" id="left_admFrame" />
<frame src="right_adm.jsp" name="right_admFrame" id="right_admFrame" />

</s:if>

<s:elseif test="#session1.USER.getJs() == 'teacher'">
<frame src="<%= request.getContextPath() %>/frame/teacher/left_tea.jsp" name="left_teaFrame" scrolling="no" noresize="noresize" id="left_teaFrame" />
<frame src="<%= request.getContextPath() %>/frame/teacher/main_tea.jsp" name="right_teaFrame" id="right_teaFrame" />
</s:elseif>

<s:else>
<frame src="<%= request.getContextPath() %>/frame/student/left_stu.jsp" name="left_stuFrame" scrolling="no" noresize="noresize" id="left_stuFrame" />
<frame src="<%= request.getContextPath() %>/frame/student/main_stu.jsp" name="right_stuFrame" id="right_stuFrame" />

</s:else>


</frameset>
</frameset>

</html>


但不管用,求教
...全文
216 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
百曉生 2016-06-07
  • 打赏
  • 举报
回复
唉,在java代码中修改了一下,没经过jsp,谢谢以上各位了
百曉生 2016-06-07
  • 打赏
  • 举报
回复
引用 12 楼 u011320740 的回复:

request.getSession().setAttribute("user", user);//后台这么写

<s:if test="${user.js == "admin"}"> //jsp这么写
你的意思是在上面一开始代码

session1 = ServletActionContext.getRequest().getSession();
session1.setAttribute("USER", user);
下边填上这句:request.getSession().setAttribute("user", user); ? 但是这句报空指针错误啊
菜 头 2016-06-07
  • 打赏
  • 举报
回复
写错了应该是这样

<s:if test="${user.js eq "admin"}">
菜 头 2016-06-07
  • 打赏
  • 举报
回复

request.getSession().setAttribute("user", user);//后台这么写

<s:if test="${user.js == "admin"}"> //jsp这么写
百曉生 2016-06-07
  • 打赏
  • 举报
回复
上面代码第七行需要把/去掉
百曉生 2016-06-07
  • 打赏
  • 举报
回复
引用 7 楼 securitit 的回复:
我的天啊,我只是写个大概意思,Java里获取session里面的内容怎么写,不是通过.取得吧。得是session.getAttribute('.....')这样的。
引用 5 楼 fengli3863 的回复:
<s:if test="#session.USER.js == 'admin'"> 
试试这个, 检查是获取不到user对象,还是获取不到js属性,或是你的比较逻辑有问题,慢慢排查吧
或者说,如何将java类中读取到的数据库中的数据传递到jsp中
引用 9 楼 HD_XB 的回复:
<s:if test="${USER.js == "admin"}"> 
<s:if test="<%= "admin".equals(  ((User)session.getAttrbute("USER")).getJs()  )   %>"> 
还是不行,我现在想问下,如果我的login中的代码是
	
public String login() throws Exception {
		DlService dlService=new DlServiceImp();
		Dlb user=dlService.find(dl.getXh(), dl.getMm());
		if(user!=null)
		{		
		/Map session=(Map) ActionContext.getContext().get("session");
			session.put("user", dl.getXh());

			return SUCCESS;
		}
		else
			return ERROR;
	}
HD_XB 2016-06-07
  • 打赏
  • 举报
回复
<s:if test="${USER.js == "admin"}"> 
<s:if test="<%= "admin".equals(  ((User)session.getAttrbute("USER")).getJs()  )   %>"> 
百曉生 2016-06-07
  • 打赏
  • 举报
回复
引用 5 楼 fengli3863 的回复:
<s:if test="#session.USER.js == 'admin'"> 
试试这个, 检查是获取不到user对象,还是获取不到js属性,或是你的比较逻辑有问题,慢慢排查吧
唉,还是不管用,是获取不到user对象
securitit 2016-06-07
  • 打赏
  • 举报
回复
我的天啊,我只是写个大概意思,Java里获取session里面的内容怎么写,不是通过.取得吧。得是session.getAttribute('.....')这样的。
百曉生 2016-06-07
  • 打赏
  • 举报
回复
引用 4 楼 securitit 的回复:
<s:if test= <%session.USER.getJs()%> == 'admin'"> 这样的,session是内置对象,但是也是需要经过JDK编译的,所以是Java代码
你的代码少了引号,但即使加上引号和后面的分号,还是报错
Description	Resource	Path	Location	Type
USER cannot be resolved or is not a field	main.jsp	/cjgl/WebRoot	line 15	JSP Problem
请问怎么让jsp获取到java类文件中的USER吗
毛豆先生Max 2016-06-07
  • 打赏
  • 举报
回复
<s:if test="#session.USER.js == 'admin'"> 
试试这个, 检查是获取不到user对象,还是获取不到js属性,或是你的比较逻辑有问题,慢慢排查吧
securitit 2016-06-07
  • 打赏
  • 举报
回复
<s:if test= <%session.USER.getJs()%> == 'admin'"> 这样的,session是内置对象,但是也是需要经过JDK编译的,所以是Java代码
百曉生 2016-06-07
  • 打赏
  • 举报
回复
引用 1 楼 securitit 的回复:
<s:if test="#session1.USER.getJs() == 'admin'"> 为什么是session1呢,session是JSP的内置对象直接用可以了啊,就像你使用request一样的。
引用 2 楼 fengli3863 的回复:
 <s:if test="#session.USER.getJs() == 'admin'"> 
我改了还是不管用,请问会是什么情况呢?
毛豆先生Max 2016-06-07
  • 打赏
  • 举报
回复
 <s:if test="#session.USER.getJs() == 'admin'"> 
securitit 2016-06-07
  • 打赏
  • 举报
回复
<s:if test="#session1.USER.getJs() == 'admin'"> 为什么是session1呢,session是JSP的内置对象直接用可以了啊,就像你使用request一样的。

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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