hoho_12
hoho_12
采纳率89.3%
2016-01-20 08:20 阅读 2.4k
已采纳

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

2

这是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条回答 默认 最新

  • 已采纳
    xiangcaoyihan 香草依含 2016-01-20 09:40

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

    用debug跟踪一下

    点赞 评论 复制链接分享
  • rui888 兔子托尼啊 2016-01-20 08:31

    走到这里了吗?

    request.setAttribute("problem", str);
    getServletConfig().getServletContext().getRequestDispatcher("/errorpage.jsp");

    点赞 评论 复制链接分享

相关推荐