关于JSP中的传值

1.表单form的属性action

在表单form中有个属性是action,他的作用是用于,数据提交到表单然后表单响应到的地址
而method响应有两个方法,一个是get,一个是post.
默认是get,所以写不写方法都一样.

2.关于HTML中的name属性和id属性中的作用

name属性的参数是用于后端的,也就是给action的.
 id属性的参数是用于给前端脚本的

3.关于method中的get和post

get方法响应出来是参数是直接显示在浏览器URL中.
post方法则是不在地址栏中显示,而是封装在request对象中,但是还是可以看见(在F12中看见).


登录成功
1.把请求转发给ok.jsp,不响应客户端,也不继续处理客户端请求,让ok.jsp对客户端进行响应

这句话的意思就是登录参数request给例如a2.jsp,这个时候是客户端给出的请求,而a2.jsp不知道这个请求有什么用,然后在服务端中把这个请求又给了ok.jsp所以导致在客户端把登录信息给完a2.jsp是应该转到ok.jsp但是因为转到ok.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");	
}else{
	//登录失败
	response.sendRedirect("error.jsp");
}
%>

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

//这里是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("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");
}
%>

登录成功

EL表达式

${值}
${param.值}
posted @ 2018-06-06 20:23  世界上最瘦的男人  阅读(145)  评论(0编辑  收藏  举报