一、application
index.jsp
代码展示:
效果图:
每刷新一次 都会进行数量的增加
二、JavaBean封装:把jsp文件中的重复的代码写入JavaResource--scr中,在src建包 建类
dologin.jsp
<%
//设置编码方式
request.setCharacterEncoding("utf-8");
//接收表单提交过来的值:用户名 密码 根据name值取value值
String name = request.getParameter("aa");
String pwd = request.getParameter("bb");
/* //jdbc连接Oracle做判断
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME = "oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
Connection con = DBHelper.getCon();
//定义SQL语句
String sql = "select * from tb_0325 where sname=? and spwd=?";
//获得执行对象
PreparedStatement ps = con.prepareStatement(sql);
//给占位符赋值
ps.setString(1, name);
ps.setString(2, pwd);
//开始执行
ResultSet rs = ps.executeQuery();
//判断遍历
if(rs.next()){ */
//调用登录的dao方法
UserDao ud = new UserDao();
boolean f = ud.login(name, pwd);
if(f){
//说明登录成功 跳转到新闻发布系统的管理员界面
//使用Cookie判断用户是否登录
Cookie c=new Cookie("sname",name);//name,value
//获取复选框的勾选状态
String ck=request.getParameter("dd");
//System.out.print(ck);
if(ck!=null){
//设置Cookie的有效期 10s 一周内免登录
c.setMaxAge(60*60*24*7);
//写入响应
response.addCookie(c);
}
//重定向
//response.sendRedirect("news/admin.jsp");
//转发
request.getRequestDispatcher("news/admin.jsp").forward(request, response);
}
else{
//说明登录失败
out.print("<script>alert('用户名或者密码错误');location.href='login.jsp';</script>");
}
/* //关闭资源
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
DBHelper.myClo(con, ps, rs);
} */
%>
将浅粉色部分的代码写入中
DBHelper.java
package com.zking.util;
/**
* 数据库辅助类
* @author Anny
*
* @date下午2:46:26
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class DBHelper {
//两个静态常量
private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private static final String CNAME = "oracle.jdbc.driver.OracleDriver";
/**
* 加载驱动
*/
static {
try {
Class.forName(CNAME);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 创建连接
* @return 返回连接
*/
public static Connection getCon() {
Connection con = null;
try {
con = DriverManager.getConnection(URL,"scott","tiger");
} catch (Exception e) {
e.printStackTrace();
}
return con;
}
/**
* 关闭资源
* @param con 连接
* @param ps 执行对象
* @param rs 结果集
*/
public static void myClo(Connection con,PreparedStatement ps,ResultSet rs) {
try {
if(con!=null&&!con.isClosed()){
con.close();
}
if(ps!=null){
ps.close();
}
if(rs!=null){
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
UserDao.java
import com.zking.util.DBHelper;
/**
* dao方法
* @author Anny
*
* @date下午3:12:11
*/
public class UserDao {
//三兄弟
private Connection con = null;
private PreparedStatement ps = null;
private ResultSet rs = null;
/**
* 登录
* @param uname 用户名
* @param upwd 密码
* @return 登录成功与否
*
* 建议大家返回user对象
*/
public boolean login(String uname,String upwd) {
boolean f = false;
//User u = null;
try {
//jdbc连接Oracle做判断
String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
String CNAME = "oracle.jdbc.driver.OracleDriver";
//加载驱动
Class.forName(CNAME);
//创建连接
//Connection con = DriverManager.getConnection(URL,"scott","tiger");
con = DBHelper.getCon();
//定义SQL语句
String sql = "select * from tb_0325 where sname=? and spwd=?";
//获得执行对象
ps = con.prepareStatement(sql);
//给占位符赋值
ps.setString(1, uname);
ps.setString(2, upwd);
//开始执行
rs = ps.executeQuery();
//判断遍历
if(rs.next()){
f = true;//说明登录成功
// u = new user(rs.getInt(1)....);
}
} catch (Exception e) {
e.printStackTrace();
}finally {//不管是否发生异常 资源都要关
DBHelper.myClo(con, ps, rs);
}
return f;
//return u;
}
}