如辇 2016-10-05 10:47 采纳率: 50%
浏览 1511
已结题

servlet连接mysql数据库问题

            本人初学web组件,很多基础不会,望各位大神不要鄙视~~~~

-----login.java----

package com.tsinghua;

import javax.servlet.http.*;

import java.io.*;

public class Login extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse res){

    //业务逻辑

    try{

        //接受用户名和密码
        String u=req.getParameter("usrename");
        String p=req.getParameter("passwd");

        //中文乱码
        res.setContentType("text/html;charset=gbk");

        PrintWriter pw=res.getWriter();

        pw.println("<html>");
        pw.println("<body>");
        pw.println("<form action=logincl method=post>");
        pw.println("用户名:<input type=text name=username><br>");
        pw.println("密码:<input type=password name=passwd><br>");
        pw.println("<input type=submit value=Login><br>");
        pw.println("</form>");
        pw.println("</body>");
        pw.println("</html>");


        }
        catch(Exception ex){

            ex.printStackTrace();

            }
    }

public void doPost(HttpServletRequest req,HttpServletResponse res){

    this.doGet(req,res);
    }
}

----loginCl.java----------

package com.tsinghua;

import javax.servlet.http.*;
import java.io.*;
import java.sql.*;

public class LoginCl extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse res){

    Connection ct=null;
    Statement sm=null;
    ResultSet rs=null;
    String host="127.0.0.1:3306";

    try{

        String u=req.getParameter("username");
        String p=req.getParameter("passwd");

        PrintWriter pw=res.getWriter();

        Class.forName("com.mysql.jdbc.Driver");
        ct=DriverManager.getConnection("jdbc:mysql://"+host+"/login","root","2535663");
        sm=ct.createStatement();
        rs=sm.executeQuery("select top 1 * from users where username='"+u+"'and passwd='"+p+"'");

        pw.println("连接成功!");

        if(rs.next()){
            //合法
            res.sendRedirect("welcome");

            }else{
                //不合法
                res.sendRedirect("login");
                }

        HttpSession hs=req.getSession(true);

        hs.setMaxInactiveInterval(30);

        hs.setAttribute("uname",u);

        }
        catch(SQLException e)
        {
            e.printStackTrace();
        }
        catch(ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        catch(Exception ex){
            ex.printStackTrace();
            }
        finally{

            try {

                if(rs!=null){

                        rs.close();
                    }
                    if(sm!=null){

                        sm.close();
                    }
                    if(ct!=null){

                        ct.close();
                    }
            }catch (Exception ex) {

                ex.printStackTrace();
            }
    }
    }

public void doPost(HttpServletRequest req,HttpServletResponse res){

    this.doGet(req,res);
    }

}

------wel.java-------
package com.tsinghua;

import javax.servlet.http.*;
import java.io.*;
import java.sql.*;

public class wel extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse res){

    Connection ct=null;
    Statement sm=null;
    ResultSet rs=null;
    String host="127.0.0.1:3306";


    try{
        String u=req.getParameter("username");
        String p=req.getParameter("passwd");




        //从session中得到用户名
        HttpSession hs=req.getSession(true);
        String myName=(String)hs.getAttribute("uname");
        String name="";
        String passwd="";
        if(myName==null){
            res.sendRedirect("login");
            return ;

            }


        //解决中文乱码
        res.setCharacterEncoding("gbk");

        PrintWriter pw=res.getWriter();
        pw.println("<body bgcolor=#CED3FF>");

        pw.println("<img src=imgs/1.GIF>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;欢迎您:"+myName+"<img src=imgs/me.gif><hr><center>");

        pw.println("<h1>管理用户</h1>");

        //做个超链接 
        pw.println("<br><a href=login>返回重新登录</a>");

        }catch(Exception ex){
            ex.printStackTrace();
            }

}
public void doPost(HttpServletRequest req,HttpServletResponse res){

    this.doGet(req,res);
    }

}


----------------------------sql文件------------------------------------


drop database if exists login;

create database login;

use login;

drop table if exists users;
create table users (
username varchar(20),
passwd varchar(20),
email varchar(30),
grade int);

insert into users values
('admin','admin','admin@sohu.com',1);

insert into users values
('shunping','shunping','shunping@sohu.com', 1);

insert into users values
('tester1','tester1','tester1@sohu.com',5);

insert into users values
('tester2','tester2','tester2@sohu.com',5);

insert into users values
('tester3','tester3','tester3@sohu.com',5);

insert into users values
('tester4','tester4','tester4@sohu.com',5);

insert into users values
('tester5','tester5','tester5@sohu.com',5);

insert into users values
('tester6','tester6','tester6@sohu.com',5);

insert into users values
('tester7','tester7','tester7@sohu.com',5);

insert into users values
('tester8','tester8','tester8@sohu.com',5);

insert into users values
('tester9','tester9','tester9@sohu.com',5);

insert into users values('tester10','tester10','tester10@sohu.com',5);

insert into users values('tester11','tester11','tester11@sohu.com',5);

insert into users values('tester12','tester12','tester12@sohu.com',5);

insert into users values('tester13','tester13','tester13@sohu.com',5);

insert into users values('tester14','tester14','tester14@sohu.com',5);

select * from users;

------------------------------web.xml--------------------------------

<?xml version="1.0" encoding="UTF-8"?>

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1"
metadata-complete="true">

Welcome to Tomcat

Welcome to Tomcat

<servlet>
    <servlet-name>HelloGen</servlet-name>
    <servlet-class>com.tsinghua.HelloGen</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>HelloGen</servlet-name>
    <url-pattern>/sp</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>helloHttp</servlet-name>
    <servlet-class>com.tsinghua.helloHttp</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>helloHttp</servlet-name>
    <url-pattern>/sh</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>Login</servlet-name>
    <servlet-class>com.tsinghua.Login</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Login</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>LoginCl</servlet-name>
    <servlet-class>com.tsinghua.LoginCl</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>LoginCl</servlet-name>
    <url-pattern>/logincl</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>wel</servlet-name>
    <servlet-class>com.tsinghua.wel</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>wel</servlet-name>
    <url-pattern>/welcome</url-pattern>
</servlet-mapping>

-----------------------------------文件位置-------------------------------------


mysql的jar包我也引了,然后这是sql文件位置。mysql运行没有问题。

然后文件我调试了,发现就是输入帐户名和密码后,离开登陆页面,进入登陆验证界面,进不去欢迎界面,调试后发现就是数据库连接不上。

各位大神帮帮忙,这个问题困扰很久了。。。

  • 写回答

6条回答 默认 最新

  • 努力的人儿 2016-10-05 10:53
    关注

    首先你看一下你的数据库名是否正确?

    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?