servletでのテンプレートの検証
検査は、アプリの「入り口がきれい」を保証する基本的な手段であり、「溝油、粉ミルク」は、ここで放行されるべきではない.
クライアント検証はプログラムが検証を開始する起点(詳細は私のブログを参照)であり、ここではサーバ側の検証方法について議論します.これはプログラムを行う最後の関門であり、この関門がつかめなければ、アプリケーションへの影響は致命的です.
仕事をするにはいつも「やり方」が必要で、基本的に品質の要求に合致することができます.サーブレットで検証する基本テンプレートをまとめます.
JSPのコードテンプレートは、次のとおりです.
不足点:符号化量が大きすぎて、効率と品質を高めることが難しくて、Struts 2の中で、コードに対して大量の改善をして、詳しくは私の後続の博文を参照してください.
本文は“余不漁”のブログから出て、転載して作者と連絡してください!
クライアント検証はプログラムが検証を開始する起点(詳細は私のブログを参照)であり、ここではサーバ側の検証方法について議論します.これはプログラムを行う最後の関門であり、この関門がつかめなければ、アプリケーションへの影響は致命的です.
仕事をするにはいつも「やり方」が必要で、基本的に品質の要求に合致することができます.サーブレットで検証する基本テンプレートをまとめます.
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
boolean passed=true;//
String page="suc.jsp";//
//
String uname=request.getParameter("uname");
String sa=request.getParameter("salary");
String email=request.getParameter("email");
String idcard=request.getParameter("idcard");
String sbirth=request.getParameter("birth");
//
float salary=-1;
Date birth=null;
try{
salary=Float.parseFloat(sa);
}
catch (Exception e) {
// , ,salary -1
}
try{
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd");
birth=sd.parse(sbirth);
}
catch (Exception e) {
// , ,birth null
}
// , , 。。。
//
if(uname.trim().length()<=3){
passed=false;
request.setAttribute("uname_error", " ");
}
if(salary<0){
passed=false;
request.setAttribute("salary_error", " ");
}
if(!email.matches(".+@.+\\..+")){
passed=false;
request.setAttribute("email_error", " ");
}
if(!idcard.matches("^\\d{4}[\\d|x|X]$")){
passed=false;
request.setAttribute("idcard_error", " ");
}
if(birth==null){
passed=false;
request.setAttribute("birth_error", " ");
}
if(passed){// ,
//
User u = new User();
u.setUname(uname);
//
//
//
}
else{
page="index.jsp";// ,
}
request.getRequestDispatcher(page).forward(request, response);
}
JSPのコードテンプレートは、次のとおりです.
<form action="regist" method="post">
:<input type="text" name="uname" value="${param.uname }"/><span>${uname_error}</span><br/>
:<input type="text" name="salary" value="${param.salary}"/><span>${salary_error}</span><br/>
:<input type="text" name="email" value="${param.email}"/><span>${email_error}</span><br/>
:<input type="text" name="idcard" value="${param.idcard}"/><span>${idcard_error}</span><br/>
:<input type="text" name="birth" value="${param.birth}"/><span>${birth_error}</span><br/>
<input type="submit"/>
</form>
不足点:符号化量が大きすぎて、効率と品質を高めることが難しくて、Struts 2の中で、コードに対して大量の改善をして、詳しくは私の後続の博文を参照してください.
本文は“余不漁”のブログから出て、転載して作者と連絡してください!