2017-10-15 6 views
0

サーブレットのdoGet()メソッドで作成されたリクエストディスパッチャの転送メソッドは正常に動作します。しかし、ドーピング法で使用した場合は機能しません。また、Jspファイルでは、メソッドをdoPostとして宣言しました。以下は私のサーブレットのコードです。リクエストディスパッチャ転送メソッドがサーブレットのdo postメソッドで動作しない

@WebServlet(name = "SignUpServlet") 
public class SignUpServlet extends HttpServlet { 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 


    ApplicationContext ctx = new ClassPathXmlApplicationContext("lk/ruh/uniAssist/spring/SpringXMLConfig.xml"); 
    SignUPService signUpservice = (SignUPService) ctx.getBean("signUpservice"); 


    String username = request.getParameter("username"); 
    String studentName = request.getParameter("studentName"); 
    String regNo = request.getParameter("regNo"); 
    String pwd = request.getParameter("pwd"); 
    String department = request.getParameter("department"); 
    String semester = request.getParameter("semester"); 

    System.out.println(username); 
    System.out.println(studentName); 
    System.out.println(regNo); 
    System.out.println(pwd); 
    System.out.println(department); 
    System.out.println(semester); 

    RequestDispatcher requestDispatcher = request.getRequestDispatcher("signup.jsp"); 

    requestDispatcher.include(request, response); 




} 

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 




} 

}

このことはdoPostメソッドである方法。上記のフォーマットでは何も起こりません。しかし、doGetメソッドでRequestDispatcherメソッドを宣言するとうまく動作します。これの背後にある理由は何か。ここ

<div class="login-bottom"> 
    <h2>Register</h2> 
    <form name="signUpForm" id="signup" method="post" action="/signUp"> 
    <div class="col-md-6"> 
     <div class="login-mail"> 
      <input type="text" name="username" placeholder="Username" required=""> 
      <i class="fa fa-user"></i> 
     </div> 
     <div class="login-mail"> 
      <input type="text" name="studentName" placeholder="Name with initials" required=""> 
      <i class="fa fa-male"></i> 
     </div> 
     <div class="login-mail"> 
      <input type="text" name="regNo" placeholder="RegNo (ex:2528)" required=""> 
      <i class="fa fa-pencil"></i> 
     </div> 
     <div class="login-mail"> 
      <input type="password" name="pwd" placeholder="Password" required=""> 
      <i class="fa fa-lock"></i> 
     </div> 
     <div class="login-mail" placeholder="Department"> 
      Department 
      <select name="department" id="depSelector" class="form-control1"> 
       <option>Civil and Environment Eng.</option> 
       <option>Electrical and Information Eng.</option> 
       <option>Mechanical and Manufacturing Eng.</option> 
      </select> 
     </div> 
     <div class="login-mail" placeholder="Department"> 
      Semester 
      <select name="semester" id="semSelector" class="form-control1"> 
       <option value="1">1 Semester</option> 
       <option value="2">2 Semester</option> 
       <option value="3">3 Semester</option> 
       <option value="4">4 Semester</option> 
       <option value="5">5 Semester</option> 
       <option value="6">6 Semester</option> 
       <option value="7">7 Semester</option> 
       <option value="8">8 Semester</option> 
      </select> 
     </div> 
    </div> 
    <div class="col-md-6 login-do" align="center"> 
     <img src="images/icon.png" style="height: 200px; width: 200px;"> 
     <label class="hvr-shutter-in-horizontal login-sub"> 
      <input type="submit" value="Submit"> 
     </label> 
     <p>Already register</p> 
     <a href="signin.jsp" class="hvr-shutter-in-horizontal">Login</a> 
    </div> 
    <div class="clearfix"></div> 
    </form> 
</div> 

関連するJSPコードです。

マイウェブ全体XMLコード

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1"> 

<!--servlet declaration--> 
<servlet> 

    <servlet-name>TimeTableServlet</servlet-name> 
    <servlet-class>lk.ruh.uniAssist.servlet.TimeTableServlet</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>coursesServlet</servlet-name> 
    <servlet-class>lk.ruh.uniAssist.servlet.coursesServlet</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>SignInServlet</servlet-name> 
    <servlet-class>lk.ruh.uniAssist.servlet.SignInServlet</servlet-class> 
</servlet> 

<servlet> 
    <servlet-name>SignUpServlet</servlet-name> 
    <servlet-class>lk.ruh.uniAssist.servlet.SignUpServlet</servlet-class> 
</servlet> 


<!--Servlet Mapping--> 

<servlet-mapping> 
    <servlet-name>TimeTableServlet</servlet-name> 
    <url-pattern>/timeTable</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>coursesServlet</servlet-name> 
    <url-pattern>/courses</url-pattern> 
</servlet-mapping> 


<servlet-mapping> 
    <servlet-name>SignInServlet</servlet-name> 
    <url-pattern>/signIn</url-pattern> 
</servlet-mapping> 

<servlet-mapping> 
    <servlet-name>SignUpServlet</servlet-name> 
    <url-pattern>/signUp</url-pattern> 
</servlet-mapping> 

PS:signup.jspはURLで使用されている場合には、正常に動作します。しかし、マップされたURL/signUpでは動作しません。それは解決しようとしている問題です。

+0

関連性の高いコードがたくさんあるようです。 – AHungerArtist

+0

私はすでにこの質問に3つの答えがあることに驚いています。 – shinjw

+0

web.xmlとサーブレットクラス(メソッドシグネチャを含む)を投稿する必要があります。この2つの重要な情報がなければ誰もあなたに実際の答えを与えることはできません。 – shinjw

答えて

0

フォームタグmethod = postとサーブレットクラスのdoPost(HttpServletRequest req、HttpServletResponse resp)のオーバーライドメソッドであることを確認してください。

デフォルトフォームタグメソッドはgetで、サーブレットクラスはdoGetメソッド(HttpServletRequest req、HttpServletResponse resp)をオーバーライドする必要があります。

不一致の場合は、R.Eを取得します。HTTPメソッドGETはこのURLでサポートされていません(HTTPステータス405エラー)。 P.S - 完全なファイル。

関連する問題