小弟在用Servlet作参数转发的时候出了问题,目标JSP无法接收到Servlet传得session的Attribute。
有效代码如下
Servlet:
session.setAttribute(AttributeName, AttributeValue);Jsp:
<%! String UserName="";%>
<%! String UserPassword=""; %>
<% UserName=(String)session.getAttribute("Name");
UserPassword=(String)session.getAttribute("Password");
%>
<p>
<%=UserName%>页面显示为null
本人估计是session没传过来Attribute。
急用,各位大虾帮忙啊!
有效代码如下
Servlet:
session.setAttribute(AttributeName, AttributeValue);Jsp:
<%! String UserName="";%>
<%! String UserPassword=""; %>
<% UserName=(String)session.getAttribute("Name");
UserPassword=(String)session.getAttribute("Password");
%>
<p>
<%=UserName%>页面显示为null
本人估计是session没传过来Attribute。
急用,各位大虾帮忙啊!
说具体一点,把所有的代码帖出来看看
(String)session.getAttribute("name");
session.setAttribute("username",username);
%>
--------------------------------------------------------
<%
String username=(String)session.getAttribute("username");
%>
或
<%
String username=request.getSession().getAttribute("username");
%>
request.getSession().setAttribute(AttributeName, AttributeValue);Jsp:
<%! String UserName="";%>
<%! String UserPassword=""; %>
<% UserName=(String)session.getAttribute("Name");
UserPassword=(String)session.getAttribute("Password");
%>
<p>
<%=UserName%>
<%
String username=(String)session.getAttribute("username");
%>
就这样看看行不行?
package Controller;import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;
import java.util.Vector;import javax.servlet.ServletConfig;
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 Controller extends HttpServlet {
// Searching for the content matches String search
private int findObject(Vector objVec, String search) {
int i;
if (objVec.equals(null) && search.equals(null)) {
System.out.println("NullException");
return -1;
}
for (i = 0; i < objVec.size(); i++) {
if (objVec.get(i).toString().equals(search)) {
break;
}
}
return i;
} // Get Parameter And Set Attribute
private void CheckSetAttrProp(Vector AttributeName, Vector AttributeValue,
HttpServletRequest req, int Counti) {
for (int i = 0; i < Counti; i++) {
System.out.println(i);
System.out.println(AttributeName.get(i).toString() + "="
+ AttributeValue.get(i).toString());
session.getServletContext().setAttribute(
AttributeName.get(i).toString(), AttributeValue.get(i)); }
} public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
session = req.getSession(true);
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
// Gain the parameter to Vector
Enumeration attributeNames = req.getParameterNames();
int i = 0;
while (attributeNames.hasMoreElements()) {
str_param = (String) attributeNames.nextElement().toString();
System.out.println(str_param);
param.add(str_param);
str_value = req.getParameter(str_param).toString();
System.out.println(str_value);
value.add(str_value);
i++;
}
// Get the first Keyword to know which page to sendRedirect
String firstKey = value.get(this.findObject(this.param, "keyword"))
.toString();
if (firstKey.equals("Login")) {
CheckSetAttrProp(param, value, req, i);
out.println("System is now checking the service");
resp
.sendRedirect("http://localhost:8080/OnlineStore/LoginBean.jsp");
// getServletConfig().getServletContext().getRequestDispatcher(
// "../ROOT/LoginBean.jsp").forward(req, resp);
} else if (firstKey.equals("Regist")) {
CheckSetAttrProp(param, value, req, i); } else if (firstKey.equals("Search")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("Mypub")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("RecentScan")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("Bought")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("Ready2ModifyInfo")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("Ready2ModifyPwd")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("Fav")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("Sum")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("HistoryTrade")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("Ready2MergeTrade")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("HistoryScore")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("LastComment")) {
CheckSetAttrProp(param, value, req, i);
} else if (firstKey.equals("MyComment")) {
CheckSetAttrProp(param, value, req, i);
} else {
out.println("错误的请求 440");
} } public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp); } public void destroy() { } public void init(ServletConfig sc) throws ServletException { } private String str_param = ""; private Vector param = new Vector(); private String str_value = ""; private Vector value = new Vector(); private HttpSession session;
}
这个是Jsp:
<%
String UserName=(String)session.getAttribute("Name");
String UserPassword=(String)session.getAttribute("Password");
out.println(UserName);
%>
<%= UserName%>
你在servlet中就打印下session的值。。
你代码看着很乱。。明天再看