2016-09-29 154 views
0

我需要真正的幫助。我有一個login.jsp頁面HttpServletRequest獲取請求

<html> 

<head></head> 

<body> 
    <form method="post" action="j_security_check"> 
    <table> 
     <tr> 
     <td> 
      <input type="text" name="j_username" autofocus="autofocus" required="required" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      <input type="password" name="j_password" required="required" /> 
     </td> 
     </tr> 
     <tr> 
     <td> 
      <input type="submit" value="Login" /> 
     </tr> 
    </table> 
    </form> 
</body> 

</html> 

這是我的web.xml

所有頁面 /*
MY_User

<security-role> 
    <role-name>MY_User</role-name> 
</security-role> 

<login-config> 
    <auth-method>FORM</auth-method> 
    <realm-name>myRealm</realm-name> 
    <form-login-config> 
     <form-login-page>/login.jsp</form-login-page> 
     <form-error-page>/error.jsp</form-error-page> 
    </form-login-config> 
</login-config> 

在我的網絡連接我得到校長。但不知何故,當我進入我的主要類。請求消失了!

如何將我的請求傳遞給另一個Java類?

+0

你是什麼意思的主類?它是一個servlet嗎? – sidgate

+0

您是否向web.xml添加了servlet映射,以將url-pattern映射到您的servlet?例如,類似於: HelloServlet/hello shunkana

回答

0

1)根據您在查詢中的查詢,您可以通過擴展HttpServlet類來將Command.java轉換爲servlet。然後你可以訪問Command.java類中的請求和響應對象。

2)其他的方式來傳遞請求和響應對象到你的Command.java類如下:
比方說,你要調用Command.java類的方法有一個servlet MyServlet

public class MyServlet extends HttpServlet { 
private static final long serialVersionUID = 1L; 

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

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    try{ 
     Command c =new Command();//object creation depends on your project. e.g you can create it using beans of spring 
     c.doSomething(request, response); 
    }catch(Exception e){ 
     e.printStackTrace(); 
    } 
} 
} 

然後,你的命令類的方法應該有如下參數:

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

public class Command { 

    public void doSomething(HttpServletRequest request,HttpServletResponse response) { 
     System.out.println("doing something"); 
    } 
} 

記住,Servlet的請求和響應都只是OBJ一個簡單的java類的作用。它們不依賴於像servlet這樣的任何api,你可以將這些對象傳遞給任何java類,它們的屬性將保持不變,無論它的servlet或java類如何。

+0

是的,我正在使用類似於Spring的東西。實際上它與DialogMemory和DialogMachine有關。該語言被稱爲utcj2ee。它是一個公司特定的框架,已經在10年前去世了。我不認爲這將與它一起工作。我只想知道如何將我的請求傳遞給我擁有的這個Command.java主類。我甚至不能將它存儲在內存中。 – Mastermind2204

+0

這是不可能的,因爲我的MyCommand已經擴展了Command類。並且使HttpServlet成爲接口是不可能的。 – Mastermind2204