java 全角判定ができなくて困っています。
今年javaを習いだした初心者です。
現在java servletでユーザの登録画面の作成をしており、
ユーザ名を入力した際に、半角英数字での入力ならばtrue、全角文字での入力であればfalseでエラーを表示したいのですがうまくいきません。
どなたかご教授いただけませんでしょうか?
ソースは下記のとおりとなります。
よろしくお願いいたします。
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletUsersRegistrationScreen extends HttpServlet{
String url = "xxxx”
String user = "xx";
String password = "xx";
PrintWriter out;
Statement statement;
HttpSession session;
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {
Connection conn = null;
try{
// DBに接続
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,user,password);
}catch( Exception e ) {
// エラー画面
response.sendRedirect("error.html");
return;
}
request.setCharacterEncoding("Windows-31J");
response.setContentType("text/html; charset=Windows-31J");
try{
// インスタンス変数の設定
statement = conn.createStatement();
out = response.getWriter();
session = request.getSession();
//HTMLの出力
out.println("<html>");
out.println("<head>");
out.println("<title>書籍検索システム</title>");
out.println("</head>");
out.println("<body>");
out.println("<left>");
out.println("<p><h1>書籍検索システムの新規登録</h1></p>");
out.println("<p>書籍検索システムのサービス(書籍検索・書籍登録)をご利用いただけます。</p>");
out.println("<p>入力項目はすべて必須です。</p>");
out.println("<fieldset style=\"width:400;height:270;\">");
out.println("<legend>入力する項目</legend>");
//既にユーザー名が登録されている
String message = (String)session.getAttribute("ERR_FAILURE");
if(message != null) {
out.println("<p><Font Color=\"#ff0000\">"+message+"</Font></p>");
session.setAttribute("ERR_FAILURE", null);
}
//ユーザー名が入力されていない
String message1 = (String)session.getAttribute("ERR_USERNAME");
if(message1 != null){
out.println("<p><Font Color=\"#ff0000\">"+message1+"</Font></p>");
session.setAttribute("ERR_USERNAME", null);
}
//パスワードが入力されていない
String message2 = (String)session.getAttribute("ERR_PASSWORD");
if(message2 != null){
out.println("<p><Font Color=\"#ff0000\">"+message2+"</Font></p>");
session.setAttribute("ERR_PASSWORD", null);
}
//(再入力)パスワードが入力されていない
String message3 = (String)session.getAttribute("ERR_CONFPASSWORD");
if(message3 != null){
out.println("<p><Font Color=\"#ff0000\">"+message3+"</Font></p>");
}}
//パスワードと(再入力)パスワードが一致しない
String message4 = (String)session.getAttribute("ERR_MISSMACH");
if(message4 != null){
out.println("<p><Font Color=\"#ff0000\">"+message4+"</font></p>");
session.setAttribute("ERR_MISSMACH",null);
}
//ユーザー名入力数制限の20文字をオーバー
String message5 = (String)session.getAttribute("ERR_20OVER");
if(message5 != null){
out.println("<p><Font Color=\"#ff0000\">"+message5+"</font></p>");
session.setAttribute("ERR_20OVER",null);
}
//パスワードが6文字未満8文字以上
String message6 = (String)session.getAttribute("ERR_6UNDER8OVER");
if(message6 != null){
out.println("<p><Font Color=\"#ff0000\">"+message6+"</font></p>");
session.setAttribute("ERR_6UNDER8OVER",null);
}
//半角英数判定
String message7 = (String)session.getAttribute("ERR_MISSSPELL");
if(message != null){
out.println("<p><Font Color=\"#ff0000\">"+message7+"</font></p>");
session.setAttribute("ERR_MISSSPELL",null);
}
out.println("<form method=\"POST\" action=\"Servl
お礼
ありがとうございます。 結果は両方ともnullでした。 ただしsessionを入れた直後(遷移前)は正常に値は取得できています。 session.setAttribute("dataPack", parm.toString()); out.print((String)session.getAttribute("dataPack")); session.setAttribute("paramPack", param); out.print(String.valueOf((List)session.getAttribute("paramPack").size())); そうなりますとSessionで上手く値を渡せていない、ということでしょうか。