关于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.值}