通过Servlet实现注册和登录
通过Servlet实现注册和登录
用Servlet实现注册和登录,主要原理就是通过request对象和response对象在页面实现数据交互 , 先做一个请求 然后服务器做一个响应,达到获取数据的目的,这需要我们熟练掌握三层架构。
注册页面
注册页面是我们最常见的页面之一,如果仔细分析就会发现,注册页面在三层架构中是一个插入的逻辑,我们把要注册的内容放到数据库,当我们登录的时候这个request对象会向向服务器索要数据,如果有这个数据,说明之前有注册过,如果没有则需要重新注册; 详细代码如图所示:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//处理编码问题
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
//设置响应的格式
response.setContentType("text/html");
//设置接受的对象
String userName = request.getParameter("userName");
String pwd = request.getParameter("pwd");
String name = request.getParameter("name");
String age = request.getParameter("age");
boolean istrue = false;
//加入T-SQL语句
Connection conn = DButil.conn();
String sql = "Insert into users(userName,pwd,name,age)values(?,?,?,?)";
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, userName);
ps.setString(2, pwd);
ps.setString(3, name);
ps.setString(4, age);
int rs = ps.executeUpdate();
if(rs>0){
istrue = true;
}else{
istrue = false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DButil.close(conn, null, ps);
//使用out对象把所得到的结果数据到页面上
PrintWriter out = response.getWriter();
if(istrue){
out.print("<h1 style = color:green>注册成功</h1>");
}else{
out.print("<h1 style = color:red>注册失败</h1>");
}
out.flush();
out.close();
登录页面
登录页面和注册页面基本是相似的,最大的区别在于注册是插入数据库信息的逻辑,而登录则是查询数据库的逻辑,当你登录的时候request对象要在数据库中寻找你登录的账号和密码,如果找到并且数据正确则登录成功,如果找不到或者信息不符合则出现找不到数据从而造成登陆失败; 代码如如下:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 处理编码问题
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// 设置响应的格式
response.setContentType("text/html");
// 设置接受的对象
String userName = request.getParameter("userName");
String pwd = request.getParameter("pwd");
boolean istrue = false;
// 加入T-SQL语句
Connection conn = DButil.conn();
String sql = "Select * from users Where userName = ? and pwd = ? ";
PreparedStatement ps = null;
ResultSet rs = null;
try {
ps = conn.prepareStatement(sql);
ps.setString(1, userName);
ps.setString(2, pwd);
rs = ps.executeQuery();
if (rs.next()) {
istrue = true;
} else {
istrue = false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DButil.close(conn, rs, ps);
PrintWriter out = response.getWriter();
if (istrue) {
out.print("<h1 style =color:green>登录成功!</h1>");
} else {
out.print("<h1 style=color:red>登录失败!</h1>");
}
out.flush();
out.close();
Out对象的主要作用就是把获取到的信息输出到页面方便人们观察,如果把代码写到jsp页面,则不需要此步骤,基本的注册和登录逻辑已经做好了,至于html页面需要自己补充哈
下一篇:
本地连接阿里云RDS云数据库(小白教程)
