更新:Http状态500 - 此处不允许使用Scriptlet

时间:2014-12-02 18:55:25

标签: java jsp

我有两个jsps,LoginSuccess.jsp和acctinfo.jsp。 在LoginSuccess.jsp中,我在LoginSuccess.jsp中设置了一个名为Username的属性,其中包含有效的用户名值

我想要实现的是:当用户点击超链接时,它通过以下语句将控制权转移到acctinfo.jsp 其中url =" acctinfo.jsp"

在acctinfo.jsp中。我从会话中提取Username变量。我有一个名为UserName的输入字段,其值我希望设置为值="<%= userName%>"

我希望看到的是使用此userName值填充的输入字段。相反,JSP编译器会抱怨以下异常:

HTTP Status 500 - /acctinfo.jsp(36,66) Scripting elements ( <%!, <jsp:declaration, <%=,   <jsp:expression, <%, <jsp:scriptlet ) are disallowed here.

以下是LoginSuccess.jsp的代码:

<body>
<%
    System.out.println("LoginSuccess.jsp: Entered LoginSuccess.jsp");
    String username = request.getParameter("Username");
    System.out.println("LoginSuccess.jsp: User Name from the request is: " + username);
    session.setAttribute("Username", username);

    String url2 = "acctinfo.jsp";
    System.out.println("LoginSuccess.jsp: URL is: " + url);
    //session.setAttribute("CustomerName", customerName);
 %>
    **<h3>Login successful.</h3>
    <a href=<%= url2 %>>Proceed to Account Information Page</a>**

以下是acctinfo.jsp的代码:

  <%
     String userName = (String) session.getAttribute("Username");
   %>

 <form name="ViewBalance" action="" method="POST">
     <p>UserName: <input type=text NAME=UserName value="<%= userName %>">

 </form>

这是正确的代码:&#34;超链接到acctinfo.jsp&#34; line确实在我的scriplet块之外,我仍然看到这个问题。 JSP编译器仍在抱怨它不允许脚本元素在这里。 我在这做错了什么?我希望有人能够更多地了解这个问题


更新:我通过使用JSP EL解决了这个问题并取消了Scriptlets。

在LoginSuccess.jsp中: 我在会话中设置属性Username,如下所示:

session.setAttribute("Username", username);

在我的acctinfo.jsp中,我做了:

<p>UserName: <input type=text NAME=UserName value="${sessionScope.Username}"></p>

1 个答案:

答案 0 :(得分:-1)

您正在编写脚本中的HTML代码 - 您必须在编写完Java代码后关闭该脚本。

这应该这样做 - LoginSuccess.jsp:

<body>
<%
    System.out.println("LoginSuccess.jsp: Entered LoginSuccess.jsp");
    String username = request.getParameter("Username");
    System.out.println("LoginSuccess.jsp: User Name from the request is: " + username);
    session.setAttribute("Username", username);

    String url2 = "acctinfo.jsp";
    System.out.println("LoginSuccess.jsp: URL is: " + url);
    //session.setAttribute("CustomerName", customerName);
%>

<h3>Login successful.</h3>
<a href=<%= url2 %>>Proceed to Account Information Page</a>