我通过servlet的forward的方法从一个一面跳向另一个页面,现在跳转后的页面对应得控制层获取原来页面的参数。
[color=red]跳转前[/color]
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
String name=request.getParameter("name");
String password=request.getParameter("password");
if(name!=null&&password!=null){
try {
if(ChatService.instance().addUser(name,password)){
request.getSession(true).setAttribute(name,name);
System.out.println("測試保存到Session里的用戶名"+request.getSession(true).getAttribute(name));
//String url="/chat.jsp?name="+name;
request.getRequestDispatcher(/chat.jsp).forward(request,response);
// response.sendRedirect("/chat.jsp");
}
else{
request.setAttribute("tip",name+",注册失败,请重新注册");
request.getRequestDispatcher("/error.html").forward(request,response);
}
} catch (Exception e) {
request.setAttribute("tip",e.getMessage());
request.getRequestDispatcher("/error.html").forward(request,response);
}
}
[color=red]
跳转后[/color]
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//ajax是以utf8的方式设置编码的
request.setCharacterEncoding("UTF-8");
String context = request.getParameter("context");
if(context!=null&&!context.equals("")){
try {
String user=request.getParameter("name");
//String user= (String) request.getSession(true).getAttribute("name");
System.out.println("测试获取的用户名:"+user);
if(user==null){
user="晓利";
}
ChatService.instance().addMsg(user,context);
} catch (Exception e) {
e.printStackTrace(); }
}
response.setContentType("text/html;charset=GBK");
PrintWriter out = response.getWriter();
System.out.println("测试聊天记录"+ChatService.instance().getMsg());
out.print(ChatService.instance().getMsg());
}
跳转后页面显示的url:[color=green]http://localhost:8080/welcome?name=join&password=789[/color]从url上看参数明明已经带过来了啊,可是我通过 String user=request.getParameter("name");或者
String user= (String) request.getSession(true).getAttribute("name");
均获取不到name参数,请各位帮忙找找原因吧,谢谢!