我在jsp中调用sevlet
出现
HTTP Status 404 - /myTest/WebRoot/checkLogin--------------------------------------------------------------------------------type Status reportmessage /myTest/WebRoot/checkLogindescription The requested resource (/myTest/WebRoot/checkLogin) is not available.
我的jsp原码<%@page contentType="text/html; charset=GBK"%>
 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<title></title>
 <!-- javaScript 函数 validateLogin(),用来验证用户名和SysPassword是否为空 -->
 <script language="javaScript" type="">
   function validateLogin()
      {
       var SysID = document.frmLogin.SysID.value;
       var SysPassword = document.frmLogin.SysPassword.value;
        var schose = document.frmLogin.schose.value;
       if( SysID=="" )
       {
        alert("请输入用户名!");
        return false;
       }
       if( SysPassword=="" )
       {
        alert("请输入密码!");
        return false;
       }
      }
     </script>
</head>
<body bgcolor="#ffffff">
<center>
  <hr>  <font size="22">my test</font>
<p>
  <form method="post" name="frmLogin" action="checkLogin" onSubmit="javaScript:return validateLogin();">
        <table>
          <tr>
            <td align="right">登陆类别:</td>
              <td><select name="schose">
                <option value="用户">管理员</option>
                <option value="管理员">用户</option>
</select>
              </td>
          </tr>          <tr>
            <td align="right">&nbsp;&nbsp;&nbsp;用户名:
            </td>
            <td><input type="text" name="SysID">
            </td>
          </tr>
          <tr>
            <td align="right">&nbsp;&nbsp;&nbsp;&nbsp;密码:
            </td>
            <td><input type="password" name="SysPassword">
            </td>
          </tr>
          <tr>
            <td align="right">
            </td>
            <td align="left">
              <input type="submit"  name="submit" value="登录">
              &nbsp;&nbsp;&nbsp;&nbsp;<input type="reset"  name="submit2" value="取消">
            </td>
          </tr>
        </table>
  <a href="">注册</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="">忘记密码</a>
  <hr>
  当前系统日期:<%
  java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  java.util.Date currentTime = new java.util.Date();//得到当前系统时间
  String str_date1 = formatter.format(currentTime); //将日期时间格式化
  //String str_date2 = currentTime.toString(); //将Date 型日期时间转换成字符串形式
  %>
  <%=str_date1%>
  </form>
  </center>
  </body>
  </html>
我的servlet原码package com.login;import java.io.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import java.sql.*;
public class checkLogin extends HttpServlet { public checkLogin() {
super();
} public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
} public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
try {
String s=req.getParameter("SysID");
String p=req.getParameter("SysPassword");
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    Connection ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=test","sa","");
Statement sm=ct.createStatement();
ResultSet rs=sm.executeQuery("select * from SysUser_mes where SysID='"+s+"' And SysPassword='"+p+"'");
if (rs.next()) {
res.sendRedirect("wel.jsp");

} else { }
} catch (Exception e) {
// TODO: handle exception
} res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
out.println("<HTML>");
out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");
out.println("  <BODY>");
out.print("    This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println("  </BODY>");
out.println("</HTML>");
out.flush();
out.close();
}
public void doPost(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException { doGet(req, res);
}
public void init() throws ServletException {
// Put your code here
}}
我的sevlet配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <servlet>
    <description>This is the description of my J2EE component</description>
    <display-name>This is the display name of my J2EE component</display-name>
    <servlet-name>checkLogin</servlet-name>
    <servlet-class>com.login.checkLogin</servlet-class>
  </servlet>  <servlet-mapping>
    <servlet-name>checkLogin</servlet-name>
    <url-pattern>>/checkLogin</url-pattern>
  </servlet-mapping></web-app>
我的jsp路径F:\Tomcat 6.0\webapps\myTest\WebRoot\
我的servlet路径F:\Tomcat 6.0\webapps\myTest\WebRoot\WEB-INF\classes\com\login\
为什么会出现这样的问题````我郁闷啊

解决方案 »

  1.   

    你提供的错误信息 太少了吧
      一般是请求错误
    看XML文件
      

  2.   

     <form method="post" name="frmLogin" action="/checkLogin" onSubmit="javaScript:return validateLogin();"> 
      

  3.   

    /myTest/checkLogin 
    要这样才能访问得到
    action="checkLogin"改为:action="../checkLogin"
    最好用绝对路径
      

  4.   

    晕,你的项目构造有问题啊.
    Tomcat里应该没有WebRoot了的啊.你可以去下载一个myeclispe5.5来做JavaWeb开发.把WebRoot这个路径去了.重启Tomcat
    我的jsp路径F:\Tomcat 6.0\webapps\myTest\ 
    我的servlet路径F:\Tomcat 6.0\webapps\myTest\WEB-INF\classes\com\login\ 
      

  5.   

    <servlet-mapping>
        <servlet-name>checkLogin </servlet-name>
        <url-pattern>>/checkLogin </url-pattern>
      </servlet-mapping> 
    根据你的配置,你应该直接访问 /myTest/checkLogin
      

  6.   

    出现这样的问题肯定是你的servlet路径问题,action="/checkLogin",里面少了/
      

  7.   

      <form method="post" name="frmLogin" action="../checkLogin" onSubmit="javaScript:return validateLogin();"> 
    这样应该行