1. 程式人生 > >servlet實現登陸註冊

servlet實現登陸註冊

object form tor exce logs content () color att

拿到信息必須進行非空驗證
用servlet做註冊登陸時,在form表單的action中不用加後綴.java,jsp文件需要加

public boolean CheckParm(String...args){
        for(String s:args){
            if("".equals(s)||s==null){
                return false;
            }
        }
        
        return true;
        
    }

當不確定傳入的參數個數是可以用String...args,表示多參數傳入


有返回值類型的方法一定加return

在servlet裏面執行的代碼寫在doget方法中

        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");

防止輸出出現亂碼的代碼表示

<%@ 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>Insert title here</title> </head> <body> <form action="
TextServlet" method="post"> <input type="text" name="username" placeholder="請輸入用戶名"/><br> <input type="text" name="password" placeholder="請輸入密碼"/><br> <input type="text" name="password1" placeholder="請再次輸入密碼"/><br> <input type="text" name="realname" placeholder="請輸入真實名字"/><br> <input type="submit" value="提交"/> <a href="login.jsp"> 超級鏈接</a> </form> </body> </html>

註冊的servlet類

package com.hanqi.textservlet;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class TextServlet
 */
@WebServlet("/TextServlet")
public class TextServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TextServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        String password1 = request.getParameter("password1");
        String realname = request.getParameter("realname");
        
        response.getWriter().append("username:"+username+"password:"+password+"realname:"+realname);
        
        if(CheckParm(username,password,password1)){
            if(password.equals(password1)){
                Object obj=request.getServletContext().getAttribute(username);
                if(obj==null){
                    request.getServletContext().setAttribute(username, username);
                    request.getServletContext().setAttribute(password, password);
                    response.sendRedirect("message.jsp?code=1");
                }else{
                    response.sendRedirect("message.jsp?code=4");
                }
            }else{
                response.sendRedirect("message.jsp?code=3");
            }
        }else{
            response.sendRedirect("message.jsp?code=2");
        }
        
    }

    /**
     * @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);
    }
    public boolean CheckParm(String...args){
        for(String s:args){
            if("".equals(s)||s==null){
                return false;
            }
        }
        
        return true;
        
    }
    

}
<%@ 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>Insert title here</title>
</head>
<body>
        <form action="LoginServlet" method="post"> 
        <input type="text"  name="username" placeholder="請輸入用戶名"/><br>
        <input type="text"  name="password" placeholder="請輸入密碼"/><br>
        <input type="submit" value="登陸"/>
    </form>
    
</body>
</html>

登陸的servlet類

package com.hanqi.textservlet;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class LoginServlet
 */
@WebServlet("/LoginServlet")
public class LoginServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LoginServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=utf-8");
        
        
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        
        ServletContext application=request.getServletContext();
        Object obj=application.getAttribute(username);
        Object ob=application.getAttribute(password);
        if(obj!=null){
            String user=(String)obj;
            if(username.equals(user)){
                if(password.equals(ob)){
                    response.sendRedirect("index.jsp");
                }else{response.sendRedirect("message.jsp?code=7");}
            }else{
                response.sendRedirect("message.jsp?code=5");
                }
            }else{
                response.sendRedirect("message.jsp?code=6");
                }
        }
    /**
     * @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);
    }

}

未按要求輸入的提示頁面的實現

<%@ 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>Insert title here</title>
</head>
<body>
    <%
        String code=request.getParameter("code");
        if("1".equals(code)){
            out.print("<h1>註冊成功!</h1>");        
        }if("2".equals(code)){
            out.print("<h1>信息輸入不完整!</h1>");        
        }if("3".equals(code)){
            out.print("<h1>輸入的密碼不一致!</h1>");        
        }if("4".equals(code)){
            out.print("<h1>用戶已經存在!</h1>");        
        }if("5".equals(code)){
            out.print("<h1>用戶名錯誤!</h1>");        
        }if("6".equals(code)){
            out.print("<h1>用戶不存在!</h1>");        
        }if("7".equals(code)){
            out.print("<h1>密碼錯誤!</h1>");        
        }
    
    %>
</body>
</html>

servlet實現登陸註冊