首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web开发 >

myeclipse做了个登陆界面,里面写了个servlet,运行的时候总是提示404异常

2012-12-17 
myeclipse做了个登陆界面,里面写了个servlet,运行的时候总是提示404错误!编写login.jsp的代码,如下:%@ pa

myeclipse做了个登陆界面,里面写了个servlet,运行的时候总是提示404错误!
编写login.jsp的代码,如下:
<%@ page contentType="text/html;charset=gb2312"%>
<script language="JavaScript">
   function isValidate(form)
   {
   // 得到用户输入的信息
   username = form.username.value;
   userpass = form.userpass.value;

   // 判断用户名长度
   if(!minLength(username,6))
   {
   alert("用户名长度小于6位!");
   form.username.focus();
   return false;
   }
   if(!maxLength(username,8))
   {
   alert("用户名长度大于8位!");
   form.username.focus();
   return false;
   }

   // 判断口令长度
       if(!minLength(userpass,6))
   {
   alert("口令长度小于6位!");
   form.userpass.focus();
   return false;
   }
   if(!maxLength(userpass,8))
   {
   alert("口令长度大于8位!");
   form.userpass.focus();
   return false;
   }


   return true;
   }
   // 验证是否满足最小长度
   function minLength(str,length)
   {
   if(str.length>=length)
   return true;
   else
   return false;
   }
   // 判断是否满足最大长度
   function maxLength(str,length)
   {
   if(str.length<=length)
   return true;
   else
   return false;
   }
</script>
<html>
   <head>
      <title>用户登陆</title>
   </head>
   <body>
      <h2>用户登录</h2>
      <form name="form1" action="${pageContext.request.contextPath}/login" method="post"   onsubmit="return isValidate(form1)">
      用户名:<input type="text" name="username"> <br>
      口令:<input type="password" name="userpass"><br>
      <input type="reset" value="重置">
      <input type="submit" value="提交"><br>
      </form>
   </body>
</html>
编写success.jsp的代码,如下:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
   <head>
      <title>登录成功</title>
   </head>
   <body>
      <h2>${sessionScope.userid}您好,欢迎登录网上书店!</h2>
   </body>
</html>
编写failure.jsp的代码,如下:
<%@ page contentType="text/html;charset=gb2312"%>
<html>
   <head>
      <title>登录失败</title>
   </head>
   <body>
      <h2>用户名或者口令不正确,请<a href="login.jsp">重新登录!</a></h2>


   </body>
</html>
编写LoginBean的validate方法,如下:
public boolean validate(String username,String userpass){
if(username==null||userpass==null)
return false;
return username.equals(userpass);
}
在LoginBean的main方法中编写代码测试。
public static void main(String[] args){
LoginBean test = new LoginBean();
System.out.println("正确的用户名口令,返回"+test.validate("zhangsan","zhangsan"));
System.out.println("错误的用户名口令,返回"+test.validate("zhangsan","123456"));
}
编写LoginServlet的代码,如下:
//添加导入包
import beans.*;
import javax.servlet.http.HttpSession;
import javax.servlet.RequestDispatcher;

//在doGet方法中编写代码如下:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
      // 获取用户输入的用户ID和口令
      String userid = request.getParameter("username");
      String userpass = request.getParameter("userpass");
      // 创建模型对象
      LoginBean loginBean = new LoginBean();
      // 调用业务方法进行验证
      boolean b = loginBean.validate(userid,userpass);
      // 要转向的文件
      String forward;
      // 如果登陆成功,把用户名写入session中,并且转向success.jsp,
//否则转向failure.jsp
      if(b){         
         // 获取session
         HttpSession session = (HttpSession)request.getSession(true);
         // 把用户名保存到session中
         session.setAttribute("userid",userid);
          // 目标转向文件是success.jsp
         forward = "success.jsp";
      }else{
         // 目标转向文件是failure.jsp
         forward = "failure.jsp";
      }            
      // 获取Dispatcher对象
      RequestDispatcher dispatcher = request.getRequestDispatcher(forward);
      // 完成跳转
      dispatcher.forward(request,response);
}
//在doPost方法中调用doGet方法,使得无论是get请求还是post请求,
//都访问一致的代码
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
doGet(request,response);
}
开始运行login.jsp,success.jsp,failure.jsp,都能正常运行,但是加上bean.java和servlet.java后再在网页上运行login.jsp,输入username和password点击登陆就会提示404错误,tomcat安装正确的,能使用。不知道是什么其他原因,求解释!
[解决办法]
action="${pageContext.request.contextPath}/login" ,这个地方错了。而且你的web.xml文件呢?

热点排行