0

我的servlet是这样的

@WebServlet(name = "login", urlPatterns = {"/login"})
public class login extends HttpServlet {

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

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String username = request.getParameter("username");
        String password = request.getParameter("password");
        password = Base64.encode(password.getBytes());
        User user = new User();
        user.setUsername(username);
        user.setPassword(password);
        user.getLoggedIN();
}

根据这个 servlet,我可以使用“登录”并将 GET 或 POST 数据发送到这个 serverlt,这完全没问题我的问题是,有没有办法可以使用这个 serverlt 并引导不同的请求。例子

  1. 'login'(将执行 post 请求)-> doPost() 方法(我知道 doPost)
  2. 'signout'(将执行 post 请求)-> 定义了另一个方法,它将充当 doPost 方法

我不知道这是否可能!

4

4 回答 4

3
  • 我想你会有SignOutLogin按钮的名称。因此,当您单击其中一个时,Servlet您可以 button通过调用request.getParameter()按钮名称来检查实际单击的是哪个,然后将请求转发给适当的方法。

所以,在你的servlet,你可以有这样的代码: -

if (request.getParameter("LoginButton") != null) {
     // Forward to login method

} else if(request.getParameter("SignOutButton") != null) {
     //Forward to signout method..
}
  • 另一种方法是将名称发送ButtonQuery String... 您可以servlet使用从该查询字符串中获取名称request.getParameter()

所以你的查询字符串看起来像:

http://localhost:8080/yourServlet?action=Login
http://localhost:8080/yourServlet?action=SignOut
于 2012-09-30T13:42:08.400 回答
1

我在类似情况下所做的如下:

  1. 使用隐藏字段描述我想要执行的操作类型(例如登录、注销、输入数据、更新数据等任何你想要的)
  2. 从请求对象中检索隐藏参数的值。
  3. 对每个可能的操作使用 if else 梯形图,然后在 if else 块中调用适当的方法。

我知道这是非常基本的,但希望它会有所帮助。

于 2012-09-30T13:33:10.420 回答
0

添加另一个模式。检查每种请求类型的唯一请求参数,或者您还可以使用“request.getRequestURI”方法验证它是登录请求还是路标请求

于 2012-09-30T13:33:57.983 回答
-1

请参阅根据我们用于将要处理的数据(例如,从 HTML 表单)提交到已识别资源的一般场景帖子。数据包含在请求的正文中。这可能导致创建新资源或更新现有资源或两者兼而有之。

因此,在 UI 中,您将插入数据以及您也可以在数据库中看到的特定数据。在您的代码中

 @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    String username = request.getParameter("username");
    String password = request.getParameter("password");
    password = Base64.encode(password.getBytes());
    User user = new User();
    user.setUsername(username);
    user.setPassword(password);
    user.getLoggedIN();

只获取您正在设置的数据。或者你可以使用

if(user!=null){

//在这里您可以将您的请求转发到某个地方。}

于 2015-12-03T04:36:02.857 回答