分享

jsp+servlet实现注册登录,不用数据库

 weixiaofeng01 2017-03-01
1、创建工程
2、创建package com.demo1.java包
3、user类
package com.demo1.java;  
import java.util.HashMap;  
import java.util.Map;  
  
public class User {  
    private Map<String,String> userMap = new HashMap<String, String>();  
    private static User user = null;  
      
    private User(){  
        userMap.put("韩春", "123456##abcdefg@163.com");  
    }  
      
    public static User getInstance(){  
        if(user == null){  
            user = new User();  
        }  
        return user;  
    }  
      
    public Map<String, String>getUserMap(){  
        return userMap;  
    }  
}  

4、创建package com.demo1.servlet;包,以下均创建servlet:
package com.demo1.servlet;  
import java.io.IOException;  
import java.io.PrintWriter;  
import java.util.List;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
public class ErrorServlet extends HttpServlet {  
      
    private static final long serialVersionUID = 1l;                      
  
    public void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
          
        resp.setContentType("text/html");  
        resp.setCharacterEncoding("utf-8");  
        PrintWriter out = resp.getWriter();  
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");  
        out.println("<HTML>");  
        out.println("  <HEAD><TITLE>新会员增加失败</TITLE></HEAD>");  
        out.println("  <BODY>");  
        out.print("<h2>新会员增加失败</h2> ");  
        @SuppressWarnings("unchecked")  
        List<String> list = (List<String>)req.getAttribute("errors");             
        if(list != null){  
            for(String str:list){  
                out.println(str + "</br>");  
            }  
        }  
        out.println("<a href=\"" + req.getContextPath() + "/index.jsp\">返回注册页面</a> " );    //注意这边的解析!!!  
        out.println("  </BODY>");  
        out.println("</HTML>");  
        out.flush();  
        out.close();  
    }  
      
    public void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        doPost(req, resp);  
    }  
}  


package com.demo1.servlet;  
  
import java.io.IOException;  
import java.util.Map;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import com.demo1.java.User;  
  
public class LoginServlet extends HttpServlet {  
  
      
    public static final long serialVervletUID = 1L;  
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        this.doPost(request, response);  
    }  
      
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        String userName = request.getParameter("userName");  
        String password = request.getParameter("password");  
        if(checkLogin(userName, password)){  
            request.getRequestDispatcher("/member.html").forward(request, response);  
        }else{  
            response.sendRedirect("/Demo1/jsp/front/Login.jsp");  
        }  
    }  
      
    public boolean checkLogin(String userName, String password)throws NullPointerException{  
        User user = User.getInstance();  
        Map<String, String> map = user.getUserMap();  
        if(userName != null && !"".equals(userName) && password != null && !"".equals(password)){  
            String[] arr = map.get(userName).split("##");  
            if(arr[0].equals(password)){  
                return true;  
            }  
        }  
        return false;  
    }  
}  

package com.demo1.servlet;  
  
import java.io.IOException;  
import java.io.PrintWriter;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
public class MemberServlet extends HttpServlet {  
      
    public void doGet(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
        this.doPost(request, response);  
    }  
      
    public void doPost(HttpServletRequest request, HttpServletResponse response)  
            throws ServletException, IOException {  
  
        response.setContentType("text/html");  
        response.setCharacterEncoding("utf-8");  
        PrintWriter out = response.getWriter();  
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");  
        out.println("<HTML>");  
        out.println("  <HEAD><TITLE>Welcome</TITLE></HEAD>");  
        out.println("  <BODY>");  
        out.print("<h2 align=\"center\">" + request.getParameter("userName")+ " 您好,欢迎您哦" + "</h2>");  
          
        out.println("  </BODY>");  
        out.println("</HTML>");  
        out.flush();  
        out.close();  
    }  
  
}  

package com.demo1.servlet;  
  
import com.demo1.java.User;  
  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.Iterator;  
