您的位置:首页 > Web前端 > JavaScript

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

然后我贴一下我的代码:

<%@ 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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: