servlet参数传递及页面跳转

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);
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
servlet,可以使用RequestDispatcher的forward方法来跳转页面。例如,可以使用以下代码将请求转发到名为"EShop.jsp"的JSP页面: ```java String url = "/EShop.jsp"; ServletContext sc = getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher(url); rd.forward(req, res); ``` 这将把请求和响应对象传递给目标页面,使目标页面能够处理请求并生成响应。注意,使用forward方法跳转页面后,地址栏不会发生变化。\[1\] 另外,需要注意的是,forward方式只能跳转到本web应用的页面上,无法跳转到其他应用或外部网页。如果想要在跳转后传递参数,可以使用url带parameter、session或request.setAttribute等方法。\[3\] #### 引用[.reference_title] - *1* *2* [Servlet跳转到jsp页面的几种方法](https://blog.csdn.net/weixin_30713953/article/details/96238984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Servlet跳转页面](https://blog.csdn.net/weixin_40912987/article/details/116167119)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值