项目描述
上传时间
浏览人数
1. 打开eclipse新建动态Web项目并导入相应jar包.
2. 在WebContent新建regist.jsp文件并编辑如下代码:
//java部分
<%
//声明字符串data包含所有大小写字母和数字
String data ="QWERTYUIOPASDFGHJKLZXCVBNM0123456789qwertyuiopasdfghjklxcvbnm";
int len = data.length();
//实例化对象ran
Random ran = new Random();
String res = "";
for(int i = 0 ; i < 4;i++){
//nextInt()方法获得随机数
int n = ran.nextInt(len);
//charAt()方法获得索引值位置的字母
char x =data.charAt(n);
res += x;
}
%>
// regist为servlet路径
<form action="regist">
//${tip}显示注册失败结果
${tip}
<p>这里是验证码</p>
//<%=res %>显示验证码
<p><%=res %></p>
// type="hidden 页面不显示但可以传值
<input type="hidden" value="<%=res %>" name="code" />
<p>请输入验证码</p>
<input type="text" name="usercode"/>
<p>请输入用户名</p>
<input type="text" name="username" />
<p>请输入密码</p>
<input type="password" name="password" />
<input type="submit" value="注册" />
3. 编辑servlet:在Java Resources>src下新建com.demo.servlet,
选中com.demo.servlet新建regist.java并在doGet中编辑如下代码:
//获取传值
String code= request.getParameter("code");
String usercode=request.getParameter("usercode");
String username = request.getParameter("username");
String password = request.getParameter("password");
Dao d = new Dao();
//判断验证码是否相等
if(usercode.equals(code)){
//向数据库添加数据
d.regist(username, password);
//添加属性
request.setAttribute("tip", "注册成功");
//成功跳会结果页面
request.getRequestDispatcher("Demo_result.jsp").forward(request, response);
}else{
//添加属性
request.setAttribute("tip", "注册失败");
//失败跳回注册页面
request.getRequestDispatcher("Demo_regist.jsp").forward(request, response);
}
4.编辑servlet:在Java Resources>src下新建com.demo.dao,
选中com.demo.dao新建Dao.java并在编辑如下代码:
//连接数据库
public Connection connect() {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/data","root","123456");
return c;
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
//注册方法
public void regist(String username,String password) {
String sql = "INSERT INTO data.data (name, password) VALUES ('"+username+"', '"+password+"');";
try {
PreparedStatement pre = connect().prepareStatement(sql);
pre.executeUpdate();
connect().close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
5.在WebContent新建result.jsp文件并编辑如下代码:
${tip}
运行结果如下:
输入正确验证码:
点击注册结果:
数据库新增数据:
输错验证码并运行:
数据库无新增: