-
使用JSP的forward或include动作,利用传参数子动作实现参数的传递,‘
-
在JSP或HTML页面中,利用表单传递参数,
-
利用追加在网址后的参数传递或追加在超链接后的参数传递
**需注意的是:**在上述的三种传参方式中,方式1和方式3属于get类型的参数提交方式,而方式2属于get或post方式的参数提交方式,它可以通过form的method属性进行参数的选择,
get请求与post请求的不同之处是前者参数会显示在地址栏。
get请求:
post请求:
一、访问请求参数的方法
===========
同时,request对象的getParameter()方法可以接收不同的来自于JSP页面或JSP动作传递给request对象的参数信息。该方法的使用格式如下:
String 字符串变量 = request.getParameter(“客户端提供参数的name属性名”);
其中需要注意的是:参数name与客户端提供参数的name属性名应该相同,同时request对象的getParameter()方法返回的是string类型的参数,如果参数name的值不存在,则会返回空值null
接下来分别对这三种传参方式进行介绍:
二、form表单传参
==========
表单界面代码:
<body>
<form action="myjsp.jsp" method="post">
姓名:<input type="text" name="name"><br>
电话:<input type="text" name="tel"><br>
<input type="submit" value="提交">
</form>
</body>
表单界面效果:
接收界面代码:
<body>
<%
String name = request.getParameter("name");
String tel = request.getParameter("tel");
%>
<font facr="楷体" size=5>
获取到的信息是:<br>
姓名:<%=name %>
电话:<%=tel %>
</font>
</body>
接收界面效果:
中文乱码解决
如上我们可以看出,在我们传递了中文“张三”之后,在接收页面出现了乱码问题,解决办法如下:
1、在接收界面的代码中,在获取参数值之前增加如下代码:
request.setCharacterEncoding(“utf-8”);
2、在提交表单的action后的method属性需设置为“post”。
现在再来看一下:
<body>
<%
request.setCharacterEncoding("utf-8");
String name = request.getParameter("name");
String tel = request.getParameter("tel");
%>
<font facr="楷体" size=5>
获取到的信息是:<br>
姓名:<%=name %>
电话:<%=tel %>
</font>
</body>
效果如下:
3、在传递过来的中文参数中存在乱码问题,原因是中文参数采用了页面原有的“ISO-8859-1”编码,因此我们可能需要将传递过来的参数的编码格式修改为“UTF-8”格式,格式转换的代码如下:
String name = new String(request.getParameter(“name”).getBytes(“ISO-8859-1”),“UTF-8”);
三、网址或超链接传参
==========
利用网址或超链接传参的格式如下:
<a href=”超链接或网址?参数名1=参数值1&参数名2=参数值2…”>点击跳转
传值界面代码:
<body>
<a href="myjsp.jsp?name=zhangsan&tel=123456">点击传值</a>
</body>
传值界面效果如下:
接收界面代码:
<body>
<%
String name = request.getParameter("name");
String tel = request.getParameter("tel");
%>
<font facr="楷体" size=5>
获取到的信息是:<br>
姓名:<%=name %>
电话:<%=tel %>
</font>
</body>
接收界面效果:
中文错误解决
但是当我们将传递的name值改为中文“张三”后,
<body>
<a href="myjsp.jsp?name=张三&tel=123456">点击传值</a>
</body>
点击传值出现如下界面:
原因是因为在超链接或网址传参中,参数属于网址的一部分,同时这一部分是属于URL编码的,不支持中文的utf-8,因此在传递中文时会显示网址错误,解决办法是将我们要传递的中文转成URL编码即可:
java.net.URLEncoder.encode(“中文”,“utf-8”)将中文转换成URL编码
总结
无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
最后,如果有想要我整理的面试资料的,可以**戳这里免费领取**,我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。
无论是哪家公司,都很重视高并发高可用的技术,重视基础,重视JVM。面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。同时看中的应该不止薪资,还要看你是不是真的喜欢这家公司,是不是能真的得到锻炼。其实我写了这么多,只是我自己的总结,并不一定适用于所有人,相信经过一些面试,大家都会有这些感触。
最后,如果有想要我整理的面试资料的,可以**戳这里免费领取**,我整理了一些面试真题资料,技术知识点剖析教程,还有和广大同仁一起交流学习共同进步,还有一些职业经验的分享。
[外链图片转存中…(img-6tz7leFo-1628081127446)]