我对servlet和jsp还不熟悉,所以我将简单介绍一下。我想将一些值从servlet发送到jsp,但是我的审阅者建议不要使用cookies。我尝试使用session,但是重定向的url一直显示嵌入其中的值。插图http://local host:8088/webkl/index.jsp?name=a1&age=a2我不想在url中显示姓名和年龄,我该怎么做?不知道怎么了。请帮忙?
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>
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>
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)传递它们。
<form action="page_name.php" method="post">
name: <input type="text" n``ame="lname"><br>
</form>
3条答案
按热度按时间e3bfsja21#
get方法是向web服务器发送信息的默认方法。因为get方法将纯文本字符串附加到url。我们应该避免使用get方法向服务器发送密码或其他敏感信息。get方法也有大小限制。一个请求字符串只能发送1024个字符。发送的信息可以通过请求对象的getquerystring()和getparameter()方法访问。post方法是向服务器发送信息的更可靠的方法。此方法将信息作为单独的消息发送。jsp使用getparameter()方法读取简单参数,使用getinputstream()方法读取来自客户机的二进制数据流来处理此类请求。
jsp使用以下方法处理表单数据。
pprl5pva2#
您需要使用post方法,可以参考以下示例代码:
登录.jsp
login.java(servlet):-
网状物。xml:-
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)传递它们。