通過繼承HttpServlet開發一個使用者登入介面
阿新 • • 發佈:2018-12-09
首先先完成使用者登入介面.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]+" ");
}
}
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原封不動地傳遞回去