简体   繁体   English

如何从另一个Sevlet设置JSP属性?

[英]How can I set a JSP Attribute from another Sevlet?

I have a login and a register form in the same JSP, but I'd like to them to call two different servlet. 我在同一JSP中有一个登录名和一个注册表单,但是我希望他们调用两个不同的servlet。 The main functions are works, so you can log in or register, but if something happened, I'd like to change a ${message} attribute on the main page both from the Login and the Register servlet. 主要功能是有效的,因此您可以登录或注册,但是如果发生什么情况,我想从登录名和注册servlet更改主页上的$ {message}属性。 How can I do it? 我该怎么做?

Login JSP page (login.jsp) 登录JSP页面(login.jsp)

<form action="register" method="POST">
    INPUTS...
</form>
<form action="login" method="POST">
    INPUTS...
</form>

Login Servlet (LoginSV.java) 登录Servlet(LoginSV.java)

protected void doPost(HttpServletRequest request, HttpServletResponse response) {
    //Happens when e-mail or password incorrect
    request.setAttribute("message", "Incorrect email/password.");
    request.getRequestDispatcher("/login.jsp").forward(request, response);
    return;
}

Register Servlet (RegisterSV.java) 注册Servlet(RegisterSV.java)

protected void doPost(HttpServletRequest request, HttpServletResponse response) {       
    //Happens if user leaves a field empty
    request.setAttribute("message", "One or more field is epty.");
    request.getRequestDispatcher("/login.jsp").forward(request, response);
    return;
}

web.xml web.xml中

<servlet>
    <servlet-name>LoginSV</servlet-name>
    <servlet-class>servlet.LoginSV</servlet-class>
</servlet>
<servlet>
    <servlet-name>RegisterSV</servlet-name>
    <servlet-class>servlet.RegisterSV</servlet-class>
</servlet> 

<servlet-mapping>
    <servlet-name>LoginSV</servlet-name>
    <url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>RegisterSV</servlet-name>
    <url-pattern>/register</url-pattern>
</servlet-mapping>

I have the forms in the login.jsp file, so the Login Servlet can change the attribute (so it works fine in case the login form calls it), but the Register can't, the ${message} variable isn't there in any form. 我在login.jsp文件中有表单,因此Login Servlet可以更改属性(因此在登录表单调用它时可以很好地工作),但是Register不能,$ {message}变量不存在任何形式。

The problem solved. 问题解决了。 There were a redirect script in the login.jsp what screwed the things up. login.jsp中有一个重定向脚本,这使事情搞砸了。 Thanks everyone. 感谢大家。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM