新手求助:为什么会提示405?

RuHua27 2015-03-22 01:26:59
本人新手,在网上找了个servlet+jsp的登录系统,http://localhost:8080/testSevlet/login.jsp 能进去,可是输入用户名密码之后点login却提示 HTTP Status 405 - HTTP method POST is not supported by this URL,
这是login.jsp 代码 找的
<%@ page pageEncoding="UTF-8"%>

<%@ page contentType="text/html; charset=gb2312"%>

<%
request.setCharacterEncoding("gb2312");
%>

<%@ page language="java"%>

<html>

<head>
<title>Login</title>
</head>

<body>

<form method="POST" action="./LoginServlet">



<table>

<tr>

<td width="890" align="left" colspan="2"><b><font size="5">系统登录</font></b>

<hr></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 width="75" align="center">

<p align="right">ID:</p>

</td>

<td width="809" align="center">

<p align="left">

<input type="text" name="logname" size="20">
</td>

</tr>

<tr>

<td width="75" align="center">

<p align="right">password:</p>

</td>

<td width="809" align="center">

<p align="left">

<input type="password" name="logpwd" size="20"> <input
type="submit" value="Login" name="loginButton">
</td>

</tr>

</table>

</form>

</body>

</html>





accesspage.jsp

<%@page contentType="text/html" pageEncoding="UTF-8"%>

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>登录成功</title>

</head>

<body>

<h1>
Hello

<%
if (request.getAttribute("username") != null) {
%>

<font color=red> <b> <%=request.getAttribute("username")%>

</b>

</font>

<%
}
%>

!
</h1>

</body>

</html>




web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>testSevlet</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet> <description></description> <display-name>LoginServlet</display-name>
<servlet-name>LoginServlet</servlet-name> <servlet-class>Servlet.LoginServlet</servlet-class>
</servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
<!--<servlet>

<servlet-name>LogServlet</servlet-name>

<servlet-class>Servlet.LoginServlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>LogServlet</servlet-name>

<url-pattern>/LoginServlet</url-pattern>

</servlet-mapping>-->
</web-app>



DB_Conn.java

package JavaBean;

import java.io.PrintWriter;

import java.sql.*;

public class DB_Conn {

private String driverName = "com.mysql.jdbc.Driver"; // 驱动程序名

private String userName = "root"; // 数据库用户名

private String userPwd = "123456"; // 密码

private String url = "jdbc:mysql://localhost:3306/book"; // 连接字符串

private Connection conn = null; // 数据库连接对象

public Statement sm = null; // 数据库语句对象

private PrintWriter out = null;

// 建立数据库连接

public void ConnectDB() {

try {

Class.forName(driverName).newInstance();

conn = DriverManager.getConnection(url, userName, userPwd); // 获得数据库连接

sm = conn.createStatement();

} catch (Exception e) {

out.print("数据库连接失败!");

}

}

public void CloseDB() {

try {

if (sm != null) {

sm.close();

}

conn.close();

} catch (SQLException SqlE) {

out.print("数据库关闭失败!");

}

}

}






DB_User.java

package JavaBean;

import java.sql.ResultSet;

import java.sql.SQLException;

public class DB_User {

// 创建公用数据库连接类对象

DB_Conn db_conn = new DB_Conn();

// 通过用户名称获取用户信息

public User get(String username, String password) {

db_conn.ConnectDB();

ResultSet rs = null;

try {

String sql = "select * from admin where u_Name ='"

+ username + "' and u_Pass='" + password + "'";

rs = db_conn.sm.executeQuery(sql); // 执行sql语句

User user = null;

if (rs.next()) {

user = new User();

user.setUsername(username);

user.setPassword(rs.getString("u_Pass"));

return user;

}

return user;

}

catch (SQLException SqlE) {

return null;

}

catch (Exception E) {

return null;

}

finally {

// 关闭连接,释放数据库资源:

db_conn.CloseDB();

}

}

}



User.java

package JavaBean;

