login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%
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 'login.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 bgcolor = "pink">
<!-- 居中对齐 -->
<center>
用户登录<br>
<hr>
<%
String flag = request.getParameter("errNo");
try{
if(flag.equals("1")){
out.println("密码错误");
}
if(flag.equals("2")){
out.println("用户名不存在");
}
}catch(Exception e){
e.printStackTrace();
}
%>
<form action = "loginCl.jsp" method="post">
用户名:<input type="text" name="username"><br>
密 码:<input type="password" name ="passwd"><br>
<input type="submit" value="提交">
<input type="reset" value="重置">
</form>
</center>
</body>
</html>
loginCl.jsp验证用户名密码
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%>
<%
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 'loginCl.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>
<%
Connection conn= null ;
Statement smt = null;
ResultSet rs = null;
try{
//接收用户名和密码
String u = request.getParameter("username");
String p = request.getParameter("passwd");
//在数据库中验证用户
String className="oracle.jdbc.driver.OracleDriver";
// String url = "jdbc:oracle:thin:@192.168.1.3:1521:unionuat";
String url = "jdbc:oracle:thin:@192.168.1.3:1521:unionuat";
String userName = "sales_jacdcs";
String userPass ="sales_jacdcs";
//加载驱动
Class.forName(className);
//得到连接
//注意这里饭的错误:url userName uerPass已经是字符串的格式。下面的语句不需要加""双引号。害了我10分钟
conn = DriverManager.getConnection(url,userName,userPass);
//创建Statement
smt = conn.createStatement();
//查询
// StringBuffer sb = "select passwd from yyytestusers where username = ';
rs = smt.executeQuery("select passwd from yyytestusers where username = '"+ u +"'");
//
if(rs.next()){
//c存在用户名
//判断密码
if(rs.getString(1).equals(p)){
response.sendRedirect("wel.jsp?user="+u);
}else{
//密码不对返回到登陆
response.sendRedirect("login.jsp?errNo=1");
}
}else{
response.sendRedirect("login.jsp?errNo=2");
}
}catch(Exception e){
e.printStackTrace();
}finally{
if(null != rs){
rs.close();
}
if(null != smt){
smt.close();
}
if(null != conn){
conn.close();
}
}
/*
//简单验证用户名密码
if(u.equals("yyy") && p.equals("123")){
//跳转页面
//将数据传到下一个界面(注意这里的wel.jsp?user中间不允许有空格,否则会出错)
response.sendRedirect("wel.jsp?user="+u);
//
}else{
//不合法
response.sendRedirect("login.jsp");
}
*/
%>
</body>
</html>
wel.jsp成功登录界面
<%@ page language="java" import="java.util.*, java.sql.*" pageEncoding="gb2312"%>
<%
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 'wel.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>
登陆成功!<%= request.getParameter("user") %><br>
<a href="login.jsp">重新登陆</a>
<h1>用户列表</h1>
<%
//定义分页用到的4个变量
int pageSize = 3; //每页显示3个
int pageNow = 1; //默认第一页
int rowCount = 0;//所有记录数
int pageCount=0;// rowCount/pageSize
//获取页面传来的pageNow信息
String pp = request.getParameter("pageTo");
if(pp != null){
try{
pageNow = Integer.parseInt(pp);
}catch(Exception e){
out.println("pagenow=" + pageNow);
e.printStackTrace();
}
}
//查询所有的记录数
Connection conn= null ;
Statement smt = null;
ResultSet rs = null;
try{
//接收用户名和密码
String u = request.getParameter("username");
String p = request.getParameter("passwd");
//在数据库中验证用户
String className="oracle.jdbc.driver.OracleDriver";
// String url = "jdbc:oracle:thin:@192.168.1.3:1521:unionuat";
String url = "jdbc:oracle:thin:@192.168.1.3:1521:unionuat";
String userName = "sales_jacdcs";
String userPass ="sales_jacdcs";
//加载驱动
Class.forName(className);
//得到连接
//注意这里饭的错误:url userName uerPass已经是字符串的格式。下面的语句不需要加""双引号。害了我10分钟
conn = DriverManager.getConnection(url,userName,userPass);
//创建Statement
smt = conn.createStatement();
//查询
// StringBuffer sb = "select passwd from yyytestusers where username = ';
rs = smt.executeQuery("select count(*) from yyytestusers ");
//一定要rs.next() rs才指向要取得值的地方
if(rs.next()){
rowCount = rs.getInt(1);//1 :表示 一行一列
}
}catch(Exception e){
e.printStackTrace();
}finally{
/* if(null != rs){
rs.close();
}
if(null != smt){
smt.close();
}
if(null != conn){
conn.close();
}*/
}
//计算pageCount
if(rowCount%pageSize == 0){
pageCount = rowCount / pageSize;
}else{
pageCount = rowCount/ pageSize + 1;
}
//查询需要显示的记录
String select_by_pageNow = "select * from (select rownum rn, a.* from yyytestusers a) where rn < "+ (pageNow*pageSize+1)
+"and rn not in (select rn from (select rownum rn, a.* from yyytestusers a) where rn < "+((pageNow-1)*pageSize+1) +
") order by userid";
try{
rs = smt.executeQuery(select_by_pageNow);
}catch(Exception e){
e.printStackTrace();
}
%>
<table border = "1">
<tr><td>用户ID</td><td>名字</td><td>密码</td><td>Email</td><td>级别</td></tr>
<%
while(rs.next()){
%>
<!-- 注意:这里使用的是字符串的形式得到值 rs.getInt("userid") rs.getInt(1) 会出异常!!待答复-->
<tr><td><%=rs.getInt("userid") %></td><td><%=rs.getString("username") %></td><td><%=rs.getString("passwd") %></td><td><%=rs.getString("email") %></td><td><%=rs.getInt("grade") %></td></tr>
<%
}
%>
</table>
<%
//显示超链接
//首页
out.println("<a href=wel.jsp?pageTo="+1+">首页</a>");
//上一页
if(pageNow != 1){
out.println("<a href=wel.jsp?pageTo="+(pageNow - 1)+">上一页</a>");
}
// 判断页数的
if(pageNow == 1){
for(int i = pageNow; i <= pageNow + 5; i++){
out.println("<a href= wel.jsp?pageTo="+i+"> ["+i+"] </a>");
}
}else if(pageNow == 2){
for(int i = pageNow-1; i < pageNow + 5; i++){
out.println("<a href= wel.jsp?pageTo="+i+"> ["+i+"] </a>");
}
}else if(pageNow == pageCount){
for(int i = pageCount-4; i <= pageCount; i++){
out.println("<a href= wel.jsp?pageTo="+i+"> ["+i+"] </a>");
}
}else if(pageNow == pageCount-1){
for(int i = pageCount-3; i <= pageCount+1; i++){
out.println("<a href= wel.jsp?pageTo="+i+"> ["+i+"] </a>");
}
}else{
for(int i=pageNow - 2; i <= pageNow + 2; i++){
out.println("<a href= wel.jsp?pageTo="+i+"> ["+i+"] </a>");
}
}
//显示写一页
if(pageNow != pageCount){
out.println("<a href=wel.jsp?pageTo="+(pageNow + 1)+">下一页</a>");
}
//末页
out.println("<a href=wel.jsp?pageTo="+pageCount+">末页</a>");
%>
</body>
</html>