JSP中参数传递以及页面跳转
2013-11-04 22:21
591 查看
想死有没有?总算解决了这个问题但是内心非常的恶心有没有?怎么能够这样呢有没有!
在JSP中,众所周知,参数传递和页面跳转是经常要用到的,这也是非常简单的一种基本知识,但是真正没有用过几次的话,我觉得你还真是不能够真正的理解它!
百度上有很多种的方法,但我觉得常用的应该有以下几种:
一种就是Action传递表单form里面元素的方法,就是通过form的submit()方法传递给action的页面。
二种就是jsp:forward动作元素来传递参数,传递的参数可以用request.setAttribute,也可以jsp:param动作元素来实现,但是需要注意的是,forward传递参数在浏览器的地址栏,地址是不发生变化的,尽管已经跳转到了你想去的页面。而且我今天死的地方就是用out.println输出jsp:forward居然不管用。气死!
三种就是response的sendRedirect方法,这个可以实现页面跳转,并且地址栏也会变化,但是效率比较低,因为传了两次request,而且可悲的是,sendRedirect方法是不会传递给你去的页面参数的,只能结合session一起才能传参。
具体比较详细的请看http://developer.51cto.com/art/200907/134503.htm
然后我贴一下我的代码:
在JSP中,众所周知,参数传递和页面跳转是经常要用到的,这也是非常简单的一种基本知识,但是真正没有用过几次的话,我觉得你还真是不能够真正的理解它!
百度上有很多种的方法,但我觉得常用的应该有以下几种:
一种就是Action传递表单form里面元素的方法,就是通过form的submit()方法传递给action的页面。
二种就是jsp:forward动作元素来传递参数,传递的参数可以用request.setAttribute,也可以jsp:param动作元素来实现,但是需要注意的是,forward传递参数在浏览器的地址栏,地址是不发生变化的,尽管已经跳转到了你想去的页面。而且我今天死的地方就是用out.println输出jsp:forward居然不管用。气死!
三种就是response的sendRedirect方法,这个可以实现页面跳转,并且地址栏也会变化,但是效率比较低,因为传了两次request,而且可悲的是,sendRedirect方法是不会传递给你去的页面参数的,只能结合session一起才能传参。
具体比较详细的请看http://developer.51cto.com/art/200907/134503.htm
然后我贴一下我的代码:
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <jsp:useBean id="sqlbean" scope="page" class="com.database.sqlbean"> </jsp:useBean> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'logincheck.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <> </head> <body> <% //接受从登录页面传输过来的表单数据,分别是userID, passwd, String userID = request.getParameter("userID"); String passwd = request.getParameter("passwd"); String sql = "select * from UserInfo where userID = " + "'" + userID + "'" + " and userPwd = " + "'" + passwd + "'"; ResultSet rs = sqlbean.executeQuery(sql); if (rs.next()) { String Mem = rs.getString("userType"); // if (Mem.equals("Y")) { // out.println("<jsp:forward page=\"ChatSelector.jsp\">"); // out.println("<jsp:param name=\"isMem\" value=\"Y\" />"); // out.println("</jsp:forward>"); String name = rs.getString("userName"); session.setAttribute("isMem", Mem); session.setAttribute("userName", name); response.sendRedirect("ChatSelector.jsp"); //is a important member of chatroom // } else { // out.println("<jsp:forward page='ChatSelector.jsp'>"); // out.println("<jsp:param name='isMem' value='N' />"); // out.println("</jsp:forward>"); //is not a important member of chatroom // } } else { out.println("<script type='text/javascript'> alert('输入的账号密码错误!')"); // response.sendRedirect("LoginView.jsp"); //login failure response.sendRedirect();把alert都覆盖了。 out.println("window.location = 'JSP/LoginView.jsp' </script>"); } %> </body> </html>
相关文章推荐
- jsp页面间跳转 url传递中文参数乱码 以及后续细节处理
- (转载)jsp与servlet之间页面跳转及参数传递实例
- jsp与servlet之间页面跳转及参数传递实例
- jsp页面传递参数的几种方法总结以及一个在线聊天案例
- jsp与servlet之间页面跳转及参数传递实例
- Jquery跳转页面传递参数以及获取url的参数
- Servlet:servlet中传递中文参数到jsp页面中,出现无法正常传递以及传递成功以后,在jsp页面获取到的中文是
- 在一个页面文件中(JSP 或者HTML)使用href 跳转另一个页面时使用Js中获取传递过来的参数
- jsp页面显示后台传来参数以及传递参数给后台
- 从jsp页面跳转到另一个jsp页面怎么传递参数?
- 关于jsp页面跳转及参数传递的问题
- 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例
- 从一个jsp页面跳转到另一个jsp页面时的参数传递
- jsp与servlet之间页面跳转及参数传递实例
- Prism中,页面跳转以及页面之间传递参数(NavigationParameters)
- Swift - 纯代码实现页面segue跳转,以及参数传递
- Jsp与servlet之间页面跳转及参数传递实例(转)
- .jsp与servlet之间页面跳转及参数传递实例
- Swift - 纯代码实现页面segue跳转,以及参数传递
- asp.net mvc 2.0页面带参数跳转以及获取传递的参数