1. 程式人生 > >通過繼承HttpServlet開發一個使用者登入介面

通過繼承HttpServlet開發一個使用者登入介面

首先先完成使用者登入介面.html部分程式碼

如下程式碼,這裡用到了一個新的網頁編輯指令碼語言,我們最主要了解的是它的“td input”這部分是提交表單的一個指令
<td class="controler"><input type="password" name="mypassword" ></td>

例如這段程式碼的意思便是顯示一個型別為password的表單,提交的型別(type)也就是密碼格式,也有text形式,這個具體的見W3Cschool,如果覺得麻煩可以用adobe公司的DW來完成前端的開發。

<h1>使用者註冊</
h1
>
<hr> <html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <form name="regForm" action="servlet01" method="post" > <table border="0" width="800" cellspacing="0" cellpadding="0"> <tr> <td class="lalel">
使用者名稱:</td> <td class="controler"><input type="text" name="username" /></td> </tr> <tr> <td class="label">密碼:</td> <td class="controler"><input type="password" name="mypassword" ></td> </
tr
>
<tr> <td class="label">確認密碼:</td> <td class="controler"><input type="password" name="confirmpass" ></td> </tr> <tr> <td class="label">電子郵箱:</td> <td class="controler"><input type="text" name="email" ></td> </tr> <tr> <td class="label">性別:</td> <td class="controler"><input type="radio" name="gender" checked="checked" value="Male"><input type="radio" name="gender" value="Female"></td> </tr> <tr> <td class="label">出生日期:</td> <td class="controler"> <input name="birthday" type="text" id="control_date" size="10" maxlength="10" onclick="new Calendar().show(this);" readonly="readonly" /> </td> </tr> <tr> <td class="label">愛好:</td> <td class="controler"> <input type="checkbox" name="favorite" value="nba"> NBA <input type="checkbox" name="favorite" value="music"> 音樂 <input type="checkbox" name="favorite" value="movie"> 電影 <input type="checkbox" name="favorite" value="internet"> 上網 </td> </tr> <tr> <td class="label">自我介紹:</td> <td class="controler"> <textarea name="introduce" rows="10" cols="40"></textarea> </td> </tr> <tr> <td class="label">接受協議:</td> <td class="controler"> <input type="checkbox" name="isAccept" value="true">是否接受條款 </td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" value="註冊"/> <input type="reset" value="取消"/> </td> </tr> </table> </form>
一定要注意action後填的是一個url,這個url必須指向你即將寫的servlet檔案,並且如果你在servlet中用的是post方法method後就加post

這裡是你要進行控制判斷登陸的servlet檔案

package demo1;

//這裡是要通過實現繼承httpservlet來開發動態網頁所需要匯入的包
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;


@WebServlet("/servlet01")
public class servlet01 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
  
    public servlet01() {
        super();
      
    }

	
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//這裡使用了doget的方法,doget方法,這個方法中又傳入了兩個物件一個是request,一個是response
		//這裡用到了介面,資料以方法引數的形式傳遞;
		
		 request.setCharacterEncoding("utf-8");
		//接收的文字漢化方案
		 response.setContentType("text/html;charset=gb2312");
		//傳送的文字漢化方案
		String[] favorite = request.getParameterValues("favorite");
		//複選框部分方法,用字元陣列來記錄喜愛
		String aaa= request.getParameter("username");
		//用字串方法來記錄使用者名稱,密碼這裡用了request中一個重要的方法
		//getParameter方法
		String bbb= request.getParameter("mypassword");
		String ccc= request.getParameter("gender");
		if("qinshiwei".equals(aaa)&&"123456".equals(bbb)) {
			//這裡用了response中一個getWriter方法
			response.getWriter().write("賬號是:"+aaa);
			response.getWriter().write("<br/>");
			response.getWriter().write("密碼是:"+bbb);
			response.getWriter().write("<br/>");
			response.getWriter().write("性別為:"+ccc);
			response.getWriter().write("<br/>");
			response.getWriter().write("愛好為:");
			for (int i=0; favorite!=null && i<favorite.length; i++){
	            response.getWriter().write(favorite[i]+"&nbsp");
	            }
			
		}
		else{
			response.getWriter().write("密碼錯誤或賬號錯誤".toString());
		}
		

		
	
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

這個檔案主要實現跳轉判斷控制,其中主要用了繼承httpservlet所傳進來的doget和dopost方法,這兩種方法都是進行傳值的方法,但是不同的是doget方法使用明文傳輸(也就是傳輸通過url,傳遞的表單裡的值也都在url中)這種方法很不安全,而dopost方法是用文字的形式進行傳輸,這兩種方法都傳入了兩個物件

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 

這段話中的request和response都是新例項化的物件,

String bbb= request.getParameter("mypassword");

request中的getParameter方法主要是從使用者端得到表單的資訊,並把這個資訊賦值給bbb

response.getWriter().write("密碼是:"+bbb);

response中的getWriter方法是將伺服器處理後的值傳遞給客戶端,這裡把bbb原封不動地傳遞回去

當然完成這些的前提是tomcat和service都部署好的情況下,出現404是因為url沒有寫對,可以開啟xml看看自己的邏輯連結有無問題