login.jsp<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function init(){
with(document.login_form){
action='servlet/LoginServlet';
method='post';
target='_blank';
submit();
}
}
</script>
</head>
<body>
<form name="login_form">
username:<input type="text" name="login_username" style="width:200px;height:20px;"><font color="red"><span id="username_span"><<br>
password:<input type="password" name="login_password" style="width:200px;height:20px;"><br>
<input type="button" name="btn" value="登录" onClick="init()">
<input type="reset" name="reset" value="重置">
</form>
</body>
</html>LoginServlet.javapackage com.feifei.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet {
Connection conn;
PreparedStatement prst;
ResultSet rs;
//获得数据结果集合
ResultSetMetaData rmeta;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("gb2312");
request.setCharacterEncoding("gb2312"); response.setContentType("text/html");
PrintWriter out = response.getWriter();
String username = request.getParameter("login_username");
String password = request.getParameter("login_password");
System.out.println(username);
System.out.println(password);
//驱动程序名
String driverName="oracle.jdbc.driver.OracleDriver";
//数据库用户名
String userName="scott";
//密码
String userPasswd="yaofeihu";
String url="jdbc:oracle:thin:@localhost:1521:orcl";
try {
Class.forName(driverName);
conn = DriverManager.getConnection(url,userName,userPasswd);
String sql = "SELECT * FROM teacher WHERE username=? AND password=?";
prst = conn.prepareStatement(sql);
prst.setString(1, username);
prst.setString(2, password);
rs = prst.executeQuery();
if(rs.next()){
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
dispatcher.forward(request, response);
}
else{
out.print("<center>用户名活密码错误,请重新登录!</center>");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.flush();
out.close();
}}index.jsp<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.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>
<frameset rows=15%,*>
<frame name="top_frame" src="top.jsp">
<frameset cols=20%,*>
<frame name="left_frame" src="left.jsp">
<frameset rows=8%,*>
<frame name="bar_frame" src="bar.jsp">
<frame name="main_frame" src="main.jsp">
</frameset>
</frameset>
</frameset>
</html>bar.jsp<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%=(String)session.getAttribute("username")%>,您好!
</body>
</html>为何bar.jsp中的(String)session.getAttribute("username")为空?该如何解决?
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function init(){
with(document.login_form){
action='servlet/LoginServlet';
method='post';
target='_blank';
submit();
}
}
</script>
</head>
<body>
<form name="login_form">
username:<input type="text" name="login_username" style="width:200px;height:20px;"><font color="red"><span id="username_span"><<br>
password:<input type="password" name="login_password" style="width:200px;height:20px;"><br>
<input type="button" name="btn" value="登录" onClick="init()">
<input type="reset" name="reset" value="重置">
</form>
</body>
</html>LoginServlet.javapackage com.feifei.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class LoginServlet extends HttpServlet {
Connection conn;
PreparedStatement prst;
ResultSet rs;
//获得数据结果集合
ResultSetMetaData rmeta;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("gb2312");
request.setCharacterEncoding("gb2312"); response.setContentType("text/html");
PrintWriter out = response.getWriter();
String username = request.getParameter("login_username");
String password = request.getParameter("login_password");
System.out.println(username);
System.out.println(password);
//驱动程序名
String driverName="oracle.jdbc.driver.OracleDriver";
//数据库用户名
String userName="scott";
//密码
String userPasswd="yaofeihu";
String url="jdbc:oracle:thin:@localhost:1521:orcl";
try {
Class.forName(driverName);
conn = DriverManager.getConnection(url,userName,userPasswd);
String sql = "SELECT * FROM teacher WHERE username=? AND password=?";
prst = conn.prepareStatement(sql);
prst.setString(1, username);
prst.setString(2, password);
rs = prst.executeQuery();
if(rs.next()){
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
dispatcher.forward(request, response);
}
else{
out.print("<center>用户名活密码错误,请重新登录!</center>");
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
out.flush();
out.close();
}}index.jsp<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.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>
<frameset rows=15%,*>
<frame name="top_frame" src="top.jsp">
<frameset cols=20%,*>
<frame name="left_frame" src="left.jsp">
<frameset rows=8%,*>
<frame name="bar_frame" src="bar.jsp">
<frame name="main_frame" src="main.jsp">
</frameset>
</frameset>
</frameset>
</html>bar.jsp<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%=(String)session.getAttribute("username")%>,您好!
</body>
</html>为何bar.jsp中的(String)session.getAttribute("username")为空?该如何解决?
楼上说的对
你的username好像是没有往session里边存
这样的话肯定取不到
if(rs.next()){
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
dispatcher.forward(request, response);
}
else{
out.print(" <center>用户名活密码错误,请重新登录! </center>");
}