import java.util.List;  
import java.util.Map;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
@SuppressWarnings("serial")  
public class RegisterServlet extends HttpServlet {  
      
    public void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        String userName = req.getParameter("userName");  
        String password = req.getParameter("password");  
        String conPassword = req.getParameter("conPassword");  
        String email = req.getParameter("email");  
        List<String> errors = new ArrayList<String>();      //装载错误信息  
        if(!isValidUsername(userName)){  
            errors.add("用户名为空或者已经存在");  
        }  
        if(!isValidEmail(email)){  
            errors.add("无效的邮箱号码");  
        }  
        if(isValidPassword(password, conPassword)){  
            errors.add("密码为空或者两次输入不一样");  
        }  
        if(errors.isEmpty()){  
            User user = User.getInstance();  
            Map<String, String> map = user.getUserMap();  
            map.put(userName, password+"##"+email);  
            req.getRequestDispatcher("/success.html").forward(req, resp);  
        }else{  
            req.setAttribute("errors", errors);  
            req.getRequestDispatcher("/error.html").forward(req, resp);  
        }  
    }      
      
    public void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        doPost(req, resp);  
    }  
      
    public boolean isValidUsername(String username){  
          User user = User.getInstance();  
          Map<String, String> map = user.getUserMap();  
          if(username != null){      //暂时先这样改   这里是有问题的,不能很好地判断  
              return true;  
          }else{  
              return false;                           
          }  
    }  
      
    public boolean isValidPassword(String password, String conPassword){  
        return password == null || conPassword == null || password.length() < 6  
        || !password.equals(conPassword);  
    }  
      
    public boolean isValidEmail(String email){  
        boolean flag = false;  
        if(email == null || "".equals(email)){  
            flag = false;  
        }else{  
            flag = email.matches("^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$");  
        }  
        return flag;  
    }  

package com.demo1.servlet;  
import java.io.IOException;  
import java.io.PrintWriter;  
import java.util.Iterator;  
import java.util.List;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
@SuppressWarnings("serial")  
public class SuccessServlet extends HttpServlet {  
  
    @SuppressWarnings("unused")  
    private static final long serivalVersionUID = 1L;  
      
    public void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
          
        resp.setContentType("text/html");  
        resp.setCharacterEncoding("utf-8");  
        PrintWriter out = resp.getWriter();  
        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");  
        out.println("<HTML>");  
        out.println("  <HEAD><TITLE>新会员增加成功</TITLE></HEAD>");  
        out.println("  <BODY>");  
        out.print("<h2>新会员增加成功</h2> ");  
        out.println("<a href=\"" + req.getContextPath() + "/Login.jsp\">返回登陆页面</a> " );    
        out.println("  </BODY>");  
        out.println("</HTML>");  
        out.flush();  
        out.close();  
        out.flush();  
        out.close();  
    }   
      
    public void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        doPost(req, resp);  
    }  
}  

5、创建jsp文件
(1)index.jsp
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  
<%  
String path = request.getContextPath();  
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
%>  
  
<html>  
  <head>  
    <title>注册页面</title>  
          
    <meta name="keywords" content="注册网页,西安电子科技大学,韩春">  
    <meta name="description" content="a simple demo to Web APP">  
    <meta name="content-type" content="text/html; charset=UTF-8">  
      
  </head>  
    
  <body>  
      
    <h2 align=center>注册页面</h2>  
    <center>  
      
        <form action="<%=path %>/register.html" method="post">    
            <table border="1">  
                <tr>  
                    <td>登录名:</td>  
                    <td><input name="userName"></td>  
                </tr>  
                <tr>  
                    <td>密码:</td>  
                    <td><input name="password" type="password"></td>  
                </tr>  
                <tr>  
                    <td>重复密码:</td>  
                    <td><input name="conPassword" type="password"></td>  
                </tr>  
                <tr>  
                    <td>邮箱地址:</td>  
                    <td><input name="email"></td>  
                </tr>  
                <tr align="center">  
                    <td colspan="2"><input type="submit" value="提交注册"></td>  
                </tr>  
            </table>  
        </form>  
          
        您有账号?<a href="<%=path %>/jsp/front/Login.jsp"><front color="GREEN" >点击直接登录</front></a>  
    </center>   
  </body>  
