在WebContent下建立indext.xml:
<a href="register.html">还不是会员?</a>
<form method="post" action="login.do">
名称:<input type="text" name="username"><br/>
密码:<input type="password" name="password"><br/>
<input type="submit" value="登入"><br/>
<a href="forgot.html">忘记密码?</a>
</form>
register.html:
<h1>会员注册</h1>
<form method="post" action="register.do">
邮件地址:<input type="text" name=email><br/>
名称:<input type="text" name="username" maxlenghth="16"><br/>
密码:<input type="text" name="password" maxlenghth="16"><br/>
确认密码:<input type="text" name="confirmedPasswd" maxlenghth="16"><br/>
<input type="submit" value="注册"><br/>
</form>
src下建立controller包,controller包下建立Login.java:
public class Login extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String username = request.getParameter("username");
String password = request.getParameter("password");
//把users从servletcontext中取出来
ServletContext context = this.getServletContext();
HashMap<String,String> users = (HashMap)context.getAttribute("data");
//进行判断users中是否存在匹配的username和password
//如果存在,绘制成功界面
if(users.get(username).equals(password)){
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'");
out.println("<html>");
out.println("<head>");
out.println("<meta content='text/html; charset=UTF-8' http-equiv='content-type'>");
out.println("<title>会员登入成功</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>会员"+ username + "你好</h1>");
out.println("<a href='index.html'>回首页登入</a>");
out.println("</body>");
out.println("</html>");
out.close();
}else{//如果不存在绘制失败界面
response.setContentType("textml;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'");
out.println("<html>");
out.println("<head>");
out.println("<meta content='text/html; charset=UTF-8' http-equiv='content-type'>");
out.println("<title>会员登入失败</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>对不起,您还不是会员</h1>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
Register.java:
public class Register extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
String email = request.getParameter("email");
String username = request.getParameter("username");
String password = request.getParameter("password");
String confirmedPasswd = request.getParameter("confirmedPasswd");
//数据存放在users中
HashMap<String,String> users = new HashMap<>();
users.put(username, password);
//把users存放在ServletContext中,为以后其他的Servlet共享
ServletContext context = this.getServletContext();
context.setAttribute("data", users);
//绘制注册成功界面
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html PUBLIC '-//W3C//DTD HTML 4.01 Translation//EN'>");
out.println("<html>");
out.println("<head>");
out.println("<meta content='text/html;charset=UTF-8' http-equiv='content-type'>");
out.println("<title>会员注册成功</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>会员"+request.getParameter("username")+"注册成功</h1>");
out.println("<a href='index.html'>回首页登陆</a>");
out.println("</body>");
out.println("</html>");
out.close();
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
web.xml下修改文件为:
<web-app version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j2ee">
<servlet>
<servlet-name>Chapter1 Servlet</servlet-name>
<servlet-class>controller.Register</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Chapter1 Servlet</servlet-name>
<url-pattern>/register.do</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Chapter1</servlet-name>
<servlet-class>controller.Login</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Chapter1</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>
</web-app>
登陆界面:
点击还不是会员跳转注册界面:
注册成功:
登录成功:
其中if(users.get(username).equals(password))报错提示空指针,建议重启eclipse后,重新运行整个程序,先注册后登录。