zoukankan      html  css  js  c++  java
  • JSP 05

    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html>
    <html>
    <head>
        <%--
            1.创建登录界面,用户名,密码,验证码,登录按钮
            2.servlet生成验证码,存入session,并实现点击刷新
            3.登录按钮跳转到servlet判断界面
            4.先判断验证码是否正确,再判断用户名和密码
            5.正确登录进入登录成功界面,不正确返回登录界面并清除session验证码防止重用
            6.删除session对象,退出
         --%>
    <meta charset="utf-8">
    <title>用户登录</title>
    <style type="text/css">
        span{
            text-decoration:underline;
            color:blue;
        }
        div{
        color: red;
        }
    </style>
    </head>
    <script type="text/javascript">
        window.onload=function(){
            var i=0;
            var yzm=document.getElementById("yzm");
            yzm.onclick=function(){
                i++;
                yzm.src="/web_homework2/yzm?"+i;
                
            }
            var span=document.getElementById("span");
            span.onclick=function(){
                yzm.onclick();
                
            } 
        }
    </script>
    <body>
        <form action="/web_homework2/testServlet" method="post">
            <input type="text" id="username" name="username" placeholder="你确定不输入yxy?"><br>
            <input type="password" id="password" name="password" placeholder="你确定不输入123456?"><br>
            <input type="text" name="yzm_text" placeholder="看清图片再输入"><br>
            <img alt="这是一张验证码" src="/web_homework2/yzm" id="yzm"><span id="span">啥玩意啊!换一个</span><br>
            <input type="submit" value="登录">
        </form>
        <div><%=request.getSession().getAttribute("yzm_error")==null?"":request.getSession().getAttribute("yzm_error")%></div>
        <div><%=request.getSession().getAttribute("user_error")==null?"":request.getSession().getAttribute("user_error")%></div>
        <%request.getSession().removeAttribute("yzm_error"); 
        request.getSession().removeAttribute("user_error"); %>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>欢迎登录</title>
    </head>
    <script type="text/javascript">
        window.onload=function(){
            var zx=document.getElementById("zx");
            zx.onclick=function(){
                alert("你要走了吗?");
                document.getElementById("a").href="/web_homework2/exit";
            }
        }
    </script>
    <body>
        <%
            String name=(String)request.getSession().getAttribute("name");
        %>
        <p>欢迎登录,<%=name %>你是最酷的</p><br>
        <a id="a" href="#"><input type="submit" value="注销" id="zx"></a>
    </body>
    </html>
    package servlet;
    
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.util.Random;
    
    import javax.imageio.ImageIO;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class yzm
     */
    @WebServlet("/yzm")
    public class yzm extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public yzm() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //创建图片对象
            int width=100;
            int height=50;
            BufferedImage image = new BufferedImage(width,height,BufferedImage.TYPE_3BYTE_BGR);
            //获取画笔
            Graphics g = image.getGraphics();
            //填充背景颜色
            g.setColor(Color.PINK);
            g.fillRect(0, 0, width, height);
            //画蓝色边框
            g.setColor(Color.BLUE);
            g.drawRect(0, 0, width-1, height-1);
            //生成随机字母数字,利用循环写入,同时保存session
            String str="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
            Random r = new Random();
            g.setColor(Color.RED);//红色字
            StringBuilder sBuilder=new StringBuilder();
            for (int i = 0; i < 4; i++) {
                int index = r.nextInt(str.length());
                char ch = str.charAt(index);
                g.drawString(ch+"", width/5+i*20, height/2);//调整位置
                sBuilder.append(ch);
            }
            String yzm_session = sBuilder.toString();
            request.getSession().setAttribute("yzm_session", yzm_session);
            //画干扰线绿色
            g.setColor(Color.GREEN);
            for (int i = 0; i < 10; i++) {
                int x1 = r.nextInt(width);
                int x2 = r.nextInt(width);
                int y1 = r.nextInt(height);
                int y2 = r.nextInt(height);
                g.drawLine(x1, y1, x2, y2);
            }
            //输出图像展示到网页
            ImageIO.write(image, "jpg", response.getOutputStream());
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    package servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    /**
     * Servlet implementation class TestServlet
     */
    @WebServlet("/testServlet")
    public class TestServlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public TestServlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.setCharacterEncoding("utf-8");
            HttpSession session = request.getSession();
            String yzm = (String)session.getAttribute("yzm_session");
            session.removeAttribute("yzm_session");//防止验证码复用
            String yzm_text = request.getParameter("yzm_text");
            if(yzm_text.equalsIgnoreCase(yzm)) {
                //验证码正确,继续判断用户名和密码
                String username = request.getParameter("username");
                String password = request.getParameter("password");
                if(username.equals("yxy")&&password.equals("123456")) {
                    //验证成功,跳转到登录成功界面
                    request.getSession().setAttribute("name", username);
                    request.getRequestDispatcher("/loginSuccess.jsp").forward(request,response);
                }else {
                    //验证失败,返回登录界面,并提示错误信息
                    request.getSession().setAttribute("user_error", "用户名或密码错误!");
                    request.getRequestDispatcher("/login.jsp").forward(request, response);
                }
            }else {
                //验证码错误,返回登录界面,并提示错误信息
                request.getSession().setAttribute("yzm_error", "验证码错误!");
                request.getRequestDispatcher("/login.jsp").forward(request, response);
            }
            
            
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
    package servlet;
    
    import java.io.IOException;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    /**
     * Servlet implementation class exit
     */
    @WebServlet("/exit")
    public class exit extends HttpServlet {
        private static final long serialVersionUID = 1L;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public exit() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            request.getSession().invalidate();//终结session
            request.getRequestDispatcher("/login.jsp").forward(request, response);
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            // TODO Auto-generated method stub
            doGet(request, response);
        }
    
    }
  • 相关阅读:
    mac系统怎么给文件夹加密?mac文件夹加密教程
    android 代码优化:关闭输出日志
    mac下安装eclipse+CDT
    Android JNI MAC OS环境配置
    在mac下设置环境变量
    build_native.py文件分析(2)
    使Android 自带SDK 完美支持HTML5 之 html5webview
    WebView基本使用
    android EditText如何使光标随着输入内容移动
    mac下增加eclipse内存
  • 原文地址:https://www.cnblogs.com/yanzhen108/p/12679220.html
Copyright © 2011-2022 走看看