servlet参数传递及页面跳转
这里包括servlet接受参数、传递参数、参数乱码、页面乱码、页面跳转、用户信息保存至session等
一、接受参数
1、接收单个字符串
这里直接写解决乱码的接受方式
String name = new String(request.getParameter(“name”).getBytes(“ISO-8859-1”), “UTF-8”);
2、接受js传递过来的数组
String[] conducts=request.getParameterValues(“conducts”);
接受js的数组含有,,,,
可以用split函数分割
String[] conducts=request.getParameterValues("conducts");
String[] strings = conducts[0].split(",,,,");
for (String string : strings) {
System.out.println("pic:"+string);
}
if("".equals(strings[1])){
String[] s = new String[strings.length-1];
for(int i=0;i<s.length;i++){
s[i]=strings[i+1];
}
request.setAttribute("conducts", s);
}else
request.setAttribute("conducts", strings);
二、页面跳转、参数传递
1、不带参数的跳转
response.sendRedirect(“fail.html”);
2、带参数的跳转
request.setAttribute(“name”, name);
request.getRequestDispatcher(“query.jsp”).forward(request, response);
3、用js跳转
PrintWriter out = response.getWriter();
out.print("<script language='javascript'>window.location.href='query.jsp';</script>");
可以在js代码中添加弹窗
String a = URLEncoder.encode(“查询条件不能为空!”, “UTF-8”);
alert(decodeURIComponent(a));//这条语句写js中,注意稍微修改下“”
4、通过js代码跳转后页面乱码问题
response.setCharacterEncoding(“UTF-8”);
!!!注意 这条语句要加在PrintWriter out = response.getWriter();之前,输出流打开之后设置编码就无效了
三、用户信息保存至session
User user = new User();
user.setTel(phone);
user.setName(result);
user.setPass(mima);
HttpSession s = request.getSession(true);
s.setAttribute("user",user);