在一个网络项目中,我正在创建一个学生注册程序。
我有一个.jsp文件供学生注册以便添加/删除等。
我应该如何修改我的JavaScript代码以检查以确保仅UserName输入允许使用String?
这是我的.jsp文件的一部分:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>New User Registration</title>
</head>
<body>
<form method="get" action="RegServlet">
<h1>Register!</h1>
Fill out information below:<p>
Username:
<input type="text" name="userName" value =""><p>
<input type="submit" value="Finish!"><p>
<script type="text/javascript">
var var1 = "userName";
if(var1 == (""))
document.write("<bSystem doesn't like an empty string.....Try Again!!!</b>");
else if(var1 == ("notmatch"))
document.write("<b>Inappropriate input!!!.....Try Again!!!</b>");
还有一件事情:
单击“完成!”时,我始终收到HTTP状态404错误。它应该将我引导至RegServlet.java文件中指示的login.jsp文件,因为form method =“ get” action =“ RegServlet”应该为我执行此操作。但是似乎在告诉我找不到“ / Registrar / RegServlet”路径。我究竟做错了什么?
这是我的RegServlet代码的一部分:
public void doStuff(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InstantiationException, IllegalAccessException, SQLException {
//see if search parameter is present
String userName = request.getParameter("userName");
String passWord = request.getParameter("passWord");
String lastName = request.getParameter("lastName");
String firstName = request.getParameter("firstName");
String age = request.getParameter("age");
char sex = request.getParameter("sex").charAt(0);
String email = request.getParameter("email");
if(!userName.isEmpty()&&!passWord.isEmpty()&&!lastName.isEmpty()&&!firstName.isEmpty()&&!age.isEmpty()&& sex!='F' || sex!='M' &&!email.isEmpty()) {
try {
SaveToDB.createConnection();
toDB.insertNewUser(userName, passWord, lastName, firstName, age, sex, email);
RequestDispatcher view = request.getRequestDispatcher("login.jsp");
view.forward(request, response);
} catch(SQLException sqlEx) {
System.out.println("Error!");
}
} else {
RequestDispatcher view = request.getRequestDispatcher("index.jsp");
view.forward(request, response);
}
提前致谢!
最佳答案
一个警告:对于您的程序,所有客户端验证都是徒劳的:您永远无法信任它,您始终还必须进行服务器端验证。但是对于您的程序用户来说,客户端验证是一种便利:更快的反馈。
查看HTML5表单:您现在只能使用html进行验证:
<input type="text" name="userName" pattern="^[A-Za-z ]+$" >
看到
http://www.html5rocks.com/en/tutorials/forms/html5forms/#toc-validation
如果要使用javascript进行客户端验证,则必须了解
首先是“ onsubmit”事件。
http://www.smashingmagazine.com/2009/07/07/web-form-validation-best-practices-and-tutorials/很好地概述了所有技术。