servlet是否可以处理对同一JSP的操作,并在请求后维护URL



我没有找到任何关于它的信息,或者它对我来说太难找到了。。。

在我的login.jsp中,我有一个操作:

<form action="login" method="post">

在我的Web.xml中,我有一个映射:

<welcome-file-list>
  <welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<servlet>
  <servlet-name>Login</servlet-name>
  <servlet-class>com.example.Login</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>Login</servlet-name>
  <url-pattern>/login</url-pattern>
</servlet-mapping>

所以,当登录失败时,我的servlet会转发到带有典型消息的同一页面。但是URL会从该操作中获得/login

我记得在纯HTML中,一个空操作会保持URL不变,但在JSP中,它不允许我映射servlet的操作(大多数逻辑映射尝试都只是破坏CSS)。

我只想在处理完对self的请求后保持相同的URL。有办法做到这一点吗?

不要将登录作为欢迎文件。将主页设为欢迎文件(或者将欢迎页面重定向到主页)。这就是用户期望在网络应用程序的根目录中找到的内容:主页。

如果主页仅在登录后才可访问,则使用过滤器拦截所有请求,如果未登录,则重定向到登录servlet。使对此servlet的GET请求显示登录页面(通过转发到login.jsp),并且对该servlet的POST请求处理登录,如果登录失败,则再次转发到login.jp。

最新更新