一、请求转发
request.getRequestDispatcher("lattice.jsp?name=格子&id=123").forward(request,response);
进行请求转发时,浏览器的地址并不会改变,即所谓的URL不会发生改变。1、传值方式:
A、?keyName=keyValue后跟传参如lattice=11
B、request.setAttribute("keyName",keyValue);
2、获取请求转发传递的数据
A、问号传参参数数据获取:request.getParameter("keyValue");获取到的所有数据都是字符串形式,如需获取int行数据,需要对获取到的字符串进行整型转换操作。
B、setAttribute传值方式获取:request.getAttribute("keyName");获取到的所有数据都是Object类型,所以在赋值时需要进行强制类型转换。
二、重定向
response.sendRedirect("url?keyName=keyValue");
1、进行重定向的时候,浏览器的地址会改变。
2、传值方式通过请求转发。
三、表单提交
1、形式
<form action="url" method="提交方式"> ...... <input type="submit" value="提交"></form>
action form表单提交的地址 url可以写相对路径,也可以写全路径 <%=path%> 可以代表我们的项目名称
<%String path=request.getContextPath();%>
2、表单提交方式method post
A、 post是隐式提交,在我们的浏览器地址栏(url)是看不见我们传的值的,安全
B、get是显示提交,在我们的浏览器地址栏(url)是看得见我们传的值的,不安全
所以我们一般就用post提交
可以跳转页面,通过submit按钮找到action的url,通过method方式完成跳转页面的操作
传值 可以通过<input type="text,hidden,password" > 传的是标签的value值
接值 request.getParameter("input标签多对应的name属性值"); 接受值
四、模拟表单提交
1、形式
使用按钮button来触发click事件,在click事件的js响应中来实现表单提交,而不是直接使用表单中的submit按钮来触发提交。
formName.action="<%=path%>/form/jie.jsp",
formName.method="post",
formName.submit();//formName为表单指定的name属性
2、值得获取方式同表单提交
五、A标签跳转页面
window.location.href="url",别切可以通过A标签的target属性(一下列表为target属性值说明):
_blank | 在新窗口中打开被链接文档。 |
_self | 默认。在相同的框架中打开被链接文档。 |
_parent | 在父框架集中打开被链接文档。 |
_top | 在整个窗口中打开被链接文档。 |
framename | 在指定的框架中打开被链接文档。 |
1、直接在A标签里写
<a href="window.location.href='http://blog.csdn.net/gezi2015129'">格子</a>
2、通过一个js方法function来中转(成为模拟A标签)
这样的好处是可以在js方法中获取一系列控件的data,如文本输入框的值,然后在通过地址传参的方式来绑定到URL中一起传递到跳转的页面。
function aClick(){window.location.href='http://blog.csdn.net/gezi2015129';}
<a href="javascript:aClick();">格子</a>