servlet验证用户登陆信息

l_dongdong 2009-03-24 11:17:55
我在用做注册模块,前台已经用js来验证过了,然后在代码中还要用servlet来再次验证用户的输入是否正确。比如输入的用户名过长(超过20或者小于3),等类似的信息的判断,判断输入是否合法
但是具体实现我不知道怎么去做,谁知道可以帮我写下代码吗?
感激!!!!!
...全文
657 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcw574836798 2012-07-04
  • 打赏
  • 举报
回复
前台一般的验证应该都可以做了吧 ,我现在有个验证用你户名是否唯一搞不清楚怎么做,想用AJAX和SERVLET
l_dongdong 2009-03-30
  • 打赏
  • 举报
回复
谢谢:火龙果 回答的那么详细。
谢谢大家,我新注册的没分,所以就没给分,抱歉!
lhlberly 2009-03-27
  • 打赏
  • 举报
回复
认同3楼的
deepbreathing 2009-03-26
  • 打赏
  • 举报
回复
一个客户端验证,一个服务器端验证,没有什么冲突,该怎么做就怎么做啊
robyjeffding 2009-03-25
  • 打赏
  • 举报
回复
前台就可以直接判断输入的用户名过长(超过20或者小于3)等信息,至于后台servlet就直接应该从数据库中提取数据进行比较,判断是否输入正确
  • 打赏
  • 举报
回复
客户端的 JavaScript 可以被禁用掉的,为了数据的安全性考虑必须在客户端和服务端同时进行验证。

输入页面:

<%@ page contentType="text/html; charset=utf-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<style type="text/css">
body {
font-size: 10pt;
}
.msg {
color: red;
}
</style>
<script type="text/javascript">
window.onload = function() {
var name = document.getElementById('name');
name.focus();
name.select();
}
</script>
<body>
<form name="hello" action="HelloServlet" method="post">
Input: <input type="text" name="name" value="${name}" id="name"/> <span class="msg">${nameMsg}</span><br/>
<input type="submit" value="确定" />
</form>
</body>
</html>


后台处理:
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HelloServlet extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {

private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String name = request.getParameter("name");
if(!checkName(name, request, response)) {
getServletContext().getRequestDispatcher("/test.jsp").forward(request, response);
return;
}

request.setAttribute("name", name);
getServletContext().getRequestDispatcher("/test2.jsp").forward(request, response);
}

private boolean checkName(String name, HttpServletRequest request, HttpServletResponse response) {
if(name == null || name.trim().length() == 0) {
request.setAttribute("nameMsg", "请输入");
return false;
}
if(!name.matches("[a-zA-Z][a-zA-Z0-9]*")) {
request.setAttribute("nameMsg", "输入格式错误,必须以字母开头的字母或数字");
request.setAttribute("name", name);
return false;
}
return true;
}
}


成功后的页面:
<%@ page contentType="text/html; charset=utf-8" %>
<html>
<body>
你所输入的是:${name}
</body>
</html>
heavilyarmed 2009-03-25
  • 打赏
  • 举报
回复
lz很勤快
l_dongdong 2009-03-25
  • 打赏
  • 举报
回复
String user_scompany = request.getParameter("user_scompany");
String user_email = request.getParameter("user_email");
String user_pwd = request.getParameter("user_pwd");
String order_info_address = request.getParameter("order_info_address");
String order_info_per = request.getParameter("order_info_per");
String order_info_company = request.getParameter("order_info_company");
String order_info_tel = request.getParameter("order_info_tel");
String order_info_mtel = request.getParameter("order_info_mtel");

如上,具体的字段我已经取出来了 ,我想知道接下来怎么验证?
谢谢大家!
l_dongdong 2009-03-25
  • 打赏
  • 举报
