文本框,密码框,单选框,复选框,下拉列表,文本域
注意:
文本框,密码框如果没有填值,则在后台打印的时候就是没有。
如果使用单选,或复选框,在没有选择任何值的时候,服务器上会接收到null,这个时候最容易发生空指针异常,因为没有键。其它的控件没有以上问题
request.getParameter()只是拿单独的值,返回值是String
复选框有多个值传上来,需要使用request.getParameterValues(),返回一个字符串数组String[]
三.提交数据的方式
(1)使用超链接提交数据:提交方式是get提交
使用超链接提交数据
(2)使用表单传值
如果使用get方式提交,要注意提交的数据不能大于255个字节。如果是post就没这个问题。
(3)直接在浏览器地址栏输入:提交方式get方法 编码gbk
http://localhost:8080/test/test6.jsp?name=abc&pwd=456
注意request.getParameter()是拿客户端给服务端的值
注意! js方法的参数如果要传字符串,必须加双引号或者单引号!
四.重定向、服务器转发、服务器包含(页面之间的合作)
重定向response.sendRedirect(“test4.jsp”);
response.sendRedirect(url);//转到这个页面去,需要到客户端的往返,所以效率比较低,这种重定向后,当前页面继续执行,不阻止后面代码的运行,不能取到它前一个页面可以取到的参数,将当前的处理重新定向到指定的url,不会保留原来请求信息,相当于是在ie地址栏重新输入了一个新的地址
服务器转发:
RequestDispatcher dis=request.getRequestDispatcher(“test4.jsp”);
dis.forward(request,response);
RequestDispatcher dis=request.getRequestDispatcher(uri);
dis.forward(request,response);
将当前的处理继续交给uri所指定的资源进行处理,会将原来的请求继续传递下去,地址 栏不会改变(因为对于用户而言,他还是认为是在原来的处理页面)
仅仅只能在同一个站点内部
服务器动态包含,与<jsp:include page="test4.jsp"></jsp:include>一样
RequestDispatcher dis=request.getRequestDispatcher("test4.jsp");
dis.include(request,response);
五.服务器端设值和传值
//在服务端设值,必须以键-值对的形式保存
request.setAttribute(key,value)
//拿到服务端设置在request中值
request.getAttribute("name");(要转型)
服务器传值:
如果是转发,可以拿到前一个jsp在request中设置的值,因为这两个jsp使用的是同一个request对象
如果是重定向,不可以拿到前一个jsp在request中设置的值,因为重定向
是两次全新的请求,使用的不是同一个request对象
总结:增删改:一般用重定向
查询:转发
补充:触发form表单的两种提交方式,submit和button的用法
使用场景:
要校验表单内容
一种是用submit提交。一种是用button提交。
方法一:
在jsp的前端页面的头部插入一个js方法:
function checkUser(){
校验表单内容
if(){
//不满足要求
return false;
}
}
表单里写:
<form onsubmit = "return checkUser()>
<input type="submit" value="" class="btn2" />
</form>
技术学习总结
学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。
最后面试分享
大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
[外链图片转存中…(img-F9QPuvpi-1714329513444)]
[外链图片转存中…(img-FOdGSWEy-1714329513445)]