首先,用JSP写出最初的登录页面
<Script Language="javascript">
function confirm()
{
document.form_enter.action="ConfirmServlet";
document.form_enter.submit();
}
function modify()
{
document.form_enter.action="/jsp/enter/modify.jsp";
document.form_enter.submit();
}
function register()
{
document.form_enter.action="jsp/enter/register.jsp";
document.form_enter.submit();
}
</Script>
<body>
<div align="center">
<form name="form_enter" action="">
用户名:<input type="text" name="user"><br>
密 码:<input type="password" name="password"><br>
<INPUT Type="Button" Name="Confirm" value="确定 " onClick="confirm()">
<INPUT Type="Button" Name="Register" value="注册 " onClick="register()">
<INPUT Type="Button" Name="Modify" value="修改密码 " onClick="modify()">
</form>
</div>
</body>
有两个文本输入框,外加三个按钮,定义三个函数,分别实现三个按钮的功能,下面来分析第一个确定按钮所需要对应的Servlet的实现.在ConfirmServlet里,主要复写post方法,其余就不贴了.
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException{
Administrator ad = new Administrator();
MD5 md5 = new MD5();
ad.setUser(request.getParameter("user"));
ad.setPassword(md5.GetMD5Code(request.getParameter("password")));
Operation o =new Operation();
try {
if(!o.check(ad)){
request.getRequestDispatcher( "/jsp/fail/AdministratorFail.jsp").forward(request,response);
}else{
request.getRequestDispatcher( "/jsp/success/AdministratorSuccess.jsp").forward(request,response);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
这儿我说一下,md5.GetMD5Code()是我的一个类,对数据进行加密,可以在我的文章里面找到这个帖子,里面是MD5加密的实现方法.o.check()对用户名和密码进行验证.
下面是注册操作,通过register()跳转到注册界面
<Script Language="javascript">
function confirm()
{
document.form_enter.action="RegisterServlet";
document.form_enter.submit();
}
</Script>
<body>
<div align="center">
<form name="form_enter" action="">
用户名:<input type="text" name="user"><br>
密 码:<input type="password" name="password1"><br>
再次输入:<input type="password" name="password2"><br>
<INPUT Type="Button" Name="Confirm" value="确定 " onClick="confirm()">
</form>
</div>
</body>
调用confirm函数跳转到RegisterServlet进行处理,同样只复写post函数
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
Administrator ad = new Administrator();
MD5 md5 = new MD5();
ad.setUser(request.getParameter("user"));
Operation o =new Operation();
try {
if(o.checkUser(ad)){
request.getRequestDispatcher( "/jsp/fail/RepeatUserFail.jsp").forward(request,response);//已经存在此用户
}else{
if(!request.getParameter("password1").equals(request.getParameter("password2"))){
request.getRequestDispatcher( "/jsp/fail/RepeatPasswordFail.jsp").forward(request,response);
}else{
System.out.println("验证成功");
ad.setPassword(md5.GetMD5Code(request.getParameter("password1")));
o.CreaterNewAdministrator(ad);
request.getRequestDispatcher( "/jsp/success/RegisterSuccess.jsp").forward(request,response);
}
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
其中,checkUser()目的是检测数据库中是否已经有此用户,如果有,则返回提示的jsp界面,判断完用户名之后还要判断两次输入密码是否一致,若不一致,依然跳转.
CreaterNewAdministrator()用来在数据库中建立新账户.