</html>  

(2)Login.jsp
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  
<%  
String path = request.getContextPath();  
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
%>  
  
<html>  
  <head>  
    <title>登陆页面</title>  
    <meta http-equiv="pragma" content="no-cache">  
    <meta http-equiv="cache-control" content="no-cache">    
    <meta name="keywords" content="注册网页,西安电子科技大学,韩春">  
    <meta name="description" content="a simple demo to Web APP">  
    <meta name="content-type" content="text/html; charset=UTF-8">  
  </head>  
    
  <body>  
    <h2 align=center>欢迎您</h2>  
    <center>  
        <form action="<%=path %>/login.html" method="post">    
            <table border="1">  
                <tr>  
                    <td>用户名:</td>  
                    <td><input name="userName"></td>  
                </tr>  
                <tr>  
                    <td>密码:</td>  
                    <td><input name="password" type="password"></td>  
                </tr>  
                <tr align="center">  
                    <td colspan="2"><input type="submit" value="点击登陆"></td>  
                </tr>  
            </table>  
        </form>  
        还没注册?<a href="<%=path%>/index.jsp">点击注册吧</a>  
    </center>   
  </body>  
</html>  

6、在success中创建servlet得到web.xml项目,粘贴以下内容替换
<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns:xsi="http://www./2001/XMLSchema-instance" xmlns="http://xmlns./xml/ns/javaee" xsi:schemaLocation="http://xmlns./xml/ns/javaee http://xmlns./xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">  
  <display-name>Demo1</display-name>  
  <welcome-file-list>  
    <welcome-file>index.html</welcome-file>  
    <welcome-file>index.htm</welcome-file>  
    <welcome-file>index.jsp</welcome-file>  
    <welcome-file>default.html</welcome-file>  
    <welcome-file>default.htm</welcome-file>  
    <welcome-file>default.jsp</welcome-file>  
  </welcome-file-list>  
    
  <servlet>  
    <servlet-name>RegisterServlet</servlet-name>  
    <servlet-class>com.demo1.servlet.RegisterServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>RegisterServlet</servlet-name>  
    <url-pattern>/register.html</url-pattern>  
  </servlet-mapping>  
    
  <servlet>  
    <servlet-name>ErrorServlet</servlet-name>  
    <servlet-class>com.demo1.servlet.ErrorServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>ErrorServlet</servlet-name>  
    <url-pattern>/error.html</url-pattern>  
  </servlet-mapping>  
    
  <servlet>  
    <servlet-name>SuccessServlet</servlet-name>  
    <servlet-class>com.demo1.servlet.SuccessServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>SuccessServlet</servlet-name>  
    <url-pattern>/success.html</url-pattern>  
  </servlet-mapping>  
    
  <servlet>  
    <servlet-name>TestServlet</servlet-name>  
    <servlet-class>com.demo1.servlet.TestServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>TestServlet</servlet-name>  
    <url-pattern>/test.html</url-pattern>  
  </servlet-mapping>  
    
  <servlet>  
    <servlet-name>LoginServlet</servlet-name>  
    <servlet-class>com.demo1.servlet.LoginServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>LoginServlet</servlet-name>  
    <url-pattern>/login.html</url-pattern>  
  </servlet-mapping>  
  
 <servlet>  
    <servlet-name>MemberServlet</servlet-name>  
    <servlet-class>com.demo1.servlet.MemberServlet</servlet-class>  
  </servlet>  
  <servlet-mapping>  
    <servlet-name>MemberServlet</servlet-name>  
    <url-pattern>/member.html</url-pattern>  
  </servlet-mapping>  
  
</web-app>  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约