java—将值从servlet发送到jsp,而不在url上显示Cookie和R会话

omqzjyyz  于 2021-07-09  发布在  Java
关注(0)|答案(3)|浏览(264)

我对servlet和jsp还不熟悉,所以我将简单介绍一下。
我想将一些值从servlet发送到jsp,但是我的审阅者建议不要使用cookies。我尝试使用session,但是重定向的url一直显示嵌入其中的值。
插图
http://local host:8088/webkl/index.jsp?name=a1&age=a2
我不想在url中显示姓名和年龄,我该怎么做?
不知道怎么了。请帮忙?

e3bfsja2

e3bfsja21#

get方法是向web服务器发送信息的默认方法。因为get方法将纯文本字符串附加到url。我们应该避免使用get方法向服务器发送密码或其他敏感信息。get方法也有大小限制。一个请求字符串只能发送1024个字符。发送的信息可以通过请求对象的getquerystring()和getparameter()方法访问。post方法是向服务器发送信息的更可靠的方法。此方法将信息作为单独的消息发送。jsp使用getparameter()方法读取简单参数,使用getinputstream()方法读取来自客户机的二进制数据流来处理此类请求。
jsp使用以下方法处理表单数据。

<form action="main.jsp" method="GET/POST">
     First Name: <input type="text" name="first_name">
     Last Name: <input type="text" name="last_name" />
<input type="submit" value="Submit" />
</form>
pprl5pva

pprl5pva2#

您需要使用post方法,可以参考以下示例代码:
登录.jsp

<form action="loginOperation" method="post" onsubmit="return LoginValidate()" name="login">
   <input class="textbox" name="useremail" type="text" placeholder="useremail"> 
   <input class="textbox" name="password" type="password" placeholder="password">
   <input type="submit" value="Submit"/> <input type="reset" name="Reset" value="Reset"/>
</form>

login.java(servlet):-

public class LoginServlet extends HttpServlet {  
public void doPost(HttpServletRequest request, HttpServletResponse response)  
    throws ServletException, IOException {  

response.setContentType("text/html");  
PrintWriter out = response.getWriter();  

String n=request.getParameter("useremail");  
String p=request.getParameter("password");  

if(LoginDao.validate(n, p)){  
    RequestDispatcher rd=request.getRequestDispatcher("servlet2");  
    rd.forward(request,response);  
}  
else{  
    out.print("Sorry username or password error");  
    RequestDispatcher rd=request.getRequestDispatcher("index.html");  
    rd.include(request,response);  
}  

out.close();  
}  
}

网状物。xml:-

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>Demo</display-name>
 <welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>

 </welcome-file-list>

  <servlet>
  <servlet-name>Login</servlet-name>
  <servlet-class>com.demo.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Login</servlet-name>
<url-pattern>/loginOperation</url-pattern>
</servlet-mapping>

</web-app>
xmakbtuz

xmakbtuz3#

1-使用“post”方法而不是“get”。它不会在传递时显示值,url中不会显示任何内容。
example:- <form action="page_name.php" method="post"> First name: name: <input type="text" n``ame="lname"><br> input type="submit" value="Submit"> </form> 2-提交后,您可以检索firstname和lastname的值,而无需通过(url)传递它们。

相关问题