JSP基础语法之八:session对象,简单登录模块(session+JDBC)

来源:互联网 发布:python 类型判断 编辑:程序博客网 时间:2024/05/29 04:22



logIn.jsp 负责输入表格,然后提交到连接数据库检查的页面

logOut.jsp 负责注销(登出)操作

checkLogIn.jsp 负责连接JDBC, 检查login_index.jsp提交来的值,是否在数据库中

welcome.jsp 负责输出成功登录或登录失败的信息



一:SQL脚本:

DROP TABLE userlogin;  CREATE TABLE userlogin  (      userid VARCHAR2(30),      name VARCHAR2(30) NOT NULL,      password VARCHAR2(32) NOT NULL,      CONSTRAINT userlogin_userid_pk PRIMARY KEY(userid)  );  INSERT INTO userlogin(userid,name,password) VALUES('admin','adminstrator','admin');   commit;  




二: logIn.jsp:接收用户输入信息

<%@ page contentType="text/html" pageEncoding="GBK"%><html><head><title> session-login </title></head><body>  <%if(session.isNew())//判断是否已分配session{%><h2>欢迎新用户访问!</h2><%}else{%><h2>您是老用户,请登录</h2><h4>(您已经在本站点停留了<%=(session.getLastAccessedTime()-session.getCreationTime())/1000 %>秒)</h4> <!--计算session创建时间--><%}%>    <form action="checkLogIn.jsp" method="post">          <table border="1" width="50%">            <tr>              <td colspan="2">                  用户登录              <td>            <tr>                        <tr>              <td>用户名</td>              <td><input type="text" name="user"></td>            </tr>                        <tr>              <td>密码</td>              <td><input type="password" name="password"></td>            </tr>                        <tr>            <td colspan="2">              <input type="submit" value="提交">              <input type="reset" value="重置">            <td>            <tr>                            </table>      </form>              </body>  </html>






三: checkLogIn.jsp:连接数据库后,检查输入的登录信息是否正确

<%@ page contentType="text/html" pageEncoding="GBK"%>  <%@ page import="java.sql.*"%>      <html>      <head>          <title> checkLogIn </title>      </head>        <body>                <%!          private static final String DBDriver = "oracle.jdbc.driver.OracleDriver";//驱动            private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:ORCL";//URL命名规则:jdbc:oracle:thin:@IP地址:端口号:数据库实例名          private static final String DBUser = "scott";          private static final String DBPassWord = "890307";      %>               <%             Connection con = null; //数据库连接状态          Statement st = null;    //数据库容器          ResultSet res = null; //查询结果                    boolean flag = false ; //通过数据库匹配标识          String name_checked = null; //检查通过的用户名                  String u = ""; //从登陆页面获得的“用户名”        String p = ""; //从登陆页面获得的“密码”    %>            <%          try {          //连接          Class.forName(DBDriver);//加载数据库驱动            con = DriverManager.getConnection(DBURL, DBUser, DBPassWord);//连接                      %>              <!-- 测试数据库连接 <h2>Debug_已连接 <%=con%></h2>  -->    <%                       st = con.createStatement(); //实例化          u = request.getParameter("user"); //从上级页面获得的用户名          p = request.getParameter("password"); //从上级页面获得的密码          String sql = "SELECT name FROM userlogin WHERE userid IN ('"+ u + "')" + " AND password IN ('"+p+"')";//组装SQL语句          System.out.println(sql);//执行上述设置的sql查询语句          res = st.executeQuery(sql);          if(true == res.next())//只有查询得到结果才能进入循环          {              flag = true;               name_checked = res.getString(1); //获得查询出的name                     %>                         <h3>Debug_数据库查询结果 <%=name_checked%> </h3>      <%          }      } catch (Exception e) {          System.out.println(e);      }finally{          //关闭连接                try{              res.close();//依次关闭              st.close();              con.close();          }catch(Exception e)          {          }      }  %> <%if(true == flag){session.setAttribute("uname",u);%><h2>登陆成功, 3秒内若没有跳转,<a href="welcome.jsp">请点击此处</a></h2><%response.setHeader("refresh","3;URL=welcome.jsp");}else{%><h2>登录失败 <a href="logIn.jsp">点此处重新登录</a></h2><%}%></body></html>




四:welcome.jsp 显示登陆成功或失败

<%@ page contentType="text/html" pageEncoding="GBK"%><html><head><title> welcome </title></head><body><%String sa = (String)session.getAttribute("uname");if(null != sa && !sa.equals("") ) //null是防止NullPointer,如果session设置成功,就不是空值{%><h2> 登录成功 ,欢迎  <%=sa%>  使用 </h2><br><h2> <a href="logOut.jsp">注销按钮</a> </h2><%}else{%><h2>还未登录 <a href="logIn.jsp">点此处登录</a></h2><%}%></body></html>




五:logOut.jsp 注销(登出)

<%@ page contentType="text/html" pageEncoding="GBK"%><html><head><title> logOut </title></head><body><br><br><%session.invalidate();response.setHeader("refresh","3;URL=logIn.jsp");%><h2>已经注销成功, 3秒内若没有跳转,<a href="logIn.jsp">请点击此处</a></h2></body></html>




























原创粉丝点击