JSP中传值事件

在制作网页时候,我们用到表单的时候通常会有action来连接到其他地方:

在表单中还有一个method属性:

 

默认为get,get是有地址栏的。

 

当然你也可以改成post:

 

当你换成post的时候:

 

 

普通传值代码:

普通传值:

先创建一个a1.jsp文件

<form action="a2.jsp" method="post">

用户名:<input type="text" name="username" id="username"><br>

密码:<input type="password" name="password"><br>

    <input type="submit">

</form>

接着创建一个a2.jsp文件

<%

String username = request.getParameter("username");

String password = request.getParameter("username");

%>

欢迎<%=username %>

这里有个问题:

这是因为

ok.jsp,已经无法取出传给a2.jsp中的username

 

 

其原理就是:

 

 

把原来的a2.jsp中改成如下代码:

<form action="a2.jsp" method="post">

用户名:<input type="text" name="username" id="username"><br>

密码:<input type="password" name="password"><br>

    <input type="submit">

</form>

 

String username = request.getParameter("username");

String password = request.getParameter("password");

if (username.equals("admin")&&password.equals("123456")){

    //登录成功

    response.sendRedirect("ok.jsp");

}else{

    //登录失败

    response.sendRedirect("error.jsp");

}

 

 

 这里还是输出不了,再把a2.jsp代码改成:

<form action="a2.jsp" method="post">

用户名:<input type="text" name="username" id="username"><br>

密码:<input type="password" name="password"><br>

    <input type="submit">

</form>

 

 

<%

String username = request.getParameter("username");

String password = request.getParameter("password");

if (username.equals("admin")&&password.equals("123456")){

    //登录成功

    //不影响客户端

    //response.sendRedirect("ok.jsp");

    //1、把请求转发给ok.jsp,不响应客户端,也不继续处理客户端请求

    //让ok.jsp对客户端进行响应

    request.getRequestDispatcher("ok.jsp").forward(request, response);

    //问题,地址栏会发生改变吗?

   

   

    //2、把数据也发一份给ok.jsp

   

}else{

    //登录失败

    response.sendRedirect("error.jsp");

}

%>

 

 

登录成功<br>

 

<%

String username = request.getParameter("username");

%>

 

欢迎<%=username%>

 

 

 

登录成功<br>

${classname}

${param.username}

 

 

 

posted @ 2018-06-06 11:28  吴小帅  阅读(157)  评论(0编辑  收藏  举报