jsp中四种传送主要参数的方式

2021-02-14 02:28| 发布者: | 查看: |

今日教师讲了jsp中四种传送主要参数的方式,我认为小结一下,挺不错的,以便后用!

1、form表格

2、request.setAttribute();和request.getAttribute();

3、超级链接接: a herf="index.jsp" a=a&b=b name /a

4、 jsp:param

下边逐一举例说明表明:

1、form表格

form.jsp:

 %@page contentType="text/html; charset=GB2312"% 
 html 
 head 
 title 
 form.jsp file 
 /title 
 /head 
 body 
 h2 登陆网页页面 /h2 
 form action="result.jsp" method="get" align="center" 
 名字: input type="text" name="name" size="20" value="" maxlength="20" br/ 
 登陆密码: input type="password" name="password" size="20" value="" maxlength="20" br/ 
 !--想和你在一起好前空一个空格符,是以便排版设计漂亮些-- 
  喜好: input type="checkbox" name="hobby" value="article/歌唱" 歌唱 
 input type="checkbox" name="hobby" value="article/足球" 足球 
 input type="checkbox" name="hobby" value="article/篮球赛" 篮球赛 br/ br/ 
 input type="submit" name="submit" value="article/登陆" 
 input type="reset" name="reset" value="article/重设" br/ 
 /form 
 /body 
 /html 

result.jsp:

 %@page language="java" import="java.util.*" pageEncoding="GB2312"% 
 html 
 head 
 title 
 result.jsp file 
 /title 
 /head 
 body bgcolor="ffffff" 
 request.setCharacterEncoding("GB2312"); 
 String name=request.getParameter("name"); 
 name=new String(name.getBytes("iso-8859-1"),"GB2312"); 
 String pwd=request.getParameter("password"); 
 String[] hobby=request.getParameterValues("hobby");//留意这儿的涵数是getParameterValues()接纳一数量组的数据信息 
 if(!name.equals("") && !pwd.equals("")) 
 你好!登陆取得成功! br/ 
 名字: %=name% br/ 
 登陆密码: %=pwd% br/ 
 喜好: % 
 for(String ho: hobby) 
 ho=new String(ho.getBytes("iso-8859-1"),"GB2312"); 
 out.print(ho+" "); 
 else 
 请键入名字或登陆密码! 
 /body 
 /html 

留意:form表格的递交方法为get,在主要参数传送时候碰到汉语错码的难题,一个简易的处理方式是,将接纳到的标识符串先变换成一个byte数字能量数组,再用String结构一个新的编号文件格式的String,如:

1. String name=request.getParameter("name"); 

2. name=new String(name.getBytes("iso-8859-1"),"GB2312"); 

假如form表格的递交方法为post,处理错码难题的简易方法是,应用 request.setCharacterEncoding("GB2312");设定request的编号方法。

为何会出現汉语错码难题呢?由于Tomcat网络服务器默认设置的系统软件编号方法为iso-8859-1,你传送主要参数给网络服务器时,应用的是默认设置的iso-8859-1的编号方法,可是网络服务器向你回到信息内容时,是按page命令中设定的编号方法,如: %@page language="Java" import="java.util.*" pageEncoding="GB2312"% ,那样就混和了二种编号方法,因此会出現错码,因此处理之道便是统一传送和接受的编号方法。

2、request.setAttribute()和request.getAttribute()

set.jsp:

 %@page contentType="text/html; charset=GB2312"% 
 html 
 head 
 title 
 set.jsp file 
 /title 
 /head 
 body 
 request.setAttribute("name","心雨"); 
 jsp:forward page="get.jsp"/ 
 /body 
 /html 

get.jsp:

 %@page contentType="text/html; charset=GB2312"% 
 html 
 head 
 title 
 get.jsp file 
 /title 
 /head 
 body 
 out.println("传送回来的主要参数是:"+request.getAttribute("name")); 
 /body 
 /html 

request.setAttribute()和request.getAttribute()是相互配合 jsp:forward 或者include命令来完成的。

3、超级链接接: a herf="index.jsp a=a&b=b&c=c" name /a

href.jsp:

 %@page contentType="text/html; charset=GB2312"% 
 html 
 head 
 title 
 href.jsp file 
 /title 
 /head 
 body 
 a href="?name=心雨&password=123" rel="external nofollow" 传送主要参数 /a 
 /body 
 /html 

getHref.jsp:

 %@page contentType="text/html; charset=GB2312"% 
 html 
 head 
 title 
 getHref.jsp file 
 /title 
 /head 
 body 
 String name=request.getParameter("name"); 
 name=new String(name.getBytes("iso-8859-1"),"gb2312"); 
 out.print("name:"+name); 
 br/ 
 out.print("password:"+request.getParameter("password")); 
 /body 
 /html 

这类传送主要参数的方式和form表格的get方法相近,是根据详细地址栏传送的主要参数,其错码处理方式也和form 的get方法一样。

4、 jsp:param

param.jsp:

 %@page contentType="text/html; charset=GB2312"% 
 html 
 head 
 title 
 param.jsp file 
 /title 
 /head 
 body 
 %request.setCharacterEncoding("GB2312");% 
 jsp:forward page="getParam.jsp" 
 jsp:param name="name" value="article/心雨"/ 
 jsp:param name="password" value="article/123"/ 
 /jsp:forward 
 /body 
 /html 

getParam.jsp:

 %@page contentType="text/html; charset=GB2312"% 
 html 
 head 
 title 
 getParam.jsp file 
 /title 
 /head 
 body 
 String name=request.getParameter("name"); 
 out.print("name:"+name); 
 br/ 
 out.print("password:"+request.getParameter("password")); 
 /body 
 /html 

这儿发觉了一个怪异的难题,還是先在文错码的难题上,在form表格的事例中,假如传送方法为post,则只必须在接受主要参数的网页页面设定request的编号方法便可以了,即request.setCharacterEncoding("GB2312");,留意是在接受主要参数的网页页面,假如将该句放进form表格里,那麼不了功效,依然是错码。而在本例中,以便使传送的主要参数出不来现错码,确是将request.setCharacterEncoding("GB2312");放到推送主要参数的网页页面中,才会一切正常显示信息汉语,放到接受主要参数的网页页面中,不了功效。或许这便是 jsp:param 和form表格传送主要参数不一样的地区。为何会出现这一不一样呢?将会是由于form表格中的主要参数是由顾客端传输到服务端上的,必须历经一个request的装包全过程,可是 jsp:param 传送的主要参数自身便是在网络服务器端的,不用亲身经历由顾客端到服务端那么一个全过程,可是网络服务器里的主要参数传送是那么件事情呢?这一难题,我不会了解了!简直专业知识是一个扩张的圆圈,你了解的越大,那麼不知道道的就会越多!勤奋吧!

之上便是文中的所有內容,期待文中的內容对大伙儿的学习培训或是工作中能产生一定的协助,同时也期待多多的适用!

<
>

 
QQ在线咨询
售前咨询热线
18720358503
售后服务热线
18720358503
返回顶部