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%>">
- </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.* , com.yyy.model.*" 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>
- </head>
- <body>
- <%
- //接收用户名和密码
- String u = request.getParameter("username");
- String p = request.getParameter("passwd");
- //调用userbean处理的方法
- UserBeanCl ubc = new UserBeanCl();
- if(ubc.checkUser(u, p)){
- response.sendRedirect("wel.jsp?user="+u);
- }else{
- response.sendRedirect("login.jsp");
- }
- %>
- </body>
- </html>
wel.jsp
- <%@ page language="java" import="java.util.*, java.sql.*, com.yyy.model.*" 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>
- </head>
- <body>
- 登陆成功!<%= request.getParameter("user") %><br>
- <a href="login.jsp">重新登陆</a>
- <h1>用户列表</h1>
- <%
- //定义分页用到的4个变量
- int pageNow = 1; //默认第一页
- int pageCount = new UserBeanCl().getPageCount();
- //获取页面传来的pageNow信息
- String pp = request.getParameter("pageTo");
- if(pp != null){
- try{
- pageNow = Integer.parseInt(pp);
- }catch(Exception e){
- out.println("pagenow=" + pageNow);
- e.printStackTrace();
- }
- }
- //查询所有的记录数
- %>
- <table border = "1">
- <tr><td>用户ID</td><td>名字</td><td>密码</td><td>Email</td><td>级别</td></tr>
- <%
- UserBeanCl ubc = new UserBeanCl();
- UserBean ub = new UserBean();
- ArrayList al = new ArrayList();
- al = ubc.getUsersByPage(pageNow);
- for(int i=0; i<al.size(); i++){
- ub =(UserBean) al.get(i);
- %>
- <!-- 注意:这里使用的是字符串的形式得到值 rs.getInt("userid") rs.getInt(1) 会出异常!!待答复-->
- <tr><td><%=ub.getUserId()%></td><td><%=ub.getUsername() %></td><td><%=ub.getPasswd() %></td><td><%=ub.getEmail() %></td><td><%=ub.getGrade() %></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>
下面是java片段
UserBean.java
- package com.yyy.model;
- //userbean
- public class UserBean {
- private int userId;
- private String username;
- private String passwd;
- private String email;
- private int grade;
- public int getUserId() {
- return userId;
- }
- public void setUserId(int userId) {
- this.userId = userId;
- }
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- public String getPasswd() {
- return passwd;
- }
- public void setPasswd(String passwd) {
- this.passwd = passwd;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public int getGrade() {
- return grade;
- }
- public void setGrade(int grade) {
- this.grade = grade;
- }
- }
UserBeanCl.java
- //也叫做bo 主要是封装对users表的各种操作
- package com.yyy.model;
- import java.sql.*;
- import java.util.ArrayList;
- public class UserBeanCl {
- private Statement smt = null;
- private ResultSet rs = null;
- private Connection conn = null;
- private int rowCount = 0;//所有记录数
- private int pageCount=0;// rowCount/pageSize
- private int pageSize = 3; //每页显示3个
- //返回总页数
- public int getPageCount(){
- try{
- //连接数据库
- conn = new ConnDB().getConn();
- smt = conn.createStatement();
- rs = smt.executeQuery(" select count(*) from yyytestusers");
- if(rs.next()){
- // rowCount = Integer.parseInt(rs.getString(1));
- rowCount = rs.getInt(1);
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- this.close();
- }
- if(rowCount%pageSize == 0){
- pageCount = rowCount / pageSize;
- }else{
- pageCount = rowCount / pageSize + 1;
- }
- return pageCount;
- }
- //对用户的信息分页
- public ArrayList getUsersByPage(int pageNow){
- ArrayList al = new ArrayList();
- try{
- //创建Statement
- conn = new ConnDB().getConn();
- smt = conn.createStatement();
- //查询
- // StringBuffer sb = "select passwd from yyytestusers where username = ';
- // rs = smt.executeQuery("select count(*) from yyytestusers ");
- 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";
- rs = smt.executeQuery(select_by_pageNow);
- //一定要rs.next() rs才指向要取得值的地方
- while(rs.next()){
- UserBean ub = new UserBean();
- ub.setUserId(rs.getInt(2));
- ub.setUsername(rs.getString(3));
- ub.setPasswd(rs.getString(4));
- ub.setEmail(rs.getString(5));
- ub.setGrade(rs.getInt(6));//这个也是可以的。但是在数据库中。他是第二个整数。所以取2
- //ub.setGrade(rs.getInt("grade"));
- al.add(ub);
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- this.close();
- }
- return al;
- }
- //验证用户是否合法
- public boolean checkUser(String u, String p){
- boolean b = false;
- //创建statement
- try{
- conn = new ConnDB().getConn();
- smt = conn.createStatement();
- 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);
- b = true;
- }
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- this.close();
- }
- return b;
- }
- //关闭资源
- public void close(){
- //关闭数据库资源
- try{
- if(rs != null)
- rs.close();
- rs = null;
- if(smt != null)
- smt.close();
- smt = null;
- if(conn != null)
- conn.close();
- conn = null;
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
连接数据库ConnDB.java
- //与数据库连接
- package com.yyy.model;
- import java.sql.*;
- public class ConnDB {
- private Connection conn = null;
- public Connection getConn(){
- try{
- //在数据库中验证用户
- 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);
- }catch(Exception e){
- e.printStackTrace();
- }
- return conn;
- }
- }
数据库表users
创建数据表语句
转载自 http://blog.csdn.net/yaoyy09/article/details/8455103