2 hoho 12 hoho_12 于 2016.01.20 16:20 提问

用户名和密码与后台的数据库无法验证后无法跳转错误页面(用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个回答

xiangcaoyihan
xiangcaoyihan   2016.01.20 17:40
已采纳

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

用debug跟踪一下

rui888
rui888   Ds   Rxr 2016.01.20 16:31

走到这里了吗?

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

hoho_12
hoho_12 不知道,这里的problem的值好想没有获取到,提交错误的用户名和密码跳转的是一个空页面啥都没有,也没有报错。
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
servlet实现用户登录
最近在做课程设计,之前有人问我用户登录的实现,刚又有同学问到,于是我决定还把这个问题的实现写一下吧,免得要一遍一遍的去讲……原谅我的懒惰=_============================================实现原理:前提:用户表中只有三个字段:id、username、password;用户输入用户名、密码和验证码,然后点击登陆,会
【JSP中servlet】单纯利用servlet写一个用户名密码判断页面
单纯只用servlet完成无数据库的用户名密码验证
servlet初步,简单的登录验证并显示用户名称
编写3个servlet,分别为LogIn、CheckUser、Welcome,在LogIn中输入用户名和密码,点击“提交”按钮,提交到CheckUser中进行验证,验证成功显示Welcome,失败则重新返 回到LogIn。 图1,业务流程 代码如下: LogIn类: package com.test.servlet; import java.io.*; import javax
Servlet生成验证码并进行账号密码和验证码的验证登陆!
前言: 人不是生来就懂事的,在编程的世界也是一样,想想在大一的时候我还是那个连输出Hello World!都不会的小孩子是,现在我已经可以编出属于我自己的小程序了。编程其实并不可怕,可怕的是你不去编。现在已经大三了,正在实训时间很紧,我争取每周发表一篇微博。今天我想来谈谈验证码登陆这个问题。我看了网上的相关知识,感觉网上大多只有如何生成验证码的,并没有系统的将相关的认证,今天我就整理了一下。 验证码
登录页面在输入了正确的用户名和密码后仍跳转到登录页面而不是期望的系统首页面,debug的时候发现,登录页面调用的action类方法被调用了两次,后台无法获取前台页面传过来的参数。
项目首页面进不去,debug的时候发现,index页面调用的action类方法被调用了两次,后台无法获取前台页面传过来的参数,导致登录页面在输入了正确的用户名和密码后仍跳转到登录页面而不是期望的系统首页面。
jsp作业(1)--使用jsp+servlet完成一个表单验证
要求:使用jsp+servlet完成一个表单验证,通过表单提交信息给Servlet,Servlet获取到信息后,处理,把信息放到request对象中,如果用户提交的姓名为空,不能跳转,否则,将信息全部显示出来。 //index2.jsp  String path = request.getContextPath();  String basePath = request.getSch
基于JSP+Servlet的用户登录验证
要求:实现一个简单的用户登验证程序.如果用户名和密码都正确,显示欢迎信息.  否则显示“登录失败”        分析:采用jsp页面完成提交信息和验证结果的显示,而验证过程由Servlet来完成,由于没涉及到数据库技术,所以用户名和密码都是事先确定好的,这些组件通过request对象实现对象共享.        设计: 1.登录表单页面 login.jsp 登录页面
【JSP页面】利用数据库中的表格中的数据实现验证用户名和密码
主要还是利用的jdbc这个jar包里的方法进行对orcale数据库查询和插入等,利用数据的来回传输为中心,加以各种判断函数
通过JavaScript进行登录验证
在大部分页面的首页中,都会存在用户登录的输入框。当用户输入了个人信息后(一般为用户名和密码),页面的程序通过检索和验证,如果结果为真,则跳转到子页面,如果验证后结果为假,则提示重新输入信息。而这种验证的过程必须借助数据库以及网站开发的语言的支持。 首先请看下面的流程图,对这个验证的过程有一个初步的了解。      用户在登录页面填写用户名和密码信息后,当点击提交按钮后,这些
由cacti无法登录引起的问题解决
今天早上登录cacti,发现输入用户名密码后就一直停留在登录页面    /var/lib/php/session权限问题    上网查了下大家都说这种问题大部分是因为apache对/var/lib/php/session的目录没有写入权限引起的,但是我记得之前有设置过权限,检查了一下发现果然是有权限的。    空间问题    于是查看了一下Apache的错误日志,发现有