jsp标签<% %>中的代码为什么运行不了?



用户名



密码




<%
String username=request.getParameter("username");
String password=request.getParameter("password");
if(username==null) username="";
out.println(username+password);
if(username.equals("张三")&&password.equals("123"))
{
%>
/jsp:forward
<%
}else{
%>

/jsp:forward
<% } %>

为什么跳转不到relogin.jsp?中间的out.print内容也不显示呢?
点击按钮提交后的页面URL是http://localhost:8088/20190403test/login.jsp?username=zs&password=sss&submit=%E6%8F%90%E4%BA%A4

将你需要跳转的链接地址用java组装一个from表单出来,然后输入到页面去,页面会自动提交form,如果需要带些参数过去,就new一个map,将参数和值分别put进去。

// 生成表单并自动提交到支付网关。
StringBuffer sbHtml = new StringBuffer();
sbHtml.append("

");
for (Map.Entry entry : map.entrySet()) {
sbHtml.append("");
}
sbHtml.append("");
sbHtml
.append("document.forms[&#39;paysubmit&#39;].submit();");
response.setCharacterEncoding("utf-8");
        PrintWriter writer = response.getWriter();
writer.print(sbHtml.toString());
writer.flush();
writer.close(); 

jsp中的java代码会在jsp进行编译的时候就执行掉,然后在最终编译后的前台页面里是不会存在java代码的

跳转需要在java中处理,使用sendRedirect 等

例如
<%
final String queryString = request.getQueryString();
final String url = request.getContextPath() + "/login" + (queryString != null ? "?" + queryString : "");
response.sendRedirect(response.encodeURL(url));%>

或者写在js中,通过location之类的url方法