用jsp提交登录时报错

whuroger 2008-05-14 04:02:02
当我提交登录请求时总是说

HTTP Status 500 -

--------------------------------------------------------------------------------

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Wrapper cannot find servlet class LoginServlet or a class it depends on
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Unknown Source)

root cause

java.lang.ClassNotFoundException: LoginServlet
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
java.lang.Thread.run(Unknown Source)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.13 logs.


我的Login.jsp文件:

<%@ page pageEncoding="gb2312" %>
<%@ page contentType="text/html; charset=gb2312" %>
<% request.setCharacterEncoding("gb2312"); %>
<%@ page language="java" %>

<form name="login" method="POST" action="./Servlet/LoginServlet">
<table align=center border=0 width=100% cellspacing=0 cellpadding=0 height=200>
<tr>
<td width=100% colspan=2 height=10 bgcolor=#3399ff>
<font color="#ffffff"><center>用户登录</center></font>
</td>
</tr>
<% if (request.getAttribute("error") != null){ %>
<tr>
<td width=100% align=center colspan=4 height=36>
<font color=red><b><%=request.getAttribute("error")%></b></font>
</td>
</tr>
<%
}
%>

<tr>
<td align=right height=32 width=20%>用户名称:</td>
<td><input type="hidden" name="returl" value="">
<input type="text" name="logname" value="">
</td>
</tr>
<tr>
<td align=right height=32>密码:</td>
<td><input type="password" name="logpwd"></td>
</tr>
<tr>
<td align=center colspan=2 height=32>
<input type="submit" value="登 录" onclick="Check()">
<input type="reset" value="重 置">
</td>
</tr>
</table>
</form>


LoginServlet:package Servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.*;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import JavaBean.User;
import JavaBean.DB_User;
import JavaBean.MD5_Encoding;

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

//构造函数
public LoginServlet() {
super();
}

//服务器端的验证、提交处理
protected void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException {

response.setContentType("text/html; charset=bg2312");


String CustomerID = request.getParameter("logname");
String enPwd = request.getParameter("logpwd");

DB_User dbuser = new DB_User();
User user=dbuser.get(CustomerID, enPwd);

if(user!=null){
//登录成功时,把strUserName设成 session变量 CustomerID
request.getSession(true).setAttribute("username",CustomerID);//保存登录信息
try{
request.getRequestDispatcher("index.jsp").forward(request,response);
}
catch (Throwable t){
getServletContext().log(t.getMessage());
}

}else{
request.setAttribute("error", "用户名与密码不匹配,请重新输入!");
try{
request.getRequestDispatcher("Login.jsp").forward(request,response);
}
catch(Throwable t) {
getServletContext().log(t.getMessage());
}
}
}
}
谁知道怎么回事,帮偶分析下,谢谢了
...全文
145 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
learning0066 2010-10-12
  • 打赏
  • 举报
回复
http://lwj9922.javaeye.com/blog/349616 我是按这个网址解决的问题
whuroger 2008-05-14
  • 打赏
  • 举报
回复
额,我按照你们说的都改了。现在的xml为:
<?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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>RegProcessServlet </servlet-name>
<servlet-class>Servlet.RegProcessServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegProcessServlet </servlet-name>
<url-pattern>/Servlet/RegProcsessServlet </url-pattern>
</servlet-mapping>


<servlet>
<servlet-name>LoginServlet </servlet-name>
<servlet-class>Servlet.LoginServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet </servlet-name>
<url-pattern>/Servlet/LoginServlet </url-pattern>
</servlet-mapping>
</web-app>

但为什么我run了还是
无法找到该网页
HTTP 400
最可能的原因是:
在地址中可能存在键入错误。
当您点击某个链接时,它可能已过期。

您可以尝试以下操作:
重新键入地址。


返回到上一页。

转到 并查找您想要的信息。

更多信息

此错误(HTTP 400 错误的请求)表示此程序可以连接到 Web 服务器,但是因为地址问题无法找到该网页。

xtzhoujie 2008-05-14
  • 打赏
  • 举报
回复
改: <servlet-class>LoginServlet </servlet-class>
<servlet-class>Servlet.LoginServlet </servlet-class>
改: <form name="login" method="POST" action="./Servlet/LoginServlet">
<form name="login" method="POST" action="Servlet/LoginServlet">
jiaping108 2008-05-14
  • 打赏
  • 举报
回复
晕,怎么多出来个<,加的地方还没变红......XML这样写,就是你<servlet-class>写错了

<<servlet>
<servlet-name>RegProcessServlet </servlet-name>
<servlet-class>Servlet.RegProcessServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegProcessServlet </servlet-name>
<url-pattern>/Servlet/RegProcsessServlet </url-pattern>
</servlet-mapping>


<servlet>
<servlet-name>LoginServlet </servlet-name>
<servlet-class>Servlet.LoginServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet </servlet-name>
<url-pattern>/Servlet/LoginServlet </url-pattern>
</servlet-mapping>


jiaping108 2008-05-14
  • 打赏
  • 举报
回复
这两个地方改一下

<form name="login" method="POST" action="/Servlet/LoginServlet"> //不行就把action里Servlet前面的/去掉


<<servlet>
<servlet-name>RegProcessServlet </servlet-name>
<servlet-class>Servlet.RegProcessServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegProcessServlet </servlet-name>
<url-pattern>/Servlet/RegProcsessServlet </url-pattern>
</servlet-mapping>


<servlet>
<servlet-name>LoginServlet </servlet-name>
<servlet-class>Servlet.LoginServlet </servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet </servlet-name>
<url-pattern>/Servlet/LoginServlet </url-pattern>
</servlet-mapping>

whuroger 2008-05-14
  • 打赏
  • 举报
回复
我按照ssh000的改了,怎么就会出现这样
无法找到该网页
HTTP 400
最可能的原因是:
在地址中可能存在键入错误。
当您点击某个链接时,它可能已过期。

您可以尝试以下操作:
重新键入地址。


返回到上一页。

转到 并查找您想要的信息。

更多信息

的错误?

burningice44 2008-05-14
  • 打赏
  • 举报
回复
form 提交的目标页面路径有问题
hoszone 2008-05-14
  • 打赏
  • 举报
回复
<form name="login" method="POST" action="/Servlet/LoginServlet ">
<url-pattern>/Servlet/LoginServlet </url-pattern>
jiatai416 2008-05-14
  • 打赏
  • 举报
回复
action不需要打点。直接写/Servlet/RegProcsessServlet就行了。
whuroger 2008-05-14
  • 打赏
  • 举报
回复
按您说的改了后怎么直接变成了
无法找到该网页
HTTP 400
最可能的原因是:
在地址中可能存在键入错误。
当您点击某个链接时,它可能已过期。

您可以尝试以下操作:
重新键入地址。


返回到上一页。

转到 并查找您想要的信息。

更多信息

此错误(HTTP 400 错误的请求)表示此程序可以连接到 Web 服务器,但是因为地址问题无法找到该网页。

whuroger 2008-05-14
  • 打赏
  • 举报
回复
web.xml如下
<?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">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>RegProcessServlet</servlet-name>
<servlet-class>RegProcessServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RegProcessServlet</servlet-name>
<url-pattern>/Servlet/RegProcsessServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/Servlet/LoginServlet</url-pattern>
</servlet-mapping>

</web-app>
Shine_Panda 2008-05-14
  • 打赏
  • 举报
回复
<form name="login" method="POST" action="../Servlet/LoginServlet">
少了个点.

81,092

社区成员

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

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