程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> servlet-用戶名和密碼與後台的數據庫無法驗證後無法跳轉錯誤頁面(用Servlet寫的)

servlet-用戶名和密碼與後台的數據庫無法驗證後無法跳轉錯誤頁面(用Servlet寫的)

編輯:編程解疑
用戶名和密碼與後台的數據庫無法驗證後無法跳轉錯誤頁面(用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裡面哪裡寫的不對嗎?

最佳回答:


你改成這樣寫 試試
RequestDispatcher rd=getServletContext().getRequestDispatcher("/errorpage.jsp");
rd.forward(request, response);

用debug跟蹤一下

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved