我的源码如下:
public class SessionServlet extends HttpServlet {
static final private String CONTENT_TYPE = "text/html; charset=GB2312";
RequestDispatcher dispatcher;
String username;
String password;
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(true); if(session.getAttribute("username")==null){
dispatcher=getServletContext().getRequestDispatcher("/clientlogin.jsp");
if(dispatcher!=null){dispatcher.forward(request,response);}
username="";
}else{
username=session.getAttribute("username").toString();
}
if(session.getAttribute("password")==null)
{
dispatcher=getServletContext().getRequestDispatcher("/loginservlet");
if(dispatcher!=null){dispatcher.forward(request,response);}
password="";
}else{
password=session.getAttribute("password").toString();
}
ClientInfoAccess cia=new ClientInfoAccess();
boolean isCorrect=cia.CheckLogin(username,password);
if(isCorrect==false)
{
dispatcher=getServletContext().getRequestDispatcher("/clientlogin.jsp");
if(dispatcher!=null){dispatcher.forward(request,response);}
}
public class SessionServlet extends HttpServlet {
static final private String CONTENT_TYPE = "text/html; charset=GB2312";
RequestDispatcher dispatcher;
String username;
String password;
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(true); if(session.getAttribute("username")==null){
dispatcher=getServletContext().getRequestDispatcher("/clientlogin.jsp");
if(dispatcher!=null){dispatcher.forward(request,response);}
username="";
}else{
username=session.getAttribute("username").toString();
}
if(session.getAttribute("password")==null)
{
dispatcher=getServletContext().getRequestDispatcher("/loginservlet");
if(dispatcher!=null){dispatcher.forward(request,response);}
password="";
}else{
password=session.getAttribute("password").toString();
}
ClientInfoAccess cia=new ClientInfoAccess();
boolean isCorrect=cia.CheckLogin(username,password);
if(isCorrect==false)
{
dispatcher=getServletContext().getRequestDispatcher("/clientlogin.jsp");
if(dispatcher!=null){dispatcher.forward(request,response);}
}
这句话不是写得很清楚嘛?
在得定向之前有内容已输出了
指的是你的response forward到客户端只能一次
按照你的程序如果session中username和passward都没有的话,forward就会做两次
PrintWriter out = response.getWriter();
HttpSession session=request.getSession(true); if(session.getAttribute("username")==null){
dispatcher=getServletContext().getRequestDispatcher("/clientlogin.jsp");
if(dispatcher!=null){dispatcher.forward(request,response);}
username="";
===========================================================================
return;
===========================================================================
}else{
username=session.getAttribute("username").toString();
}
if(session.getAttribute("password")==null)
{
dispatcher=getServletContext().getRequestDispatcher("/loginservlet");
if(dispatcher!=null){dispatcher.forward(request,response);}
password=""; ===========================================================================
return;
===========================================================================
}else{
password=session.getAttribute("password").toString();
}
ClientInfoAccess cia=new ClientInfoAccess();
boolean isCorrect=cia.CheckLogin(username,password);
if(isCorrect==false)
{
dispatcher=getServletContext().getRequestDispatcher("/clientlogin.jsp");
if(dispatcher!=null){dispatcher.forward(request,response);
===========================================================================
return;
===========================================================================
}
}
//TPost.java
----------------------------------------------------------------------------
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TPost extends HttpServlet
{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
String url = "/2.jsp";
request.setAttribute("b", "test");
request.getRequestDispatcher(url).forward(request, response);
} public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
doGet(request, response);
}
}
------------------------------------------------------------------------------
2.jsp//根目录下.
------------------------------------------------------------------------------
<%@ page language="java" contentType="text/html;charset=gb2312"%>
<%
String b = (String)request.getAttribute("b");
out.print(b);
%>