编码实现基本的用户登录与注册功能
1.登录页面login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>登录页面</title> </head> <body> <h1 align="center">用户登录</h1> <form action="doLogin.jsp" method="post"> <table align="center"> <tr> <td>用户名:</td> <td><input name="userName" type="text"></td> </tr> <tr> <td>密码:</td> <td><input name="password" type="password"></td> </tr> <tr> <td align="center"> <input type="submit" name="submit" value="登录"> <input type="reset" name="reset" value="重置"> <a href="register.jsp">立即注册</a> </td> </tr> </table> </form> <% //当用户名不是admin,且密码不是123456时,跳转回登录界面,同时显示失败原因 String message=(String)request.getAttribute("message"); if(message!=null){ out.print(message); } %> </body> </html>
2.登录结果处理页面doLogin.jsp
<title>登录处理页面</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");
String userName = request.getParameter("userName");
String password = request.getParameter("password");
if(userName.equals("admin") && password.equals("123456")){
request.getRequestDispatcher("loginSuccess.jsp").forward(request, response);
}
else{
response.sendRedirect("login.jsp");
}
%>
</body>
</html>
3.登陆成功界面loginSuccess.jsp
<title>登陆成功页面</title>
</head>
<body>
<%
String userName = request.getParameter("userName");
%>
<h1>欢迎<%=userName %>登录!</h1>
</body>
</html>
4.注册界面register.jsp
<title>注册页面</title>
</head>
<body>
<h1>用户注册</h1>
<form action="doRegister.jsp" method="post">
用户名:<input name="userName" type="text"/><br/>
用户密码:<input name="password" type="password"/><br/>
再次输入密码:<input name="rpassword" type="password"/><br/>
email:<input name="email" type="email"><br/>
爱好:<input type="checkbox" name="hobbit" value="篮球"/>篮球
<input type="checkbox" name="hobbit" value="足球"/>足球
<input type="checkbox" name="hobbit" value="羽毛球"/>羽毛球<br/>
<input type="submit" name="submit" value="注册">
<input type="reset" name="reset" value="重置">
</form>
<%
//当两次密码输入不一致时,注册失败,跳转回注册界面,并显示失败原因.
String message=(String)request.getAttribute("message");
if(message!=null){
out.print(message);
}
%>
</body>
</html>
5.注册结果处理界面doRegister.jsp
<title>注册结果处理页面</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8"); //设置请求的格式为utf-8
//response.setCharacterEncoding("utf-8"); 设置响应的格式为utf-8,有contentType则此句可不写
String userName = request.getParameter("userName");
//userName = new String(userName.getBytes("ISO-8859-1"),"utf-8"); 当表单的提交方法为get时,为了防止乱码,可以这么写,但很少用get
//或者直接在tomcat配置文件server.xml中修改<Connector>节点的URIEncoding属性为UTF-8
String password = request.getParameter("password");
String rpassword = request.getParameter("rpassword");
String email = request.getParameter("email");
String[] hobbits = request.getParameterValues("hobbit");
if(!(password.equals(rpassword))){
request.setAttribute("message","两次密码输入不一致,注册失败!");
request.getRequestDispatcher("register.jsp").forward(request, response);
}else{
response.sendRedirect("login.jsp"); //重定向,register与doregister用一个请求,doregister与用另一个请求,不保留数据
//request.getRequestDispatcher("login.jsp").forward(request, response); //转发,register,doregister,login共用一个请求,数据也共享
}
%>
</body>
</html>

浙公网安备 33010602011771号