我需要实现一个从登陆后,跳转到Main.jsp页面(Main.jsp需要将数据库里面的数据读取出来)用request实现。
Login.java代码:publicclassLoginextendsHttpServlet{publicvoidLoginCheck(HttpServletRespo...
Login.java代码:
public class Login extends HttpServlet{
public void LoginCheck(HttpServletResponse response,HttpServletRequest request)
throws ServletException,IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
String uname=request.getParameter("uname");
String pawd=request.getParameter("pawd");
try{
LoginCondent log=new LoginCondent();
if(log.Check(uname,pawd)){
DataBase DB=new DataBase();
Connection con=DB.conn();
try{
String sql="select Book_Id,Book_Name,Book_Address from Book_Main";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);//建立查询
request.getRequestDispatcher("Main.jsp").forward(request,response);
//request.getSession().setAttribute("rs", rs);
//response.sendRedirect("Main.jsp");
}catch(Exception e){System.out.println(e);}
}
else{
System.out.println("账户或密码错误");
response.sendRedirect("index.jsp");
}
}catch(Exception e)
{}
out.close();
}
public void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
LoginCheck(res,req);
}
}
Main.jsp页面代码:
<body>
<tr>
<td colspan="6" align="right"><a href="Add_Book.jsp"> 添加</a></td>
</tr>
<table>
<tr>
<td>图书编号</td>
<td>图书名称</td>
<td>图书位置</td>
</tr>
<%
ResultSet rs =(ResultSet)request.getAttribute("rs");
System.out.println("11111111111111"+rs);
%> </table>
</body>
问题:
运行程序显示为null,我认为是login.java中request.getRequestDispatcher("Main.jsp").forward(request,response); 后没有传递参数,请问该如何传递,传递后Mainl.jsp页面又该如何接收呢。若不是这个问题,请纠正下,给些建议 展开
public class Login extends HttpServlet{
public void LoginCheck(HttpServletResponse response,HttpServletRequest request)
throws ServletException,IOException
{
response.setContentType("text/html;charset=UTF-8");
PrintWriter out=response.getWriter();
String uname=request.getParameter("uname");
String pawd=request.getParameter("pawd");
try{
LoginCondent log=new LoginCondent();
if(log.Check(uname,pawd)){
DataBase DB=new DataBase();
Connection con=DB.conn();
try{
String sql="select Book_Id,Book_Name,Book_Address from Book_Main";
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(sql);//建立查询
request.getRequestDispatcher("Main.jsp").forward(request,response);
//request.getSession().setAttribute("rs", rs);
//response.sendRedirect("Main.jsp");
}catch(Exception e){System.out.println(e);}
}
else{
System.out.println("账户或密码错误");
response.sendRedirect("index.jsp");
}
}catch(Exception e)
{}
out.close();
}
public void doPost(HttpServletRequest req,HttpServletResponse res)throws ServletException,IOException
{
LoginCheck(res,req);
}
}
Main.jsp页面代码:
<body>
<tr>
<td colspan="6" align="right"><a href="Add_Book.jsp"> 添加</a></td>
</tr>
<table>
<tr>
<td>图书编号</td>
<td>图书名称</td>
<td>图书位置</td>
</tr>
<%
ResultSet rs =(ResultSet)request.getAttribute("rs");
System.out.println("11111111111111"+rs);
%> </table>
</body>
问题:
运行程序显示为null,我认为是login.java中request.getRequestDispatcher("Main.jsp").forward(request,response); 后没有传递参数,请问该如何传递,传递后Mainl.jsp页面又该如何接收呢。若不是这个问题,请纠正下,给些建议 展开
1个回答
展开全部
request.getRequestDispatcher("Main.jsp").forward(request,response);这个方法是不能通过url的方式传递参数的,你可以在response中加参数。
response.setAttribute("name",name)
建议你把错误堆栈打印出来这样方便你定位错误。
response.setAttribute("name",name)
建议你把错误堆栈打印出来这样方便你定位错误。
更多追问追答
追问
你可以在response中加参数。
response.setAttribute("name",name)
这个是直接在request.getRequestDispatcher("Main.jsp").forward(request,response);下面加吗?request.getRequestDispatcher("Main.jsp").forward(request,response);
response.setAttribute("name",name)
追答
当然不是。。。。
你要先response.setAttribute("name",name) 在response里面放入一个参数,
再向下一个页面传送,你先forward,页面都跳转了啊。1个参数不够可以再放入其他参数,放完了才能跳转
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |