2017-07-14 37 views
0

我是servlet和JSP的新手,所以我將簡短介紹一下。將值從Servlet發送到JSP而不使用cookie andr會話未在URL上顯示

我想從servlet發送一些值到JSP,但我的審閱者建議不要使用cookie。我嘗試了使用會話,但重定向的URL不斷顯示嵌入其中的值。

插圖

http://local主持人:8088/webkl/index.jsp的名稱= A1 &年齡= A2

我不希望在URL中顯示的姓名和年齡,我該怎麼辦呢?

不知道什麼是錯的。請幫忙?

+0

從servlet到jsp。你不是指jsp到servlet嗎? –

+0

No Robert Moskal,從servlet到JSP,我們有一個我們需要定製的第三方工具,因此主要工具的請求被重定向到一個servlet,然後從servlet被重定向到JSP – RoKr

回答

0

你需要使用POST方法,你可以參考波紋管的示例代碼:

的login.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(); 
} 
} 

web.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> 
0

1-使用「post」方法而不是「get」。 傳遞時它不會顯示值,網址中沒有任何顯示。

例如: -

<form action="page_name.php" method="post"> First name: <input type="text" name="fname"><br> name: <input type="text" n``ame="lname"><br> input type="submit" value="Submit"> </form>

-2-後提交u能檢索的名字和姓氏的值,而不使它們穿過所述(URL)。

0

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>