我真的需要帮助。我有一个login.jsp页面
<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 :(得分:0)
1)根据您在注释中的查询,您可以通过使用HttpServlet类扩展它来将Command.java转换为servlet。然后,您可以访问Command.java类中的请求和响应对象。
2)将请求和响应对象传递给Command.java类的其他方法如下:
假设你有一个servlet MyServlet
,你想从那里调用Command.java类的方法
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();
}
}
}
然后,您的Command类方法应具有以下参数:
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请求和响应只是一个简单java类的对象。它们不依赖于任何api之类的servlet,你可以将这些对象传递给任何java类,它们的属性将保持不变,无论它的servlet还是java类。