index.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登录</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="login.jsp">
<p align="center">用户登录</p>
<p align="center">用户名
  <label>
  <input type="text" name="userName" />
  </label>
</p>
<p align="center">密码:
  <input type="password" name="Password" />
</p>
<p align="center">
  <input type="submit" name="Submit" value="提交" />
</p>
login.jsp<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<%@ page  import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " %>
<html>
<body>
<%
String username = request.getAttribute("userName") ;
String pass = request.getAttribute("password") ;
Class.forName("com.mysql.jdbc.Driver"); //加载驱动
Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.0.44:3306/javassdb", 
"root","root");//创建连接
 
    String sql ="select  id , username,  email , password  from tbl_User where username = " + username + " and password=" + pass;
    PreparedStatement pstmt = null ;
    ResultSet rs = null ;
    boolean flag = false ;
    try{
    pstmt = conn.prepareStatement(sql) ; //
    rs  = pstmt.executeQuery() ;//查询
    while(rs.next()){ //遍历查询结构,现实在页面中
flag = true ;
break ;
    }
    }catch(Exception e){
     e.printStackTrace();
    }finally{
     try{
     if (rs != null) rs.close() ;
     if (pstmt != null) pstmt.close() ;
     if (conn != null) conn.close() ;
     }catch(Exception e){
     e.printStackTrace() ;
     }
    }
    if (flag){
    
request.getRequestDispatcher("welcome.jsp").forward(request, response) ;
}else{
  request.getRequestDispatcher("index.jsp").forward(request, response) ;
}
%>
</body>
</html>
welcome.jsp<%@ page language="java" contentType="text/html; charset=utf-8"
  pageEncoding="utf-8"%>
<html>
<head><title>欢迎使用</title></head>
<body>
    欢迎:<%=request.getAttribute("username")%>
</body>
</html>

