JavaWeb验证码&登录&新闻增加

哈罗啊伙计们今天我们学习JavaWeb验证码&登录&新闻增加

在学习之前我们先看看思维导图一下

 

一.首先我们看看页面

看了看页面后我们看看代码

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>用户登录</title>
<link href="images/login.css" rel="stylesheet" type="text/css" />
<!-- 引入jQuery的类库 -->
<script type="text/javascript" src="js/jquery-3.3.1.js"></script>
<!-- 另起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');//所有候选组成验证码的字符,当然也可以用中文的
  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;
 }
</script>
</head>
<body>
 <form action="dologin.jsp" method="post" onsubmit="return yzLogin()">
     <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 id="zz" style="width: 40px;" type="text" name="cc" />&nbsp;&nbsp;
          <span id="yzm" style="color:red;font-size:20px;cursor:pointer;">XXXX</span>
        </div>
        <div id="btn">
          <!-- < a href=" ">登录</ a>
          < a href="#">清空</ a> -->
          <input type="submit" value="登录"/>
          <input type="reset" value="清空"/>
        </div>
      
      </div>
      <div id="center_right"></div>   
    </div>
    <div id="down">
         <div id="down_left">
          <div id="inf">
                        <span class="inf_text">版本信息</span>
         <span class="copyright">管理信息系统 2008 v2.0</span>
          </div>
      </div>
      <div id="down_center"></div>   
    </div>
 
  </div>
 </form>
</body>
</html>

 dologin.jsp

<%@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 users where uname=? and upwd=?";
 //获得执行对象
 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>");
 }
 
 //关闭资源
 if(con!=null&&!con.isClosed()){
  con.close();
 }
 if(ps!=null){
  ps.close();
 }
 if(rs!=null){
  rs.close();
 }
 
%>

二.新闻增加

通过name拿到值,然后将值赋值到数据库里,

前提是创建连接,加载驱动连接oracle:jdbc:oracle:thin:@localhost:1521:orcl

<%@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 import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
 //设置编码方式
 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 tb_0329";
 PreparedStatement ps=con.prepareStatement(sql);
 ResultSet rs=ps.executeQuery();
 int nid = 0;//扩大作用域
 if(rs.next()){
  nid=rs.getInt(1)+1;//最大序号+1
 }
 //实现增加=插入操作
 sql="insert into tb_0329(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("/JW04/news/admin.jsp");
 }
 else{
  //说明发表失败
  out.print("<script>alert('发表失败');location.href='add.jsp';</script>");
 }
 
 
 
  
%>

好啦,以上就是本次JavaWeb验证码&登录&新闻增加给大家带来的关于插件的一些知识笔分享! 

希望可以给有需要的人带来帮助,互相学习!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Java验证码登录的示例代码: ```java // 生成验证码 String verifyCode = VerifyCodeUtils.generateVerifyCode(4); // 将验证码存入session request.getSession().setAttribute("verifyCode", verifyCode); // 生成验证码图片 response.setContentType("image/png"); BufferedImage image = VerifyCodeUtils.getImage(verifyCode, 100, 40); ImageIO.write(image, "png", response.getOutputStream()); ``` 上述代码中,`VerifyCodeUtils`是一个自定义的工具类,用于生成验证码验证码图片。在生成验证码时,我们将验证码存入session中,以便后续验证。在生成验证码图片时,我们设置了图片的类型为PNG,并将图片输出到response的输出流中,以便前端页面显示。 接下来是一个验证码登录的示例代码: ```java // 获取用户输入的验证码 String userInputVerifyCode = request.getParameter("verifyCode");// 获取session中存储的验证码 String sessionVerifyCode = (String) request.getSession().getAttribute("verifyCode"); // 验证码校验 if (userInputVerifyCode == null || !userInputVerifyCode.equalsIgnoreCase(sessionVerifyCode)) { // 验证码错误 return "verifyCodeError"; } else { // 验证码正确,进行登录操作 // ... } ``` 上述代码中,我们首先获取用户输入的验证码和session中存储的验证码,然后进行验证码校验。如果验证码校验失败,我们返回一个错误页面;如果验证码校验成功,我们进行登录操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值