请帮我看看这个简单的JSP内置对象问题,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/22 11:08:33
第一个文件是login2.jsp 第二个是Member.jsp,当运行第一个文件login2.jsp时,输入"Tom和123"那么就执行"session.setAttribute("Login", "OK");
response.sendRedirect("Member.jsp");"这两行代码,那么session里面的属性"Login的值就为OK",然后跳转到Member.jsp,而在Member.jsp里面写了一条"if (Login != null && Login.equals("OK"))".我认为只要能从第一个页面跳转到第二个页面,那么Login的值就必为"OK",那么为什么在第二个页面中还要判断“Login的值是否为空,并且是否等于OK”?难道不是画蛇添足吗?

login2.jsp
<%@ page contentType="text/html;charset=GB2312" %>

<html>
<head>
<title>Login.jsp</title>
</head>
<body>

<h2>javax.servlet.http.HttpSession - session 对象</h2>
<form action=login2.jsp method="POST" >
Login Name: <input type="text" name="Name"><br>
Login Password: <input type="text" name="Password" ><br>
<input type="su

楼主原文 :(你应该是想问这个问题吧)
我认为只要能从第一个页面跳转到第二个页面,那么Login的值就必为"OK",那么为什么在第二个页面中还要判断“Login的值是否为空,并且是否等于OK”?难道不是画蛇添足吗?

我的回答:
首先一个问题,你并不能保证进第二个页面是由第一个页面转过去的,比如我在地址栏直接敲Member.jsp也可以直接进入这个页面,这样你不判断是否登陆的话不就把内容都展现给没有登陆的人了么。

另外 if (Login != null && Login.equals("OK"))";也可以写成if ("OK".equals(Login))";前者加入非空判断是为了后面那个方法不能出现空指针,后者则不用担心Login是null了

vcbvc

<html>
<%@ page language="java" contentType="text/html;charset=gb2312" %>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>

<body bgcolor="#FFFFFF" text="#000000">
<%

Connection con=null;
Statement stmt=null;
ResultSet rs= null;
boolean b = false;

String name=request.getParameter("login_name");
String password=request.getParameter("login_password");//取得.htm中的值后赋给新的变量。