正在模仿mvc模式,不过没有写代理类与工厂类,这个只是实现功能,连数据库都没有关。
过程:打开index.jsp,若是cookie为null则跳到form.jsp 若不为null则查找固定的cookie_user的值,再找数据库取出对应的随机码。然后加密得出的字符串与cookie_random的值相比若都相等则输入welcom.表示登录成功。
index.jsp //在if 那里用response.send 这个跳转,一定要在下面加return 不然出错。
代码如下 | 复制代码 |
<%@ page contentType="text/html; charset=utf-8" language="java" import="wen.func.*" errorPage="" %> <%@ page import="admin.dao.*"%> <%@ page import="admin.dbc.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>home page</title> </head> <body> <% Cookie c[] = request.getCookies();
ConnData conn=new ConnData(); </body> |
form.jsp
代码如下 | 复制代码 |
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Servlet and Form</title> <link href="css/clogin.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="login">
|
servlet 接受数据。这里没有关闭数据库操作。
代码如下 | 复制代码 |
package admin.login; import java.io.IOException; import javax.servlet.ServletException; public class CheckLogin extends HttpServlet { /** if(!check) check =false; if(check) /** }
|
操作数据库,看mvc模式,一般是先定义一个接口,然后再定义一个实现接口的类,,这里没有接口,直接操作数据库类。
代码如下 | 复制代码 |
package admin.dao; import java.sql.*; import wen.func.MyFunc; public boolean CheckUserPass(String user,String pass) throws SQLException |
连接数据库类。,mvc里的是也单独一个类,关闭操作是放在代理类里。
代码如下 | 复制代码 |
package admin.dbc; import java.sql.Connection; import java.sql.DriverManager; public class ConnData { private static final String DBDRIVER = "org.gjt.mm.mysql.Driver"; private static final String DBURL = "jdbc:mysql://localhost:3306/onepc"; private static final String DBUSER = "root"; private static final String DBPASS="root"; private Connection conn = null; public ConnData() throws Exception { try { Class.forName(DBDRIVER); this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); }catch (Exception e) { throw e; } } public Connection getConn() { return this.conn; } public void close() throws Exception { if(this.conn!=null) { try { this.conn.close(); }catch(Exception e) { throw e; } } } }
|
md5加密,网上搜来的代码。随机的是用查表方式,打出数组用 for int i=0; i<255;i++用char转就,用stringbuffer.append加就可以了。
代码如下 | 复制代码 |
package wen.func; //import java.sql.*; import java.util.Random; import java.security.MessageDigest; public class MyFunc { public static String setEncrypt(String str){ for(int i=0,j=0;i<str.length();i++,j++){ for(int k=0;k<str.length();k++){ if(snNum[k]<10){ /** for(int i=0,j=0;i<str.length()/3;i++,j++){ for(int k=0;k<str.length()/3;k++){ |