hoho_12 2016-01-20 08:20 采纳率: 89.3%
浏览 2406
已采纳

用户名和密码与后台的数据库无法验证后无法跳转错误页面(用Servlet写的)

这是check.java
package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;

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

import bean.sqlBean;

public class check extends HttpServlet {

/**
 * Constructor of the object.
 */
public check() {
    super();
}

/**
 * Destruction of the servlet. <br>
 */
public void destroy() {
    super.destroy(); // Just puts "destroy" string in log
    // Put your code here
}

/**
 * The doGet method of the servlet. <br>
 *
 * This method is called when a form has its tag value method equals to get.
 * 
 * @param request the request send by the client to the server
 * @param response the response send by the server to the client
 * @throws ServletException if an error occurred
 * @throws IOException if an error occurred
 */
public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    response.setContentType("text/html;charset=utf-8");
    PrintWriter out = response.getWriter();
    String id=null;
    String password=null;
    String kind=null;
    id=request.getParameter("id");
    HttpSession session=request.getSession(true);
    session.setAttribute("id", String.valueOf(id));
    password=request.getParameter("password");
    kind=request.getParameter("kind");

    sqlBean db=new sqlBean();
    String pw="";
    String sql="select password from "+kind+" where id='"+id+"'";
    ResultSet rs=db.executeQuery(sql);
    try{
        if(rs.next()){
            pw=rs.getString("password");
            if(password.equals(pw))
                goo(request,response,kind);
            else{
                System.err.println("�û�����������");
                doError(request,response,"�û�����������");
            }
        }
    }
    catch(SQLException e){
        System.err.println("�û�����������"+e.getMessage());
        System.out.print("�û�����������"+e.getMessage());
    }
    catch(ServletException f){
        System.err.println("�û�����������"+f.getMessage());
    }
    catch(IOException g){
        System.err.println("�û�����������"+g.getMessage());
    }
}

/**
 * The doPost method of the servlet. <br>
 *
 * This method is called when a form has its tag value method equals to post.
 * 
 * @param request the request send by the client to the server
 * @param response the response send by the server to the client
 * @throws ServletException if an error occurred
 * @throws IOException if an error occurred
 */
public void goo(HttpServletRequest request,HttpServletResponse response,String kind)
throws ServletException,IOException{
    if(kind.equals("student")){
        //����ҳ����ת
        RequestDispatcher rd=getServletContext().getRequestDispatcher("/student/student.jsp");
        rd.forward(request, response);
    }
    if(kind.equals("teacher")){
        RequestDispatcher rd=getServletContext().getRequestDispatcher("/teacher/teacher.jsp");
        rd.forward(request, response);
    }
    if(kind.equals("manager")){
        RequestDispatcher rd=getServletContext().getRequestDispatcher("/manager/manager.jsp");
        rd.forward(request, response);
    }
}
public void doError(HttpServletRequest request,HttpServletResponse response,String str)
        throws ServletException,IOException{
            request.setAttribute("problem", str);
            getServletConfig().getServletContext().getRequestDispatcher("/errorpage.jsp");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    doGet(request,response);
}


/**
 * Initialization of the servlet. <br>
 *
 * @throws ServletException if an error occurs
 */
public void init() throws ServletException {
    // Put your code here
}

}

这是errorpage.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">







<%=request.getAttribute("problem") %>

请问是什么问题,是check.java里面哪里写的不对吗?

  • 写回答

2条回答

  • 香草依含 2016-01-20 09:40
    关注

    你改成这样写 试试
    RequestDispatcher rd=getServletContext().getRequestDispatcher("/errorpage.jsp");
    rd.forward(request, response);

    用debug跟踪一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程