A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄方 中级黑马   /  2012-3-13 12:23  /  2851 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

刚刚接触jsp,请各位指点!为何传过去的用户名和密码都为空,而就直接跳到错误页面!
login.jsp  登陆界面
longin_check 验证界面



login.jsp  登陆界面
<body>
                <form name=" form1" method="post" action="Login_check.jsp">
                        <br>
                        用户名:
                        <input type="text" name=" name" id=" name">
                        </br>
                        <br>
                        密码:
                        <input type="password" name="password" id=" name">

                        <br>
                        <input name="Submit" type="submit" id=" Submit" value="登陆">
                        &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
                        <input name="Submit2" type="reset" value="重置">



                </form>

        </body>






longin_check 验证界面


<%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                        + request.getServerName() + ":" + request.getServerPort()
                        + path + "/";
%>

<%
        request.setCharacterEncoding("UTF-8");
%>

<%
        String name = request.getParameter("name");
        String pwd = request.getParameter("password");

                try {
                        Class
                                        .forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                } catch (ClassNotFoundException e) {
                        e.printStackTrace();
                        System.out.print("驱动包连接失败!");
                }

                String url = "jdbc:sqlserver://localhost:1433;DatabaseName=StuInfor";
                String user = "sa";
                String password = "sa";
                Connection con = null;
                PreparedStatement psta = null;
                ResultSet rs = null;
                String sql = "select * from Student where username='" + name
                                + "' and password='" + pwd + "'";
               
                try {
                        con = DriverManager.getConnection(url, user, password);
                } catch (SQLException e) {
                        e.printStackTrace();
                        System.out.println("数据库连接失败!");
                }

                try {
                        psta = con.prepareStatement(sql);

                        rs = psta.executeQuery();
                       
                        if (rs.next()) {
                                session.setAttribute("Login_name", name); //成功登陆的用户存储到session对象中
                                response.sendRedirect("Main.jsp"); //登陆成功后转向到mian.jsp页面中
                        } else {

                                response.sendRedirect("index.jsp"); //登陆失败转向到index.jsp页面中
                        }
                } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        //}
%>

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

2 个回复

正序浏览
lucky_xingxing 发表于 2012-3-13 12:43
你这样写代码是不规范的。jsp是用来页面显示的,在mvc中属于显示层,它的用途是用来显示逻辑的 而不是用来 ...

嗯嗯,你说的很对,底层数据处理应该是交给serverlet的,对于一个新手来说,我没接触过serverlet,自学的jsp,从jsp角度来看,貌似更直观!如果从编程规范角度来讲确实要封装,由于我这是个很简单的登陆界面处理,可以直接交给jsp处理的!由于与现在myeclipse的功能比较强大,所以就创了4个页面,让它跑,如果是业务比较多的话,肯定有交给serverlet的!还好自己不断debug给解决了!谢谢你的提醒!
回复 使用道具 举报
你这样写代码是不规范的。jsp是用来页面显示的,在mvc中属于显示层,它的用途是用来显示逻辑的 而不是用来处理请求的以及控制业务逻辑的,你应该把请求交给servlet通过servlet来对第一个表单的请求进行处理  然后再转向页面。要养成好的编程规范,jsp页面里面也是尽量别写java代码的 而是基本都是通过el表达式和jstl标签来实现的。对于你这个问题 我觉得你可以把请求交给servlet来处理   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马