解决方案 »

  1.   

    使用mysqlsqlcreate database javassdb;
    use javassdb;
    create table tbl_user(
      id int auto_increment primary key ,
      username varchar(20),
      password varchar(20)
      
    )
      

  2.   

    <%@ page  import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement
    这个运行不能通过不知道怎么回事。
      

  3.   

    <%@ page  import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " %>
    这个“com.mysql.jdbc.*"运行有问题,应该怎么改?
      

  4.   

    "com.mysql.jdbc.*"运行有问题,是什么问题呢,如果是找不到这个类的话,楼主是不是没有给项目添加mysql驱动包啊,eg:mysql-connector-java-3.1.11-bin.jar
      

  5.   

    我刚才又检查了一下,发现还是这个代码有问题。
    <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
      </head>
      <body> 
        <form method="post" action="logon.jsp"><div align="center">
        </div><table width="623" cellspacing="0" cellpadding="0" border="1" height="164">
    <tbody><tr>
    <td colspan="2" align="center">用户登录<br></td >
    </tr>
    <tr>
    <td align="right">&nbsp;用户名:</td>
    <td>&nbsp;<input type="text" name="username"></td></tr>
    <tr>
    <td align="right">&nbsp;密&nbsp; 码:</td>
    <td>&nbsp;<input type="password" name="password"></td></tr>
    <tr>
    <td align="right">&nbsp;<input type="submit" value="登录"></td>
    <td align="center"><a href="login.jsp"><input type="submit" value="注册"></a></td></tr>
    </tbody></table></form></body>
    </html>
    我想实现的是有登录注册功能的网页,但是每次进入登录页面,填写相关信息后,再点击提交,就会直接跳到注册页面,不知道是什么原因,麻烦大家帮忙看下,最好配上修改后的代码,谢谢啦~
      

  6.   

     <form method="post" action="logon.jsp">  因为你这个页面里跳转的就是logon.jsp
      

  7.   

    注册那块不应该那样写,type不能用submit
      

  8.   

    <form method="post" action="logon.jsp"> 这个是不是写错了
      

  9.   

    你提交之后,提交到了login.jsp中,你这个login.jsp的代码贴上来看看啊
      

  10.   

    form标签里面不可以有两个submit吧,如果一定要用,就用js,把type都改为button,onclick时间触发事件,改变window.location的值
      

  11.   


    额,我写的logon是登陆页面,login是注册页面。。
      

  12.   

    你处理用户登录的代码是在logon.jsp中写的还是用了servlet,把处理用户登录的代码贴上来logon.jsp
      

  13.   

    你处理用户登录的代码是在logon.jsp中写的还是用了servlet,把处理用户登录的代码贴上来logon.jsp
      

  14.   


    这个login.jsp好像有点问题。。不能实现页面跳转。。
      

  15.   


    这个login.jsp好像有点问题。。不能实现页面跳转。。
      

  16.   

    你如何判断用户名 密码正确呢你把login.jsp 贴出来吧
      

  17.   

    这是login.jsp,引用了3楼的,我觉得之前写的不好,所以想在这个的基础上改进。。
    <%@ page language="java" contentType="text/html; charset=utf-8"
      pageEncoding="utf-8"%>
    <%@ page  import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " %>
    <html>
    <body>
    <%
        String username = request.getAttribute("userName") ;
        String pass = request.getAttribute("password") ;
        Class.forName("com.mysql.jdbc.Driver"); //加载驱动
        Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.0.44:3306/javassdb", 
                "root","root");//创建连接
         
        String sql ="select  id , username,  email , password  from tbl_User where username = " + username + " and password=" + pass;
        PreparedStatement pstmt = null ;
        ResultSet rs = null ;
        boolean flag = false ;
        try{
            pstmt = conn.prepareStatement(sql) ; //
            rs  = pstmt.executeQuery() ;//查询
            while(rs.next()){ //遍历查询结构,现实在页面中
                    flag = true ;
                    break ;
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try{
                if (rs != null) rs.close() ;
                if (pstmt != null) pstmt.close() ;
                if (conn != null) conn.close() ;
            }catch(Exception e){
                e.printStackTrace() ;
            }
        }
        if (flag){
        
                request.getRequestDispatcher("welcome.jsp").forward(request, response) ;
            }else{
              request.getRequestDispatcher("index.jsp").forward(request, response) ;
            }
    %>
    </body>
    </html>
      

  18.   

    下面是我修改后的代码,我在本地已经测试了<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    <%@ page import="com.mysql.jdbc.*,java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " %>
    <html>
    <body>
    <%
       String username = (String)request.getParameter("username") ;
       String pass = (String)request.getParameter("password") ;
       Class.forName("com.mysql.jdbc.Driver"); //加载驱动
       Connection conn = DriverManager.getConnection("jdbc:mysql://192.168.0.44:3306/javassdb",  
      "root","root");//创建连接
         
      String sql ="select id , username, email , password from tbl_User where username = '" + username + "' and password='" + pass+"'";
       PreparedStatement pstmt = null ;
       ResultSet rs = null ;
       boolean flag = false ;
       try{
       pstmt = conn.prepareStatement(sql) ; //
       rs = pstmt.executeQuery() ;//查询
       while(rs.next()){ //遍历查询结构,现实在页面中
       System.out.println("ddd");
       flag = true ;
       break ;
       }
       }catch(Exception e){
       e.printStackTrace();
       }finally{
       try{
       if (rs != null) rs.close() ;
       if (pstmt != null) pstmt.close() ;
       if (conn != null) conn.close() ;
       }catch(Exception e){
       e.printStackTrace() ;
       }
       }
       if (flag){
         
      request.getRequestDispatcher("welcome.jsp").forward(request, response) ;
       }else{
       request.getRequestDispatcher("index.jsp").forward(request, response) ;
       }
    %>
    </body>
    </html>
      

  19.   

    这个写得很好,但还是有点小问题,我用已经注册成功的帐号进行登录,但每次显示的都是登录失败。
    麻烦再看看~谢谢啦~
    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
    <%@ page import="java.sql.Connection, java.sql.DriverManager,java.sql.PreparedStatement,java.sql.ResultSet " %>
    <html>
    <body>
    <%
      String username = (String)request.getParameter("username") ;
      String pass = (String)request.getParameter("password") ;
      Class.forName("com.mysql.jdbc.Driver"); //加载驱动
      Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/javassdb",   
      "root","admin");//创建连接
        
      String sql ="select  username, password from tbl_User where username = '" + username + "' and password='" + pass+"'";
      PreparedStatement pstmt = null ;
      ResultSet rs = null ;
      boolean flag = false ;
      try{
      pstmt = conn.prepareStatement(sql) ; //
      rs = pstmt.executeQuery() ;//查询
      while(rs.next()){ //遍历查询结构,现实在页面中
      flag = true ;
      break ;
      }
      }catch(Exception e){
      e.printStackTrace();
      }finally{
      try{
      if (rs != null) rs.close() ;
      if (pstmt != null) pstmt.close() ;
      if (conn != null) conn.close() ;
      }catch(Exception e){
      e.printStackTrace() ;
      }
      }
      if (flag){  
      request.getRequestDispatcher("logonSuccess.jsp").forward(request, response) ;
      }else{
      request.getRequestDispatcher("logonFailure.jsp").forward(request, response) ;
      }
    %>
    </body>
    </html>
      

  20.   

    这个代码是正确的,我已经测试过了,你把你的那个sql语句输出一下,看你得到的用户名和密码对不? 还有就是你注册时你确定你新注册的用户已经写入数据库,你的用户名和密码中有没有中文?
      

  21.   

    我按照上面写的 老出现错误  
    下面这个可以看看  没有出错 
    index.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">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
      </head>
      
      <body>
           <div>
           <form action="./login.jsp" method="post">
    <table border="1px" cellpadding="0" cellspacing="0">
    <tr>
    <td>用户名:</td>
    <td colspan="2"><input type="text" name="cname" ></td>

    </tr>
    <tr>
    <td>密码:</td>
    <td colspan="2"><input type="password"  name="cpass"/></td>
    </tr>

    <tr align="center">
    <td colspan="3">
    <input type="submit" value="登录"/>
    </td>
    </tr>
    </table>
    </form>
           </div>
      </body>
    </html>login.jsp
    <%@page import="java.sql.ResultSet"%>
    <%@page import="java.sql.PreparedStatement"%>
    <%@page import="java.sql.DriverManager"%>
    <%@page import="java.sql.Connection"%>
    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String name = request.getParameter("cname"); String pass = request.getParameter("cpass");
    out.println(name + ":::" + pass); Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(
    "jdbc:mysql://localhost:3306/dlym", "root", "root"); String sql = "select id,name,pass from customer where name='" + name
    + "' and pass='" + pass+"'"; PreparedStatement pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); if (rs.next()) {
    out.println("欢迎" + name + "登录!");
    } else {
    out.println("用户名和密码错误"); }
    %>
      

  22.   

    <br /> 主界面<br />
    <br /> 用户名:<input type="text" name="username" value="邮箱称手机号"
    class="info" onblur="checkname()" /><br />
    <br /> 密&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="password"name="userpwd" class="info" onblur="chepaw()" /><br />
    <!-- Servlet界面 -->
    String name=req.getParameter("username");
    String paw=req.getParameter("userpwd");
    CustomerDao dao=new CustomerDao(); 
    boolean flag=dao.Landing(name, paw);
                                          //根据数据库返回值,进行判断,而进到不同的界面
    if(flag){
    req.getRequestDispatcher("btn.jsp");
    }else{
    req.getRequestDispatcher("Login.jsp");
    }
    <!-- 连接数据库 -->
    public boolean Landing(String name,String paw){
    Connection con=null;
    ResultSet rs = null;
    PreparedStatement ps=null;
    int num=0;
    boolean flag=false;
    Customer cust=new Customer();
    try {
    con = getConnection();
    String sql="select * from customer where userName=? and Password=?";
    ps = con.prepareStatement(sql);
    ps.setString(1, name);
    ps.setString(2, paw);
    rs=ps.executeQuery();
    while(rs.next()){
    flag=true;
    break;
    }
    } catch (Exception ex) {
    ex.printStackTrace();
    } finally {
    closeResource(rs, ps, con);
    }
    return flag;
    }
      

  23.   

    好吧,顶你一个,jsp写网页反而麻烦