###背景
java(jsp/サーブレット)を使って、簡易掲示板を作っています。
ところが、この掲示板は入力チェックを行っていないため、
チェック機能が必要です。 どのようにやったら良いかわかりません。
アドバイスを頂けないでしょうか?
###実現したいこと
・入力フォーム欄の入力チェック(空白・最大文字数など)
・入力チェックで、引っかかったものは、エラーメッセージ表示
・エラーメッセージがあるとき、投稿処理を行わない。
###ソースコード(jsp)
<%@ page contentType="text/html; charset=Shift_JIS" %>
<jsp:useBean id='bbsdata' scope='request' class='BBSDataBeans' type="BBSDataBeans" />
<%!
int i, j;
%>
<%
for(i = 0; i < bbsdata.getNumOfItems(); i ++) {
%>
<FONT SIZE=+2 COLOR=GREEN><B><U><%= bbsdata.getSubject(i) %></U></B></FONT><BR>
<B>名前:</B><%= bbsdata.getName(i) %>
<B>メール:</B><A HREF="mailto:<%= bbsdata.getEmail(i) %>"><%= bbsdata.getEmail(i) %></A>
<input type=checkbox name="delIndex" value="<%= bbsdata.getIndex(i) + i %>">削除
<%
if (bbsdata.getNumOfItems() != bbsdata.maxItemsPerPage) {
%><CENTER>最後のページです</CENTER><%
}
else {
%><CENTER><FORM action=bbsserv method=POST>
<INPUT type=hidden value=<%= bbsdata.getLastIndex() + 1 %> name="index">
<INPUT type=submit value="次のページ">
</FORM></CENTER><BR><%
}
%>
###ソースコード(サーブレット)
import java.io.;
import javax.servlet.;
import javax.servlet.http.*;
public class BBSServlet extends HttpServlet {
///////////////////// メンバ変数 ///////////////////
ServletContext sc;
BBSManagerBeans bbsManager;
///////////////////// 初期化 ///////////////////
public void init(ServletConfig config)
throws ServletException
{
super.init(config);
sc = getServletContext();
String dataPath = config.getInitParameter("datapath"); if (dataPath == null) { dataPath = ""; } bbsManager = (BBSManagerBeans)sc.getAttribute("bbsmanager"); if (bbsManager == null) { bbsManager = new BBSManagerBeans(dataPath); sc.setAttribute("bbsmanager",bbsManager); }
}
///////////////////// "POST"メソッド ///////////////////
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
doGet(request, response);
}
///////////////////// "GET"メソッド ///////////////////
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
BBSDataBeans bbsData = new BBSDataBeans();
String data = request.getParameter("function"); if (data == null) { doBBSRead(request, response, bbsData); } else if (data.compareTo("WRITE") == 0) { doBBSWrite(request, response, bbsData); } else if (data.compareTo("DELETE") == 0) { doBBSDelete(request, response, bbsData); } request.setAttribute("bbsdata",bbsData); sc.getRequestDispatcher("/bbs.jsp").forward(request, response);
}
///////////////////// メッセージの削除 ///////////////////
public void doBBSDelete(HttpServletRequest request, HttpServletResponse response, BBSDataBeans bbsData)
throws IOException, ServletException
{
String delindex = request.getParameter("delIndex");
if (delindex == null) {
bbsManager.ReadArticles(0, bbsData);
return;
}
int index = Integer.parseInt(delindex);
String password = request.getParameter("pwd"); if (password == null) { bbsManager.ReadArticles(0, bbsData); return; } bbsManager.DeleteItem(index, password); bbsManager.ReadArticles(0, bbsData);
}
///////////////////// メッセージの投稿 ///////////////////
public void doBBSWrite(HttpServletRequest request, HttpServletResponse response, BBSDataBeans bbsData)
throws IOException, ServletException
{
BBSItem item = new BBSItem();
item.name = KanjiConv.ConvJStr(request.getParameter("name")); if (item.name == null) item.name = ""; item.email = KanjiConv.ConvJStr(request.getParameter("email")); if (item.email == null) item.email = ""; item.subject = KanjiConv.ConvJStr(request.getParameter("subject")); if (item.subject == null) item.subject = ""; item.content = KanjiConv.ConvJStr(request.getParameter("content")); if (item.content == null) item.content = ""; item.deleteKey = KanjiConv.ConvJStr(request.getParameter("pass")); if (item.deleteKey == null) item.deleteKey = ""; bbsManager.AddItem(item); bbsManager.ReadArticles(0, bbsData);
}
///////////////////// メッセージの読み出す ///////////////////
public void doBBSRead(HttpServletRequest request, HttpServletResponse response, BBSDataBeans bbsData)
throws IOException, ServletException
{
int index, lastIndex;
String strIndex = request.getParameter("index");
if (strIndex != null) {
index = Integer.parseInt(strIndex);
}
else {
index = 0;
}
bbsManager.ReadArticles(index, bbsData);
}
public void destroy()
{
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。