简单注册页面
package org.snn;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.snn.util.DBHelper;
public class RegServelt extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 可以直接调用下面的那个
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 1,设置两个会出现乱码的编码
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// 设置响应格式
response.setContentType("text/html");
// 2,接收请求中的参数
String name = request.getParameter("name");
String paw = request.getParameter("paw");
// 等下用来判断是否注册成功
boolean isTrue = false;
// 3,写注册相关的逻辑,jdbc代码
// 注册就相当于插入语句 insert into student(name,paw)values(?,?);
// 就调用DBHelper 工具了哦
Connection conn = DBHelper.getConn();
// 准备sql语句
String sql = "insert into student (name,paw) values(?,?)";
System.out.println("mmmm");
// 与数据库做交互
PreparedStatement ps = null;
try {
ps = conn.prepareStatement(sql);
// 设置 ?代表的内容
ps.setString(1, name);
ps.setString(2, paw);
// 用int接收数据
int count = ps.executeUpdate();
if (count > 0) {
// 注册成功
isTrue = true;
} else {
isTrue = false;
}
} catch (SQLException e) {
e.printStackTrace();
}
DBHelper.colse(conn, ps, null);
// 4 发送响应
PrintWriter out = response.getWriter();
if (isTrue == true) {
// 注册成功跳转到登录页面
response.sendRedirect("login.jsp");
// out.print("<h1 style='color:red'/>注册成功!</h1>");
} else {
// 注册失败的话就还回到注册页面
response.sendRedirect("index.jsp");
// out.print("<h1 style='color:green'/>注册失败!</h1>");
}
out.flush();
out.close();
}
}
简单登录页面
package org.snn;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.snn.util.DBHelper;
public class LoginServelt extends HttpServlet{
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//设置字符编码:
request.setCharacterEncoding("UTF-8");//地址栏
response.setCharacterEncoding("UTF-8");//浏览器的显示
//设置浏览器的响应格式
response.setContentType("text/html");
//接收请求中的参数
String name=request.getParameter("name");
String paw=request.getParameter("paw");
//设置boolean 类型的数据验证是否登录成功
boolean is=false;
//jdbc代码,调用DBHelper 中的方法
Connection conn=DBHelper.getConn();
//准备sql语句
String sql="select * from student where name=? and paw=?";
//和数据库中做交互
PreparedStatement ps=null;
ResultSet rs=null;
try {
ps=conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, paw);
//用ResultSet接收
rs=ps.executeQuery();
//判断
if(rs.next()){
is=true;
}else{
is=false;
}
} catch (SQLException e) {
e.printStackTrace();
}
//关闭
DBHelper.colse(conn, ps, rs);
//发送响应
PrintWriter out=response.getWriter();
if(is==true){
//跳转到查询到的数据库的内容 从 ListServlet 中调过来
response.sendRedirect("listServlet");
}else{
//登陆失败跳转到注册页面
response.sendRedirect("index.jsp");
//out.print("<h1 style='color:green'></h1>登陆失败");
}
out.flush();
out.close();
}
}
web.xml 文件
这里的名字要和index中表达 action=" " 中的一样
对应注册 index.jsp 页面的 form 表单注册格式
对应登录 login.jsp 页面的 form 表单注册格式
在浏览器把查询到的数据以StringBuffer 的形式输出
package org.snn;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.snn.util.DBHelper;
public class ListServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 设置字符编码:
request.setCharacterEncoding("UTF-8");// 地址栏
response.setCharacterEncoding("UTF-8");// 浏览器的显示
// 设置浏览器的响应格式
response.setContentType("text/html");
// 设置boolean 类型的数据验证是否登录成功
boolean is = false;
// jdbc代码,调用DBHelper 中的方法
Connection conn = DBHelper.getConn();
// 准备sql语句
String sql = "select * from student";
// 和数据库中做交互
PreparedStatement ps = null;
ResultSet rs = null;
//字符串
StringBuffer sbBuffer = new StringBuffer();
try {
ps = conn.prepareStatement(sql);
// 用ResultSet接收
rs = ps.executeQuery();
// 循环获得表中的数据 append() 是添加的意思
sbBuffer.append("<html><head><meta charset=\"utf-8\"><title></title><style type=\"text/css\">table,tr,td,th{border: 1px solid salmon;border-collapse: collapse;margin: 0 auto;padding: 10px;}</style></head><body><table><tr><td>ID</td><td>用户名</td><td>密码</td></tr>");
while (rs.next()) {
sbBuffer.append("<tr><td>"+rs.getString("id")+"</td><td>"+rs.getString("name")+"</td><td>"+ rs.getString("paw")+"</td></tr>");
}
sbBuffer.append("</table></body></html>");
} catch (SQLException e) {
e.printStackTrace();
}
// 关闭
DBHelper.colse(conn, ps, rs);
// 发送响应
PrintWriter out = response.getWriter();
out.print(sbBuffer.toString());
out.flush();
out.close();
}
}
对应的部分html的代码,我是在HBuilder 中先写好按照需要的格式添加
下面这个图是我自己整的一个登录注册结合的页面,可以根据自己是登陆还是注册进行点击并进行相应的注册和登录
以下就是我登陆和注册和整个数据查询的运行结果图
**1.把数据库中的结果以表格的形式输出,访问的时候要对应相应的web.xml 中的 name 名字 **
2,注册页面 点击了注册时可以跳转到登录页面的,具体代码里面都有详细解释
3,登录
登录和页面结合的运行结果 还是一样点击注册或者登录都可以跳转到相应的页面
一定要记得他们之间相对应的关系!!!!