为什么取不到session的值!

wesdaf007 2016-05-31 09:11:45
一、service层代码:
//根据dao 和bean 层来的;上面两层没问题
//查询全部
public List<Dept> getDepts(){
//做为测试使用
List<Dept> list=new ArrayList<Dept>();
list.add(new Dept(10,"开发部","北京"));
list.add(new Dept(20,"测试部","上海"));
list.add(new Dept(30,"客户部","深圳"));
list.add(new Dept(40,"销售部","西安"));
return list;
}
二、在action层中取到service的方法
private DeptService deptService=new DeptService();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取用户提交的请求,确定调用逻辑层的方法
List<Dept> depts=deptService.getDepts();
//封装数据到访问范围内
HttpSession session=request.getSession();
session.setAttribute("depts",depts);

//跳转页面
response.sendRedirect("dept.jsp");
}
三、jsp页面:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"
%>
<%@ page import="com.cc.bean.Dept" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'dept.jsp' starting page</title>
</head>
<body>
我是页面
<c:forEach items="${sessionScope.depts}" var="d">
${d.deptno}| ${d.dname}| ${d.loc}<br/>
</c:forEach>


</body>
</html>

四、页面:http://localhost:8080/JSTL/dept.jsp, 什么都没传过来
...全文
260 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Afaker 2016-05-31
  • 打赏
  • 举报
回复
你要在你的地址栏上输入你在web.xml的url-pattern的那个servlet的那个路径....直接输入你的jsp路径当然取不到
Afaker 2016-05-31
  • 打赏
  • 举报
回复
可以啊 没问题啊......你的路径是怎么输入的....
wesdaf007 2016-05-31
  • 打赏
  • 举报
回复
public class Dept { private int deptno; private String dname; private String loc; public int getDeptno() { return deptno; } public void setDeptno(int deptno) { this.deptno = deptno; } public String getDname() { return dname; } public void setDname(String dname) { this.dname = dname; } public String getLoc() { return loc; } public void setLoc(String loc) { this.loc = loc; } public Dept(int deptno, String dname, String loc) { super(); this.deptno = deptno; this.dname = dname; this.loc = loc; } public Dept() { } } DAO public class DeptDao { //插入 public void insertDept(Dept dept){ } //修改 public void updateDept(){ } //删除 public void deleteDept(){ } //查询单个 public Dept getDeptById(int deptno){ return null; } public List<Dept> getDepts(){ return null; } }
Afaker 2016-05-31
  • 打赏
  • 举报
回复
能把你的Dept实体类贴一下吗?是不是你页面上取的那些值与你Dept实体类里面定义的不一样
wesdaf007 2016-05-31
  • 打赏
  • 举报
回复
没有传过来,甚至我现在用小脚本也收不到值 <% List<Dept> depts=(List<Dept>)session.getAttribute("depts"); for(Dept d:depts){ out.print(d.getDeptno()+"|"); out.print(d.getDname()+"|"); out.print(d.getLoc()+"|<br/>"); %><%} %>这也收不到! 会不会是我环境配置有问题?
  • 打赏
  • 举报
回复
在页面debug一下看看传过去没
ouzhijian 2016-05-31
  • 打赏
  • 举报
回复
很有可能是你web.xml没有配置路径,然后直接访问的jsp吧,发是肯定不会有数据的
ouzhijian 2016-05-31
  • 打赏
  • 举报
回复
楼主,跟据你给你的东西,有数据显示 web.xml
  <servlet>
   <servlet-name>PublicServlet</servlet-name>
   <servlet-class>opsteel.Public.PublicServlet</servlet-class>
  </servlet>
  <servlet-mapping>
   <servlet-name>PublicServlet</servlet-name>
   <url-pattern>/Action</url-pattern>
</servlet-mapping>
package com.opzw.test;

public class Dept {
private int deptno;
private String dname;
private String loc;
public int getDeptno() {
return deptno;
}
public void setDeptno(int deptno) {
this.deptno = deptno;
}
public String getDname() {
return dname;
}
public void setDname(String dname) {
this.dname = dname;
}
public String getLoc() {
return loc;
}
public void setLoc(String loc) {
this.loc = loc;
}
public Dept(int deptno, String dname, String loc) {
super();
this.deptno = deptno;
this.dname = dname;
this.loc = loc;
}
public Dept() {

}
}

package com.opzw.test;

import java.util.ArrayList;
import java.util.List;

public class DeptService {

	public List<Dept> getDepts() {
		//做为测试使用
		List<Dept> list=new ArrayList<Dept>();
		list.add(new Dept(10,"开发部","北京"));
		list.add(new Dept(20,"测试部","上海"));
		list.add(new Dept(30,"客户部","深圳"));
		list.add(new Dept(40,"销售部","西安"));
		return list;
	}

}


package com.opzw.test;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class testServlet extends HttpServlet
{
	private DeptService deptService = new DeptService();

	@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// 获取用户提交的请求,确定调用逻辑层的方法
		List<Dept> depts = deptService.getDepts();
		// 封装数据到访问范围内
		HttpSession session = request.getSession();
		session.setAttribute("depts", depts);

		// 跳转页面
		response.sendRedirect("dept.jsp");
	}
}
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"
%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <title>My JSP 'dept.jsp' starting page</title>
     </head>
   <body>
我是页面
  	<c:forEach items="${sessionScope.depts}"  var="d">
  				${d.deptno}| ${d.dname}| ${d.loc}<br/>
  	</c:forEach>
  
  
  </body>
</html>

67,512

社区成员

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

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