zoukankan      html  css  js  c++  java
  • 当编写Servlet时出现type Status report message HTTP method GET is not supported by this URL description The specified HTTP method is not allowed for the requested resource.

      直接看我代码再看解释就懂了

    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletRequest;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    import org.jboss.weld.context.ApplicationContext;
    
    public class ServletLogin extends HttpServlet{
     
         private String username;
         private String password;
         
        /* public void doGet(HttpServletRequest request,HttpServletResponse reponse){
             this.username=(String)request.getParameter("username");
             this.password=(String)request.getParameter("password");
             System.out.println("123");
         }
         
         public void doPost(HttpServletRequest request,HttpServletResponse reponse){
             this.username=(String)request.getParameter("username");
             this.password=(String)request.getParameter("password");
             System.out.println("456");
         }*/
         
         
          public void init(){
              //四个域对象(servletcontext ,Session,Request,page)
              ServletConfig application=this.getServletConfig();//此对象获得局部变量
              ServletContext application1=this.getServletContext();//此对象获得全局变量
              String username=application.getInitParameter("username");
              String password=application.getInitParameter("password");
              String var=application1.getInitParameter("var");
              String var1=application.getInitParameter("var");
              System.out.println(var);
              System.out.println(var1);
              System.out.println(password);
              System.out.println(username);
              System.out.println("789");
            // if(this.username.equals(username)&&this.password.equals(password))
                //request.sendRedirect("MyJsp.jsp");
          }
         
         }
           
        
    <?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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>Xuguang5</display-name>
         <!-- 声明全局变量 -->
       <context-param>
    	        <param-name>var</param-name>
    	        <param-value>我是全局变量</param-value>   
      </context-param>
      
      <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>
    	    <servlet-name>ServletLogin</servlet-name>
    	    <servlet-class>ServletLogin</servlet-class>
    	       <!-- 声明局部变量 -->
    	    <init-param>
    	        <param-name>username</param-name>
    	        <param-value>我是局部变量1</param-value>
    	    </init-param>
    	    
    	    <init-param>
    	        <param-name>password</param-name>
    	        <param-value>我是局部变量2</param-value> 
    	    </init-param>
      </servlet>
       <servlet-mapping>
            <servlet-name>ServletLogin</servlet-name>
            <url-pattern>/ServletLogin</url-pattern>
       </servlet-mapping>
       
      <!--  
       <filter>
            <filter-name>LoginFilter</filter-name>
            <filter-class>LoginFilter</filter-class>
            <init-param>
            <param-name>name</param-name>
            <param-value>true1</param-value>
            </init-param>
      </filter>
      
      <filter-mapping>
    	  <filter-name>LoginFilter</filter-name>
    	  <url-pattern>/*</url-pattern>
    	  <dispatcher>REQUEST</dispatcher>
      </filter-mapping> -->
    </web-app>
    

      代码当我把doGet()方法注释掉后就会出现这种情况,原因是doGet()/doPost()方法主要用于处理表单提交过来的数据,在表单<form></form>中method属性由于默认的是get方式提交也就是调用doGet()方法,当是method是POST方式提交时就是调用doPost()方法。即使我们没有编写jsp,我们直接用URL访问servlet时发送的时Http请求,servlet默认访问doGet方法,但是我们程序中没有重写父类的doGet()方法,而父类的doGet()方法又不支持这种URL方式,所以出现HTTP method GET is not supported by this URL这种错误。只需要重写doGet方法就可以。

            当我们用JSP编写表单提交数据到servlet时如果我们<form>中的属性method是设置了doPOST/doGet方法,但是我们servlet还是没有重写doPOST/doGet方法还是会出现一样的问题。如下图(这里就举没有重写doPOST的形式)

    成长就是将哭声调成静音的过程
  • 相关阅读:
    Web——[HCTF 2018]WarmUp
    栈的设置+栈的越界问题+栈的极限大小
    栈的概念
    检测点3.1
    字节型数据和字型数据的小结
    汇编语言(王爽)学习记录_第一章
    sqli-labs less-1 --> less-4
    五角星
    STD二手图书交流平台团队博客-登陆问题的解决
    STD二手图书交流平台团队博客-界面构建
  • 原文地址:https://www.cnblogs.com/weixiaoling/p/6298498.html
Copyright © 2011-2022 走看看