Java web04(验证码、登录、新闻添加)

本文介绍了如何在Java Web应用中实现验证码、登录验证以及新闻添加功能。通过JavaScript生成随机验证码,利用jQuery处理用户交互,提交表单至后端。后端采用JDBC连接Oracle数据库进行用户验证和新闻数据的插入操作。
摘要由CSDN通过智能技术生成

随着社会的发展,互联网的进步,信息验证的过程越来越复杂,验证码就是其中一部分

先写一个简单的登录界面

验证码

在界面代码内的script写方法

$(function(){
        myf();
        //给验证码添加点击事件
        $("#yzm").click(function(){
            myf();//刷新验证码
        });
    })
    //随机验证码=刷新验证码
    function myf(){
        //下标:0-33
        var arr = new Array(2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');//所有候选组成验证码的字符,当然也可以用中文的
        var str = "";//用来拼接
        for(var i=0;i<4;i++){
            //随机数  无限逼近0-33 四舍五入 
            var a=Math.round(Math.random()*33);//下标
            //console.info(arr[a]);//根据下标取元素
            str+=arr[a];
        }
        //给span赋值 
        $("#yzm").html(str);//innerHTML
    }
    
    //验证登录
    function yzLogin(){
        //依次获取用户名、密码、用户输入的验证码、随机产生的验证码  不能为空
        var name=$("#xx").val();
        var pwd=$("#yy").val();
        var yzm1=$("#zz").val();
        var yzm2=$("#yzm").html();
        if(name==""){
            alert("用户名不能为空");
            return false;
        }
        if(pwd==""){
            alert("密码不能为空");
            return false;
        }
        if(yzm1==""){
            alert("验证码不能为空");
            return false;
        }
        else{//当验证码不为空的情况下
            //作业1:要求验证码不区分大小写 
            if(yzm1!=yzm2){//不一致的时候 提示
                alert("验证码有误");
                myf();//刷新验证码
                $("#zz").val("");//清空文本框
                return false;
            }
        }
        return true;
    }

在form处使用提交的方法的方法

<form action="dologin.jsp" method="post" οnsubmit="return yzLogin()">

</form>

登录

设置编码方式

request.setCharacterEncoding("utf-8");

接收到表单提交过来的值(用户名&密码)根据name自取value值

String name=request.getParameter("aa");
String pwd=request.getParameter("bb");

连接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");

定义sql语句

String sql="select * from tb_0325 where sname=? and sp=?";//查询语句

获得执行对象

PreparedStatement ps=con.prepareStatement(sql);

有占位符一定要给占位符赋值

ps.setString(1,name);
ps.setString(2,pwd);

开始执行
ResultSet rs=ps.executeQuery();

判断 遍历

       if(rs.next()){
            //说明登录成功  跳转到新闻发布系统的管理员界面
            //转发
            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();
   }

新闻添加

首先先写一个新闻的界面

然后开始另建一个jsp文件

开始写

设置编码方式
 request.setCharacterEncoding("utf-8");
 接收表单提交过来的值
String ntid=request.getParameter("ntid");
String ntitle=request.getParameter("ntitle");
String nauthor=request.getParameter("nauthor");
String nsummary=request.getParameter("nsummary");
String ncontent=request.getParameter("ncontent");
String naddtime=new Date().toLocaleString();//取系统当前时间 

String URL="jdbc:oracle:thin:@localhost:1521:orcl";
    String CNAME="oracle.jdbc.driver.OracleDriver";
    Class.forName(CNAME);
    Connection con=DriverManager.getConnection(URL, "scott", "tiger");
    String sql="select nvl(max(nid),0) from news280";
    PreparedStatement ps=con.prepareStatement(sql);
    ResultSet rs=ps.executeQuery();
    int nid = 0;//扩大作用域
    if(rs.next()){
        nid=rs.getInt(1)+1;//最大序号+1
    }
    实现增加=插入操作
    sql="insert into news280(nid,tid,ntitle,nauthor,nsummary,ncontent,naddtime) values(?,?,?,?,?,?,?)";    
   执行sql语句
    ps=con.prepareStatement(sql);
    给占位符赋值
    ps.setInt(1, nid);
    ps.setInt(2, Integer.parseInt(ntid));
    ps.setString(3, ntitle);
    ps.setString(4, nauthor);
    ps.setString(5, nsummary);
    ps.setString(6, ncontent);
    ps.setString(7, naddtime);
    
   获得影响行数
    int n=ps.executeUpdate();


    关闭资源
    if(con!=null&&!con.isClosed()){
        con.close();
    }
    if(ps!=null){
        ps.close();
    }
    if(rs!=null){
        rs.close();
    }
    
做判断
if(n>0){//说明发表成功
        //新闻主界面
        response.sendRedirect("/s4/news/admin.jsp");
}
    out.print("<script>alert('发表失败');location.href='add.jsp';</script>");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值