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跟踪一下

解决方案二:

走到这里了吗?

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

时间: 2024-10-30 20:48:43

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

asp.net中登录页面用户名和密码与数据库中数据进行比对出错,求大神指导!!!!

问题描述 asp.net中登录页面用户名和密码与数据库中数据进行比对出错,求大神指导!!!! dr['AID']=112100011TextBox1.Text=1121000177 dr['apassword']=245fghTextBox2.Text=123456 dr['AID']=1121000177TextBox1.Text=1121000177 dr['apassword']= 123456TextBox2.Text=123456 用户名或密码不正确,请重新输入! 这是运行时页面打印出

java 往新浪云部署 一直连接不上数据库 用户名和密码都已经配置对了呀,求大神解决

问题描述 java 往新浪云部署 一直连接不上数据库 用户名和密码都已经配置对了呀,求大神解决 报错内容 Caused by: org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC

数据库用户名 密码和登录用户名和密码有什么区别

问题描述 数据库用户名 密码和登录用户名和密码有什么区别 数据库用户名 密码和登录用户名和密码有什么区别数据库用户名 密码和登录用户名和密码有什么区别 解决方案 yii 从数据库获取用户名.密码登录失败: 未知的用户名或错误密码.access数据库的用户名和密码的问题 解决方案二: 数据库用户名,密码就是你连接数据库的时候用的认证数据 登陆用户名密码指的什么,是数据库还是机器的 解决方案三: 这里我不知道你问的具体是哪个登录密码,如果你问的是对于数据库有不同的用户,比如 sys system h

javaweb-jsp页面调用Servlet后进入Servlet页面空白不跳转了

问题描述 jsp页面调用Servlet后进入Servlet页面空白不跳转了 各位大大,小弟正在用java做毕业设计,遇到一个问题,就是想实现获取页面的学生姓名sname和学号sno,然后到数据库中执行查询,将这个学生的成绩从数据库中输出到新的页面.可是,问题来了:在查询页面点击提交按钮后,页面跳转到ChengjiServlet2页面,web浏览器就一片空白,在ChengjiServlet2页面的sendRedirect也没了作用...希望各位大大们看在我操心做毕业设计的份儿上帮帮我吧,说白了就是

web-知道账号密码,怎么跳过登录页面?

问题描述 知道账号密码,怎么跳过登录页面? 自己写一个程序,知道账号密码,怎么跳过登录页面?比如在别的网址登录了12306网址,这个网站就能通过我的账号登录12306,谢谢,本人菜鸟,恳请指教 解决方案 登录页面成功后在本地生成cookie,下次登录先查找cookie文件,若能找到则直接讲账号密码填充,然后跳转页面,如果没有cookie,代表是第一次登录,需要输入账号密码生成cookie

ajax-关于extjs获取json数据,后台错误时怎么显示错误页面

问题描述 关于extjs获取json数据,后台错误时怎么显示错误页面 struts2返回json数据错误时,怎么捕获异常.跳转到错误页面.我写了个拦截器.session过期时跳转到login.jsp.可是他却直接给我弹出一个login.jsp源代码.查看网上都说struts的拦截器无法捕捉ajax的异常.那我又该如何做呢?改struts核心文件?求大神赐教! 解决方案 你可以设置响应头status代码为500,这样客户端才能捕获到错误执行failure回调,要不是200响应头会进入Ext.aja

javascript-使用JavaScript讲TXT中的用户名,密码插入到数据库中

问题描述 使用JavaScript讲TXT中的用户名,密码插入到数据库中 使用JavaScript讲TXT中的用户名,密码插入到数据库中,希望给个源码例子看看 解决方案 js在客户端运行接触不到数据库,一般是js获取用户输入,用ajax方式post到你的java后端,java得到参数插入数据库. 解决方案二: 你是光学前端吗?如果你学过后端编程,可以通过后端程序进行插入数据 解决方案三: javascript没有和数据库直接相连的驱动,因为javascript代码很容易被篡改,所以一点都不安全,

asp.net注册用户名, 密码,手机号码, 邮箱在后台的验证怎么写啊

问题描述 asp.net注册用户名,密码,手机号码,邮箱在后台的验证怎么写啊 解决方案 解决方案二:注册名不重复不是脏字就行了,密码后台验证啥啊,前台验证达到一定复杂度就行了,后台存的至少是md5过的,手机号码和邮箱都可以用正则来验证解决方案三:引用1楼truecoffeefox的回复: 注册名不重复不是脏字就行了,密码后台验证啥啊,前台验证达到一定复杂度就行了,后台存的至少是md5过的,手机号码和邮箱都可以用正则来验证 后台也是可以用正则的但是一般都是前台验证的解决方案四:引用2楼daifei

mysql-Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果?

问题描述 Java Web连接MySql数据库,修改数据库连接类中的用户名和密码没有效果? 现在在做一个项目,其中编写了数据库连接及操作的类. 1.ConnDB类. package com.wgh.tools; import java.io.InputStream; //导入java.io.InputStream类 import java.sql.*; //导入java.sql包中的所有类 import java.util.Properties; //导入java.util.Properties