logo
首页
标准版
您当前访问的是预览版网页,若要正常使用功能请戳我前往标准版
胖虎

这个包没写错吧

package Md5;

public class Md5 {

/**

* 将密码转换成MD5加密后的字符串形式.

* @param password 原始密码

* @return 32位字符串

*/

public static String getMD5(String password) {

byte[] source = password.getBytes();

String s = null;

char hexDigits[] = { // 用来将字节转换成 16 进制表示的字符

'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D',

'E', 'F' };

try {

java.security.MessageDigest md = java.security.MessageDigest

.getInstance("MD5");

md.update(source);

byte tmp[] = md.digest(); // MD5 的计算结果是一个 128 位的长整数,

// 用字节表示就是 16 个字节

char str[] = new char[16 * 2]; // 每个字节用 16 进制表示的话,使用两个字符,

// 所以表示成 16 进制需要 32 个字符

int k = 0; // 表示转换结果中对应的字符位置

for (int i = 0; i < 16; i++) { // 从第一个字节开始,对 MD5 的每一个字节

// 转换成 16 进制字符的转换

byte byte0 = tmp; // 取第 i 个字节

str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 取字节中高 4 位的数字转换,

// >>> 为逻辑右移,将符号位一起右移

str[k++] = hexDigits[byte0 & 0xf]; // 取字节中低 4 位的数字转换

}

s = new String(str); // 换后的结果转换为字符串

} catch (Exception e) {

e.printStackTrace();

}

return s;

}

}

然后,不知道在tomcat里边改怎么放 jsp里边才能找到我写的这个包

这个是jsp

<%@ page language="java" import="java.util.*" import = "Md5.*" import="java.sql.*" import = "java.util.Date" pageEncoding="utf-8"%>

<%

//String path = request.getContextPath();

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

String emsg = "ertyuio";

java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

java.util.Date currentTime = new java.util.Date();//得到当前系统时间

String t = formatter.format(currentTime); //将日期时间格式化

Class.forName("com.mysql.jdbc.Driver");

Connection conn = DriverManager.getConnection("xxXXXXXXXXXXXXXXX");

Statement stat = conn.createStatement();

String id = request.getParameter("id");

String password = request.getParameter("password");

String password1;

String ip = request.getRemoteAddr();

String sql = "";

//password1 = Md5.getMD5(password);

int a ;

int a1 = 0;

int a2 = 0;

int i = 0;

int a3 = 0;

%>

<%=id +" "+password+" "+ip+" "+t+" " %>

<%

sql = "SELECT COUNT(id) FRoM users WHERE id = '"+id+"'" ;

ResultSet rs = stat.executeQuery(sql);

rs.next();

a = rs.getInt(1);

%> <%="数据库中共有 "+a %> <%

if(a == 0){

sql = "INSERT INTO users(id,password,creat_time,ip) VALUES(?,?,?,?)";

PreparedStatement ps = conn.prepareStatement(sql);

if(id == null )

{a1 = 0;}

else if(id.getBytes("UTF-8").length>30)

{a1 = 1;}

else if(password == null )

{a2 = 0;}

else if( password.getBytes("UTF-8").length>900)

{a2 = 1;}

else if (id != null && password != null && ip != null){

password1 = Md5.getMD5(password);

emsg = "1";

ps.setString(1,id);

ps.setString(2,password1);

ps.setString(3,t);

ps.setString(4,ip);

i = ps.executeUpdate();

}

}

else if (a == 1){a3 = 1;}

else {a=0;}

%>

<%="md5加密后 "+password1+" " %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

*本站禁止HTML标签噢*

*本站禁止HTML标签噢*

*本站禁止HTML标签噢* 注册系统 </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">

</head>

*本站禁止HTML标签噢*

<script type = "text/javascript">

function a()

//得到文本内容

{

id = document.log.id.value;

password = document.log.password.value;

password1 = document.log.password1.value;

//alert(id +" "+password +" "+ password1 );

if( id == ""){

alert("请填写用户名 ");

document.log.uid.focus();

}

else if(password == ""){

alert("密码不能为空");

document.log.password.focus();

}

else if(password1 != password){

alert("请检查密码是否一致");

document.log.password.focus();

}

else

log.submit();

}

if(<%= i%> == "1"){

alert("成功注册");

}

if(<%= a1%> == "1"){

alert("ID输入过长");

}

if(<%= a2%> == "1"){

alert("留言输入过长");

}

</script>

<!-- 页面******************************************************************************************** -->

<form name = "log" method = "post" >

<%=emsg %> <%= "a3 = "+ a3 %>

*本站禁止HTML标签噢*

*本站禁止HTML标签噢* *本站禁止HTML标签噢* 用户名:</td> *本站禁止HTML标签噢* <input type = "text" name = "id"> </td> </tr>

*本站禁止HTML标签噢* *本站禁止HTML标签噢* 设置密码:</td> *本站禁止HTML标签噢* <input type = "password" name = "password"> </td></tr>

*本站禁止HTML标签噢* *本站禁止HTML标签噢* 确认密码</td> *本站禁止HTML标签噢* <input type = "password" name = "password1"></td></tr>

*本站禁止HTML标签噢* <td align = "right"> </td><td align = "left">   <input type = "reset" >  <input type = "button" value = "注册"; ></td></tr>

</table>

</form>

</body>

</html>

部分细节没完善和重复的先不理,因为不知道怎么用自定义包来md5加密,这个是主要问题

灌水菊花

import="java.util.*,Md5.*" 逗号隔开,就好了#26x

跟着如果你启动时候报错nofound你就重新部署一下tomcat,或者清一下工程缓存就好了

还有我看你的代码,你那个Md5这个类没有实例化,password1 = Md5.getMD5(password);,不是先new一个对象再用方法吗

----------------------------

Md5 md5=new Md5();

md5.getMD5(password);

----------------------------

- -应该我这样子说没有错吧!#17x

胖虎

小野千帆 发表于 2013-5-22 12:18

提示classnofound什么的吗?

还是其他的什么异常?

就是没找到 nofound。。。。我不会引用包而已~

小野千帆

胖虎 发表于 2013-5-18 20:30

原来如此。。。就是import了但是tomcat就会报错 我不知道具体应该怎么放,或者说做成什么样的格式才能用 ...

提示classnofound什么的吗?

还是其他的什么异常?

胖虎

小野千帆 发表于 2013-5-18 17:54

先占楼。。

你不是已经import了Md5这个包了么?

话说,jsp里imort不用分开写。。这样就行:

原来如此。。。就是import了但是tomcat就会报错 我不知道具体应该怎么放,或者说做成什么样的格式才能用import 在tomcat里边。。。 不知道怎么解决这个问题。

小野千帆

本帖最后由 小野千帆 于 2013-5-18 17:57 编辑

先占楼。。

你不是已经import了Md5这个包了么?

话说,jsp里imort不用分开写。。这样就行:

<%@ page language="java" import="java.util.*,Md5,java.sql.*,java.util.Date" pageEncoding="utf-8"%>

jimsshom
胖虎

jimsshom 发表于 2013-5-18 12:56

需要看下tomcat的配置的吧,server.xml里面写的路径是啥,放进去就行了

这个 怎么给你看tomcat的配置,因为环境是老师给的 我们只是用他的服务器,所以无法看,不能够直接放进去用吗? 或者说 相关的东西我应该搜索什么关键字? 我搜的都是 tomcat jsp 自定义包应用什么的 看了很多,还是不解

jimsshom

需要看下tomcat的配置的吧,server.xml里面写的路径是啥,放进去就行了

<<0>>