猿问

为什么我的servlet跳转是白屏而且停在了servlet不动了

package com.zhao.action;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

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

import com.zhao.Utils.StringUtils;

public class UserAction extends BaseAction {

	
	public void login(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String username=request.getParameter("username");
		String password=request.getParameter("password");
		String checkcode=request.getParameter("checkcode");	
		String url=request.getParameter("url");	
		HttpSession session=request.getSession();
		Map<String,String> errs=new HashMap<String, String>();
		if(StringUtils.isBlank(username))
			errs.put("username", "用户名称不能为空!");
		if(StringUtils.isBlank(password))
			errs.put("password", "密码不能为空!");
		if(StringUtils.isBlank(checkcode))
			errs.put("checkcode", "验证码不能为空!");
		else{
			Object obj=session.getAttribute("checkcode");
			if(!checkcode.equals(obj)){
				errs.put("checkcode", "验证码输入错误");
			}
		}
		if(!errs.isEmpty()){
			session.setAttribute("errors",errs);
			session.setAttribute("username", username);
			//request.getRequestDispatcher("../user/login.jsp").forward(request, response);
			response.sendRedirect(url);
			return;
		}
		

	}
	@Override
	public void list(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		

	}

}

其中login和List是我创建了一个servlet的父类BaseAction,用反射做出的。
父类:
package com.zhao.action;

import java.io.IOException;
import java.io.PrintWriter;
import java.lang.reflect.Method;

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

public abstract class BaseAction extends HttpServlet {
	private static final long serialVersionUID = -4289158719460028496L;


	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		doPost(request, response);
	}
	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
        String action=request.getParameter("action");
        if(action==null||action.trim().length()<1){
        	action="list";
        	Class clz=this.getClass();
            try {
            	Method method=clz.getMethod(action, HttpServletRequest.class,HttpServletResponse.class);
                method.invoke(this,request,response);
			} catch (Exception e) {
				 new ServletException(e);
			}
            
        }
	}

	
	public abstract void list(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException;
}


把jsp页面也贴出来

<FORM name=f1 
                  action="user.do?action=login" method=post>
                  <input type="hidden" name="url" id="url"/>
                  <script type="text/javascript">
                  document.getElementById("url").value=location.href;
                  </script>
                  <TABLE cellSpacing=3 cellPadding=0 border=0>
                    <TBODY>
                    <tr>
                    <td colspan="2">
                    <span class="error">
                       ${ sessionScope.errors.username}
                    </span>
                    </td>
                    </tr>
                    <TR>
                      <TD>用户名:</TD>
                      <TD><INPUT size=10 name="username" style="width:80px" value="${sessionScope.username}"></TD></TR>
                       <tr>
                    <td colspan="2">
                    <span class="error">
                       ${ sessionScope.errors.password}
                    </span>
                    </td>
                    </tr>
                    <TR>
                      <TD>密码:</TD>
                      <TD><INPUT type=password size=10 name="password" style="width:80px"></TD></TR>
                     <tr>
                    <td colspan="2">
                    <span class="error">
                       ${ sessionScope.errors.checkcode}
                    </span>
                    </td>
                    </tr>
                    <TR>
                      <TD>验证码:</TD>
                      <TD><INPUT size=10 name="checkcode" style="width:80px"></TD></TR>
                    <TR>
                      <TD align=middle colSpan=2>
                      <IMG id="img1"/>
                      </TD>
                      <script>                 	
                      		document.getElementById("img1").src='${pageContext.request.contextPath}/images/pic.do?q='+Math.random();                 
                      </script>
                      </TR>
                    <TR></TR>
                    <TR>
                      <TD align=middle 
                        colSpan=2><INPUT type=submit value=登录>&nbsp;&nbsp;<INPUT onclick="javascript:window.location.href='userinfo.do?act=newregister'" type=button value=注册><BR></TD></TR>
                    <TR>
                      <TD class=ko align=middle colSpan=2>
                        </TD></TR></TBODY></TABLE></FORM>
                        <c:remove var="errors" scope="session"/>
                        <c:remove var="username" scope="session"/>
                        </TD>
                        
停止的页面地址是:
白屏没反应,求解决!!!!!!!!!!!!!


天堂向左地狱向右
浏览 2234回答 1
1回答

maybe丶xg

 if(!errs.isEmpty()){             session.setAttribute("errors",errs);             session.setAttribute("username", username);             //request.getRequestDispatcher("../user/login.jsp").forward(request, response);             response.sendRedirect(url);             return;         }errs 不为空 会有response.sendRedirect(url);为空的时候没有做处理
随时随地看视频慕课网APP

相关分类

Java
我要回答