HttpServletRequest获取请求

HttpServletRequest获取请求

问题描述:

我需要真正的帮助。我有一个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 servlet-name>/hello url-pattern> servlet-mapping> – shunkana

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