回复
我不是懒啊,我确实不清楚里面应该怎么写。
我需要验证用户名长度要在3和20之间
密码要大于6位
还有验证码的检测都要怎么写呢
我的JS是这样写的
function checkFunction(type){
var t_type = typeof(type)!='undefined'?type:'all';

if(t_type=='all' || t_type=='user_scompany')
{
var nickname=document.form1.user_scompany.value;
if(nickname.length<=0){
alert("用户名不能为空");
document.form1.user_scompany.focus();
return false;
}
if(nickname.length<3||nickname.length>20){
alert("用户名要求在3-20个字符之间");
/**document.form1.user_scompany.focus();**/
return false;
}
if(nickname.indexOf(" ")!=-1){
alert("用户名不能出现空格");
/**document.form1.user_scompany.focus();**/
return false;
}
}

if(t_type=='all' || t_type=='user_email')
{
/**************Email********************/
var email=document.form1.user_email.value;
if(email.length<=0){
alert("Email不能为空");
return false;
}
if(email.indexOf(" ")!=-1){
alert("Email不能有空格");
return false;
}
var t1=email.charAt(0)==".";
var t2=email.charAt(0)=="@";
var t3=email.charAt(email.length-1)==".";
var t4=email.charAt(email.length-1)=="@";
var t5=email.indexOf(".")==email.lastIndexOf(".");
var t6=email.indexOf("@")==email.lastIndexOf("@");
var t7=email.indexOf(".")==-1;
var t8=email.indexOf("@")==-1;
if(t1||t2||t3||t4||!t5||!t6||t7||t8){
alert("Email格式不正确");
return false;
}
}
var password=document.form1.user_pwd.value;
if(t_type=='all' || t_type=='user_pwd')
{

if(password.length<=0){
alert("密码不能为空");
/**document.form1.user_pwd.focus();**/
return false;
}
if(password.length<6&&password.length>0){
alert("密码长度不能小于6位");
/**document.form1.user_pwd.focus();**/
return false;
}
if(password.indexOf(" ")!=-1){
alert("密码不能有空格");
/**document.form1.user_pwd.focus();**/
return false;
}
}

if(t_type=='all' || t_type=='user_pwd1')
{
var password1=document.form1.user_pwd1.value;
if(password1.length<=0){
alert("确认密码不能为空");
/**document.form1.user_pwd1.focus();**/
return false;
}
if(password1.length<6&&password1.length>0){
alert("确认密码长度不能小于6位");
/**document.form1.user_pwd1.focus();**/
return false;
}
if(password1.indexOf(" ")!=-1){
alert("确认密码不能有空格");
/**document.form1.user_pwd1.focus();**/
return false;
}
if(password1!= password){
alert("两次输入密码不一致");
/**document.form1.user_pwd1.focus();**/
return false;
}
}

if(t_type=='all' || t_type=='number')
{
var number=document.form1.number.value;
if(number.length<=0){
alert("验证码不能为空");
return false;
}
if(number.length!=4){
alert("验证码只能是四位");
return false;
}
if(number.indexOf(" ")!=-1){
alert("验证码不能有空格");
return false;
}
}

}
但是后台不知道怎么写了
niuniu20008 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 l_dongdong 的回复:]
String user_scompany = request.getParameter("user_scompany");
String user_email = request.getParameter("user_email");
String user_pwd = request.getParameter("user_pwd");
String order_info_address = request.getParameter("order_info_address");
String order_info_per = request.getParameter("order_info_per");
String order_info_company = reques…
[/Quote]
你是懒吧,火果龙都给出例子了,剩下的就是你多用几个if else,多封装几个方法了。你会正则吗?进行格式验证最好用正则,不然代码量可是有的你写的了。^_^ 自己动手吧。
mlyaihyl00 2009-03-24
  • 打赏
  • 举报
回复
lz再补充一句啊!我说的js是jsvalidation,你可以去下载一个,很好用的!
mlyaihyl00 2009-03-24
  • 打赏
  • 举报
回复
lz我觉得前台用了js验证框架就不用在后台在进行这方面的验证了吧!你在.xml文件中可以进行配置,来实现你所说的功能,如果不符合的话,是不能够提交的!
可以再后台做一下安全性的代码,比如防止sql注入之类的,在后台倒是可以判断一下,传过来的用户名和密码是否为空。个人意见!

81,110

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