JavaWeb-4

验证码核心代码
<head>
<script src="js/jquery-3.3.1.js"></script>
<script src="js/jquery.validate.js"></script>
<script type="text/javascript">
//页面载入函数
    $(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');//所有候选组成验证码的字符,当然也可以用中文的
        //js的随机数 无限逼近0-1的小数 逼近33 
        var str="";
        for(var i=0;i<4;i++){
        var a=Math.round(Math.random()*33);//随机下标
            str+=arr[a];//自身拼接
        }
        //给span标签赋值
        $("#yzm").html(str);
    }
    
</script>
</head>
<body>
    <form>
    <div id="password">验证码
    <input type="text" style="width:50px;" name="cc" id="zz"/>&nbsp;&nbsp;
    <span style="color:red;font-size:18px;cursor: pointer;" id="yzm">XXXX</span>
    </div>
    </form>
</body>
登陆 
<head>
<script src="js/jquery-3.3.1.js"></script>
<script src="js/jquery.validate.js"></script>
<script type="text/javascript">
//页面载入函数
    $(function() {
        myf();
        //给验证码添加点击事件
        $("#yzm").click(function(){
            myf();
        })
        
        $("#myForm").validate({
            rules:{
                aa:"required",
                bb:"required",
                cc:{
                    required:true,             
                    equalTo:"#yzm"
                }
            },
            messages:{
                aa:"用户名不能为空",
                bb:"密码不能为空",
                cc:"验证码不正确"
            }    
        })
        
    })
    
    //随机验证码=刷新验证码
    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');//所有候选组成验证码的字符,当然也可以用中文的
        //js的随机数 无限逼近0-1的小数 逼近33 
        var str="";
        for(var i=0;i<4;i++){
        var a=Math.round(Math.random()*33);//随机下标
            //console.info(arr[a]);//获取下标元素
            str+=arr[a];//自身拼接
        }
        //给span标签赋值
        $("#yzm").val(str);
    }
    
</script>
</head>
<body>
    <form action="dologin.jsp" method="post" id="myForm">
        <div id="login">
             <div id="top">
                  <div id="top_left"><img src="images/login_03.gif" /></div>
                  <div id="top_center"></div>
             </div>
             
             <div id="center">
                  <div id="center_left"></div>
                  <div id="center_middle">
                       <div id="user">用 户
                         <input type="text" name="aa"  id="xx"/>
                       </div>
                       <div id="password">密   码
                         <input type="password" name="bb" id="yy"/>
                       </div>
                       <div id="password">验证码
                         <input type="text" style="width:50px;" name="cc" id="zz"/>&nbsp;&nbsp;
                         <input type="text" id="yzm" style="cursor: pointer;color:red;font-size:18px;width:50px;boder:0px;" value="XXXX">
                         <!-- <span style="color:red;font-size:18px;cursor: pointer;" id="yzm">XXXX</span> -->
                       </div>
                       <!-- <div id="btn"><a href="#">登录</a><a href="#">清空</a></div> -->
                           <div id="btn">
                            <input type="submit" value="登陆" />
                            <input type="reset" value="清空" />
                          </div>
                  </div>
    </form>    
</body>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="oracle.jdbc.driver.OracleDriver"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //设置编码方式
    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=DriverManager.getConnection(url, "scott", "tiger");
    //定义sql语句
    String sql="select * from tb_0328 where sname=? and spwd=?";
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
    //给占位符赋值
    ps.setString(1, name);
    ps.setString(2, pwd);
    //开始执行 获得结果集
    ResultSet rs=ps.executeQuery();
    //判断/遍历
    if(rs.next()){
        //说明登录成功
        //跳转到新闻发布系统的主界面
        //重定向
        //response.sendRedirect("news/admin.jsp");
        
        //转发 可以传值
        request.getRequestDispatcher("news/admin.jsp").forward(request, response);
    }else{
        //说明登录失败
        out.print("<script>alert('用户名或密码有误');location.href='login.jsp';</script>");
    }
    //关闭3个资源
    if(con!=null&&!con.isClosed()){
        con.close();
    }
    if(ps!=null){
        ps.close();
    }
    if(rs!=null){
        rs.close();
    }
%>
增加 
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    //设置编码方式
    request.setCharacterEncoding("utf-8");
    //接收表单的值 根据name取value值
    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();//系统当前时间
    /* 
        主键xid(目标是为了唯一且不为空)
        1.标识列:序列+触发器 
        2.获取主键的最大序号+1
    */
    //两个字符串
    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 nvl(max(xid),0) from xw";
    //获得执行对象
    PreparedStatement ps=con.prepareStatement(sql);
    //获得结果集
    ResultSet rs=ps.executeQuery();
    int xid=0;//扩大作用域
    //判断/遍历
    if(rs.next()){
        //赋值
        xid=rs.getInt(1)+1;//获取主键的最大序号+1
    }
    //开始执行增加操作
    sql="insert into xw(xzt,xbt,xzz,xzy,xnr,xsj,xid) values(?,?,?,?,?,?,?)";
    //重新执行sql语句
    ps=con.prepareStatement(sql);
    //给占位符赋值
    ps.setInt(1, Integer.parseInt(ntid));
    ps.setString(2, ntitle);
    ps.setString(3, nauthor);
    ps.setString(4, nsummary);
    ps.setString(5, ncontent);
    ps.setString(6, naddtime);
    ps.setInt(7, xid);
    //开始执行
    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("/javaWeb4/news/admin.jsp");
    }else{
        out.print("<script>alert('发表失败');location.href='add.jsp';</script>");
    }
%>
 相对路径和绝对路径
写法一:<img src="images/海贼王.jpg" alt="海贼王" />
写法二:<img src="c:/BookTest/images/海贼王.jpg" alt="海贼王"/>

写法一是相对路径写法二是绝对路劲

1.相对路径

同样,写法一是相对路径写法,而写法二是绝对路径写法。我们分析一下,“网页2”位于test文件夹下,而海贼王图片位于images文件夹下。因此,相对于“网页2”,海贼王图片位于“网页2”上一级目录下的images文件夹下。因此,src的写法为“../images/海贼王.jpg” alt=”海贼王”。其中“../”表示上一级目录,大家要懂得这种写法。

现在就可以对相对路径写法进行总结了。相对路径的写法首先就是要分析当前网页的位置和图像的位置之间的关系,然后用一种方式把他们之间的相对关系表达出来。

2、绝对路径
写法二是“绝对路径”写法,跟“网页1”引用海贼王图片的写法一样。绝对路径,只要你的图片没有移动到别的地方,所有网页引用该图片的路径写法都是一样的。大家稍微想一下就懂了。
————————————————
版权声明:本文为CSDN博主「小白求关」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_65149711/article/details/123854450

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值