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

HTTP method POST is not supported by this URL解决方法

2012-01-12 
HTTP method POST is not supported by this URL我做了一个登录页面 用servlet来处理密码验证 servlet是要

HTTP method POST is not supported by this URL
我做了一个登录页面 用servlet来处理密码验证 servlet是要连接数据库的 但是
页面一提交之后就
报错HTTP method POST is not supported by this URL

package my;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class Loginservlet extends HttpServlet {


Connection conn;
Statement stmt;
PreparedStatement pstmt;
  ResultSet rst;
   
/**
* Constructor of the object.
*/
public Loginservlet() {
super();
}

/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.

* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

doPost(request,response);
}


public void doPost(HttpServletRequest request, HttpServletResponse response, ServletRequest session)
throws ServletException, IOException {

ServletContext application=getServletContext() ;
ServletConfig config=getServletConfig() ;
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter(); 
// HttpSession session =request.getSession();
request.setCharacterEncoding("utf-8");
System.out.println("hello6");
String userid = request.getParameter("userid");
String password = request.getParameter("password");
System.out.println("hello7");

try
{ System.out.println("hello7");
rst = stmt.executeQuery("select * from userinfo where userid='"+userid+"'"); 

if(rst.next())
{
if(rst.getString("password").equals(password))
{
response.sendRedirect("./index.jsp");
System.out.println("密码正确");
session.setAttribute("user",userid);

}
else
response.sendRedirect("login.jsp?info=1");
System.out.println("密码正确");

}
else
{
response.sendRedirect("login.jsp?info=1");
System.out.println("密码正确");
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
if(rst!=null)
{
try{ rst.close();}catch(Exception e)
{e.printStackTrace();}
}
if(stmt!=null)
{
try{ stmt.close();}catch(Exception e){e.printStackTrace();}

if(conn!=null)
{
try{ conn.close();}
catch(Exception e)
{e.printStackTrace();}

 
}
}


public void init() throws ServletException {
// Put your code here
DB db = new DB();


System.out.println("hello1");
conn =db.getConn();
try {
System.out.println("hello2");
stmt = conn.createStatement() ;
System.out.println("hello3");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("hello4");
}

}

}

程序会输出
hello1
hello2
hello3

也就是有执行这人函数init() DB是一个创建连接 DB db = new DB();的一个类

各位帮一下忙啊 



[解决办法]
以前遇到到这个问题。我试过把表单的method改成get就可以正常访问,但是post我不会。
楼主你的form的action和servlet-mapping都怎样的?
[解决办法]

引用楼主 eyes_on_you 的帖子:
我做了一个登录页面 用servlet来处理密码验证 servlet是要连接数据库的 但是
页面一提交之后就
报错HTTP method POST is not supported by this URL

package my;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.ser…

[解决办法]
public void doPost(HttpServletRequest request, HttpServletResponse response, ServletRequest session) 

是楼上说的原因,

是你这个doPost()方法重载了系统要求的doPost()方法,系统找不到他要用的doPost()方法

public void doPost(HttpServletRequest request, HttpServletResponse response) 

改成这样就OK了

要用HttpSession 从request.getSession();获得就行了

热点排行