用户登录JDBC后屏蔽用户名

use*_*666 1 java oracle login jdbc getparameter

所以我在这里有代码将我的用户名参数值发送到我的index.jsp欢迎页面:

response.sendRedirect("index.jsp?username=" + username);
Run Code Online (Sandbox Code Playgroud)

该名称显示在我的index.jsp页面中,其中包含:

<%= "Welcome " + request.getParameter("username")%>
Run Code Online (Sandbox Code Playgroud)

但是,URL显示的信息是我不想要的:

http://localhost:8088/Trading_Platform_Web/index.jsp?username=ClayBanks1989
Run Code Online (Sandbox Code Playgroud)

任何想法如何掩盖这个?

此外,更希望仅显示我的数据库中的名字.但我们可以专注于手头的任务.

Abi*_*nha 6

使用转发.这将使请求属性可以传递给视图,您可以以ServletRequest#getAttribute的形式使用它们,或者使用表达式语言和JSTL.简短的例子

控制器(你的servlet)

request.setAttribute(username", username);
RequestDispatcher dispatcher = servletContext().getRequestDispatcher("index.jsp");

dispatcher.forward(request, response);
Run Code Online (Sandbox Code Playgroud)

查看(您的JSP).

<%
out.println(request.getAttribute("username"));
%>
Run Code Online (Sandbox Code Playgroud)

另一种选择是使用会话变量:

//if request is not from HttpServletRequest, you should do a typecast before
HttpSession session = request.getSession(false);
//save message in session
session.setAttribute(username", username);
response.sendRedirect("index.jsp");
Run Code Online (Sandbox Code Playgroud)

然后把它拿回来

<%
out.println(session.getAttribute("message"));
session.removeAttribute("message");
%>
Run Code Online (Sandbox Code Playgroud)

类似地,您可以将第一个名称存储在数据库的会话变量中,并且可以在网站的任何位置显示它,直到会话保持不变