public class User {

private String username;

private String password;

public String getUsername() { // 用户名称

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() { // 登陆密码

return password;

}

public void setPassword(String password) {

this.password = password;

}

}
...全文
271 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
RuHua27 2015-03-23
  • 打赏
  • 举报
回复
引用 2 楼 u012954898 的回复:
你的web.xml中的<servlet-name>写的是LoginServlet, 而你的login.jsp中的action属性写的是./LoginServlet,不一致
引用 3 楼 lkt19911025 的回复:
<form method="POST" action="./LoginServlet"> action url配置和 web.xml中的url对不上 去掉 “.”
我改成了<form method="POST" action="/LoginServlet">,可还是不行,麻烦您再帮我看看。。我好像没有导入jdbc 的jar包,但是代码没有报错,可能和这个有关系吗?
leeKitty 2015-03-23
  • 打赏
  • 举报
回复
<form method="POST" action="./LoginServlet"> action url配置和 web.xml中的url对不上 去掉 “.”
  • 打赏
  • 举报
回复
你的web.xml中的<servlet-name>写的是LoginServlet, 而你的login.jsp中的action属性写的是./LoginServlet,不一致
leeKitty 2015-03-23
  • 打赏
  • 举报
回复
引用 5 楼 u013112097 的回复:
改了之后提示变成了404.。。
<form method="POST" action="./LoginServlet"> 你把 "./" 都去掉 或者 在web.xml里 路径写成 servlet/LoginServlet 然后把这个路径都写在action里 action="servlet/LoginServlet"
RuHua27 2015-03-23
  • 打赏
  • 举报
回复
引用 6 楼 u010056105 的回复:
<!--<servlet> <servlet-name>LogServlet</servlet-name> <servlet-class>Servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LogServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping>--> servlet不是被注释了?我看错了?
额,注释那个是网上找的,被注释了,用的后面这个自动生成的: <servlet> <description></description> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>Servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping>
Sandm_ 2015-03-23
  • 打赏
  • 举报
回复
<!--<servlet> <servlet-name>LogServlet</servlet-name> <servlet-class>Servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LogServlet</servlet-name> <url-pattern>/LoginServlet</url-pattern> </servlet-mapping>--> servlet不是被注释了?我看错了?
RuHua27 2015-03-23
  • 打赏
  • 举报
回复
改了之后提示变成了404.。。
RuHua27 2015-03-22
  • 打赏
  • 举报
回复
我的jsp文件都在WebContent目录,包和java文件都在src下面
AJAX——新手快车道 前言 AJAX是什么? 首先、AJAX是一种很酷的技术,一旦采用了AJAX,就能让你的Web页面, 你的网站,甚至连同你们公司,都变得很酷。在Web2.0的时代里,不使用一点 AJAX技术的网站,就显得很老土,很落伍。 但是,这样的理解,其实是很肤浅的。仅仅是从一个外行,从一个使用者的 角度出发,来理解AJAX,就像我在本书的第一章AJAX我也行中那样,开发 出很愚蠢,甚至都没有资格被称之为AJAX应用的纯IE、XMLHTTP应用。 AJAX更酷的一点在于,对于传统的Web开发人员来说,AJAX所运用的, 是更加先进的,更加标准化的,更加和谐高效的,完整的Web开发技术体系。 遵循这样的体系开发Web应用,能让你的开发过程变得更加轻松,也能使你们 的开发团队,显得很酷。在Web2.0 的时代里,还在采用过时的技术来开发 Web,显得很老土,很落伍。 AJAX的相关组成技术,每一个都已经出现了N年以上了,对这些技术的 组合运用,也远远早于AJAX这个名词出现之前。所以,我真正敬佩的,并非提 出 AJAX这个缩写的Jesse James Garrett。而是那些早在N年以前,就已经在探索、 实践的先行者,他们始终在追求的:是更好的用户体验,以及更好的开发体验。 这样的精神,才是最可宝贵的,也是最值得我们学习的。许多年过去以后,当我 们再回头来看当年的这些热门技术,也许早已经变得老土,变得落伍了。在这样 的历程中,哪些人成长为高手?成长为大师呢?就是那些永不满足,永远 在追求更好的用户体验,永远在追求更好的开发体验的人! 新手如何上路 软件开发这个领域,永远都在飞速发展,大家都必须不断的学习新的知识、 技能、框架、IDE、甚至新的语言。传说中的骨灰级高手们,就像传说中的大侠, 任何武器、哪怕是一块木头到了他们手里,也能发挥惊人的威力,人家练了几十 年的看家本领,他们随手使来,也竟然像是打娘胎里就开始练了一样。为什么? 就算不吹那么玄的,平常我们能够碰到的那些老手,在学新东西的时候, 也比那些新手学得更快,理解得更深,运用得更熟练。而新手们呢?往往就漫 无头绪,焦头烂额,以一副张着茫然的大眼睛的经典表情,出现在各大论坛的 新手求助区里。他们欠缺的,究竟是什么呢?为什么老手学新东西,就没遇到那 么多困难呢? 泛泛地说,自然是经验上的欠缺。仔细地说来,又可以分为三个方面: 一、本质,一种技术与另一种技术之间,往往有本质上的相通之处,当你 对一种技术的理解与思考越来越深入时,学习一种新技术也更加容易。触类旁 通,举一反三的能力,就是来自于对于技术本质的追寻。 二、地图,本质上或多或少的相通,也提示着我们技术之间的相互关联,当 你了解的技术越多,了解得越是深入,在你的内心,就能建立起越发清晰的技 术地图。各种知识都有一个自然、合理的位置。那么当一个老手要学习一门新技术 的时候,他其实并非在探索一个全新的、未知的领域,而是有很多脉络可寻,也 很多已知可以帮助他们快速了解未知。 三、技巧,面对同样的未知,面对同样的难题,新手们一筹莫展,而老手们 却掌握着更多的技巧和手段,帮助他们试探可能性、缩小问题的范围、迅速定位 问题、不犯明显愚蠢的错误、甚至能够列举出更具命中力的搜索关键词,而这些 技巧,都帮助老手在前进的道路上,更少跌倒,即使跌倒,也能更快的爬起来。 作为一本写给新手的入门书籍,我们希望展现给读者的,是一个老手如何 学习新技术的过程。我们相信,这样的一个学习过程,对于新手来说,是更具有 价值的。 何谓快车道 必须老老实实的承认,我吹牛了!老手虽然新手学习得更快一些,但 是也同样碰到麻烦,遇到障碍,感觉头痛。如果没有真正的专家的指导,我不 可能如此迅速地将AJAX掌握到目前这样的程度,要真是让我自学三个月,然 后就写出书来的话,那真是在骗钱了。 老手能够快速学习的另一个重要的诀窍是:认识很多牛人朋友 如果没有李锟与赵泽欣的专家级指导与帮助,如果没有与李锟AJAX结对 编程的体验,如果没有三个人在MSN上无数次的长聊,我想要在短期内建立起: 对于AJAX本质的理解; 对于整个AJAX以及相关技术地图的理解; 对于AJAX编程开发所需要的很多技巧、手段的掌握; 几乎是不可能的。 如果没有(N多需要感谢的人)的(N多方面的帮助),我们这本书,也 不可能以现在这样的深度,以(N个月)内完成的速度,送到读者的面前。 希望这本书,能够对大家快速学习AJAX,有所帮助。
软件开发这个领域,永远都在飞速发展,大家都必须不断的学习新的知识、 技能、框架、IDE、甚至新的语言。传说中的骨灰级高手们,就像传说中的大侠, 任何武器、哪怕是一块木头到了他们手里,也能发挥惊人的威力,人家练了几十 年的看家本领,他们随手使来,也竟然像是打娘胎里就开始练了一样。为什么? 就算不吹那么玄的,平常我们能够碰到的那些老手,在学新东西的时候, 也比那些新手学得更快,理解得更深,运用得更熟练。而新手们呢?往往就漫 无头绪,焦头烂额,以一副张着茫然的大眼睛的经典表情,出现在各大论坛的 新手求助区里。他们欠缺的,究竟是什么呢?为什么老手学新东西,就没遇到那 么多困难呢? 泛泛地说,自然是经验上的欠缺。仔细地说来,又可以分为三个方面: 一、本质,一种技术与另一种技术之间,往往有本质上的相通之处,当你 对一种技术的理解与思考越来越深入时,学习一种新技术也更加容易。触类旁 通,举一反三的能力,就是来自于对于技术本质的追寻。 二、地图,本质上或多或少的相通,也提示着我们技术之间的相互关联,当 你了解的技术越多,了解得越是深入,在你的内心,就能建立起越发清晰的技 术地图。各种知识都有一个自然、合理的位置。那么当一个老手要学习一门新技术 的时候,他其实并非在探索一个全新的、未知的领域,而是有很多脉络可寻,也 很多已知可以帮助他们快速了解未知。 三、技巧,面对同样的未知,面对同样的难题,新手们一筹莫展,而老手们 却掌握着更多的技巧和手段,帮助他们试探可能性、缩小问题的范围、迅速定位 问题、不犯明显愚蠢的错误、甚至能够列举出更具命中力的搜索关键词,而这些 技巧,都帮助老手在前进的道路上,更少跌倒,即使跌倒,也能更快的爬起来。 作为一本写给新手的入门书籍,我们希望展现给读者的,是一个老手如何 学习新技术的过程。我们相信,这样的一个学习过程,对于新手来说,是更具有 价值的。 何谓快车道 必须老老实实的承认,我吹牛了!老手虽然新手学习得更快一些,但 是也同样碰到麻烦,遇到障碍,感觉头痛。如果没有真正的专家的指导,我不 可能如此迅速地将AJAX掌握到目前这样的程度,要真是让我自学三个月,然 后就写出书来的话,那真是在骗钱了。 老手能够快速学习的另一个重要的诀窍是:认识很多牛人朋友 如果没有李锟与赵泽欣的专家级指导与帮助,如果没有与李锟AJAX结对 编程的体验,如果没有三个人在MSN上无数次的长聊,我想要在短期内建立起: 对于AJAX本质的理解; 对于整个AJAX以及相关技术地图的理解; 对于AJAX编程开发所需要的很多技巧、手段的掌握; 几乎是不可能的。 如果没有(N多需要感谢的人)的(N多方面的帮助),我们这本书,也 不可能以现在这样的深度,以(N个月)内完成的速度,送到读者的面前。 希望这本书,能够对大家快速学习AJAX,有所帮助。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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