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>
- JSP基础语法之八:session对象,简单登录模块(session+JDBC)
- JSP简单登录模块使用Session
- JSP简单登录模块使用Session
- 在JSP中使用Session制作简单的登录模块
- JSP之session对象
- jsp之session对象
- JSP之Session对象
- Jsp基础之session
- JSP内置对象之----session登录及注销
- JSP内置对象之session
- jsp内置对象之session
- (七)JSP基本语法--session对象
- jsp基础之--使用Session完成简单的登陆操作
- jsp内置对象之-session对象
- JSP内置对象之session对象案例
- jsp内置对象之session对象
- Web基础之Cookie对象与Session对象(一)
- Web基础之Cookie对象与Session对象(二)
- 亚马逊 输出数字波峰波谷
- poj 3345 Bribing FIPA 树形dp
- 什么是Servlet以及Servlet的优越性
- 动态规划求解矩阵累计和最大的路径
- 百度:100个灯泡
- JSP基础语法之八:session对象,简单登录模块(session+JDBC)
- 只能上QQ不能上网
- UVA 4995 —— Map的使用
- 数据库基础学习----SQL语句的连接方式
- Java基础教程 01
- poj 3660
- [转载]MyEclipse 8.5 注册码生成器(java版)
- CoreData基础
- C语言深度解剖 关键知识总结