• Jquery实现注册和上一页、下一页的局部刷新以及文件的上传


    实现注册页面的局部刷新:

    1、regist.jsp页面

    <%--
      注册实例:当用户填写了要注册的用户名后 需要及时提醒用户该用户名是否可以注册
      穿越火线:昵称不可重复
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
        <!--想要使用jquery的话 需要向页面中导入一个jquery的库文件-->
        <script src="js/jquery-1.12.4.js"></script>
        //jquery方式实现局部刷新
        <script type="text/javascript">
            function existsUser() {
                 var username=$("[name='username']").val();
                 $.ajax({
                     url:"UserServlet",
                     method:"get",
                     data:{"username":username},
                     success:function (data) { //正常响应所触发的事件
                         var flag=eval("("+data+")");
                         if(flag){
                             $("span").css("color","green");
                             $("span").text("可以注册")
                         }else{
                             $("span").css("color","red");
                             $("span").text("用户名已存在,不能注册!")
                         }
                     }
                 })
            }
        </script>
         //ajax方式实现局部刷新
        <script type="text/javascript">
            //XMLHttpRequest
            function existsUser(){
               //1:实例化核心对象
               var xhr=new XMLHttpRequest();
               //1.5 获取表单元素的value值
               var username=document.getElementsByName("username")[0].value;
               //2:设置请求参数
               xhr.open("get","UserServlet?username="+username);
               //3:发送请求
               xhr.send(null);
               //4:获取服务器的响应,(回调事件)
               xhr.onreadystatechange=function () {
                   //5:获取的就是服务器响应的数据
                   if(xhr.readyState==4&&xhr.status==200){
                       var flag=xhr.responseText;
                       var isExists=eval("("+flag+")");//类型格式化
                       var span=document.getElementsByTagName("span")[0];
                       if(isExists){
                           //用户名不存在 可以注册
                           span.style.color="green";
                           span.innerText="可以注册!";
                       }else{
                           //用户名已存在 不能注册
                           span.style.color="red";
                           span.innerText="用户名已存在 不能注册!";
                       }
                   }
               }
            }
        </script>
    </head>
    <body>
        <form>
            注册名:<input type="text" name="username" onblur="javascript:existsUser();"/><span></span>
            <input type="submit" value="提交">
        </form>
    </body>
    </html>

    2、UserServlet

     @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            UserService userService=new UserServiceImpl();
            String username=req.getParameter("username");
            boolean b = userService.existsUser(username);
            //将返回值响应给客户端
            PrintWriter writer = resp.getWriter();
            writer.print(b);
            writer.flush();
            writer.close();
        }

    实现上下翻页和页面内容的局部刷新:

    1、Page.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java"%>
    <html>
    <head>
        <title>Title</title>
        <script src="js/jquery-1.12.4.js"></script>
        <script type="text/javascript">
           $(function () { //等同于window.onload
               page(1);
           })
           function page(pageindex) {
               $.ajax({
                   url:"PageServlet",
                   method:"post",
                   data:{"pageindex":pageindex},
                   dataType:"json",
                   success:function (data) {
                       var htmls=["<tr><td>新闻标题</td><td>创建时间</td></tr>"];
                       $("table").empty();//清除table中的元素
                       $.each(data.lists,function (i,item) {
                           htmls[i+1]="<tr><td>"+item.ntitle+"</td><td>"+item.ncreateDate+"</td></tr>";
                       })
                       $("table").html(htmls);
                       var prev=$("<a href='#' onclick='page("+(data.pageindex-1)+")'>上一页</a>");
                       var next=$("<a href='#' onclick='page("+(data.pageindex+1)+")'>下一页</a>");
                       $("table").append(prev);
                       $("table").append(next);
                   },
               })
           } 
        </script>
    </head>
    <body>
        <table border="1px solid">
        </table>
    </body>
    </html>

    2、PageServlet

     @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            resp.setCharacterEncoding("utf-8");//设置响应时编码
            //对页码的判断
            int index=req.getParameter("pageindex")==null?1:Integer.parseInt(req.getParameter("pageindex"));
    
            NewsService service=new NewsServiceImpl();
    
            Page<News> newsPage = service.getNewsPage(index, 5);
            //将page对象转换为JSON字符串
            String string = JSONObject.toJSONStringWithDateFormat(newsPage,"yyyy-MM-dd HH:mm:ss");
            resp.getWriter().write(string);
            resp.getWriter().flush();
            resp.getWriter().close();
        }

    文件的上传:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <form action="uploadFile.jsp" method="post" enctype="multipart/form-data">
        上传人姓名:<input type="text" name="uname"/>
        选择文件1:<input type="file" name="upload"/>
        选择文件2:<input type="file" name="upload"/>
        <input type="submit" value="提交">
    </form>
    </body>
    </html>
    <%@ page import="org.apache.commons.fileupload.disk.DiskFileItemFactory" %>
    <%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %>
    <%@ page import="java.util.List" %>
    <%@ page import="org.apache.commons.fileupload.FileItem" %>
    <%@ page import="java.util.Arrays" %>
    <%@ page import="java.io.File" %>
    <%@ page import="org.apache.commons.fileupload.FileUploadBase" %>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>Title</title>
    </head>
    <body>
    <%
        try {
            request.setCharacterEncoding("utf-8");
            //1.获取upload目录的绝对路径
            String realPath = session.getServletContext().getRealPath("/upload");
            //1.5实例化FileItem工厂
            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(8 * 1024);
            //2.ServletFileUpload 核心对象
            ServletFileUpload fileUpload = new ServletFileUpload(factory);
            fileUpload.setFileSizeMax(20*1024);//单个文件的大小限制
            fileUpload.setSizeMax(200*1024);//总上传量的大小限制
            //3.解析发送的请求 获取FileItem集合
            List<FileItem> fileItems = fileUpload.parseRequest(request);
            /*
             * get():获取表单的非文件value值
             * getName():获取文件域中的文件姓名
             * getFieldName:获取的是表单元素的name属性
             */
            List<String> strings = Arrays.asList(".png", ".jpg",".txt");
            //允许上传的数据格式的集合
            for (FileItem item : fileItems) {
                //每一个FileItem都是一个表单项,首要的任务就是我如何区分表单中的普通表单项和文件表单项
                if (item.isFormField()) {
                    //此item是一个普通的表单字段
                    String string = new String(item.get(), "utf-8");
                    out.print(string + "上传了文件");
                } else {
                    //文件字段
                    //获取用户要上传的文件名
                    String fileName = item.getName();
                    //获取文件后缀名
                    String substring = fileName.substring(fileName.lastIndexOf("."));
                    if (strings.contains(substring)) {
                        out.print(fileName);
                        //拼接成一个完整的地址
                        File file = new File(realPath, fileName);
                        item.write(file);
                    } else {
                        out.print("您要上传的文件格式不正确,请重新选择!");
                        break;
                    }
                }
            }
        }catch (FileUploadBase.FileSizeLimitExceededException e){
            out.print("文件过大,请重新选择!");
        }
    
    %>
    </body>
    </html>
  • 相关阅读:
    自动化测试===Httprunner测试框架介绍
    java===java基础学习(6)---流程控制,for,if,switch,continue,break
    java===java基础学习(5)---文件读取,写入操作
    电子书免费下载地址整理
    java===java基础学习(4)---字符串操作
    java===字符串常用API介绍(转)
    java===java基础学习(3)---数据类型转换,运算符级别,枚举类型
    java===java基础学习(2)---运算符,三元操作符,数学函数
    java===java基础学习(1)---数据类型,运算,变量,常量
    爬虫===登陆CSDN的方法
  • 原文地址:https://www.cnblogs.com/TFE-HardView/p/11265123.html
Copyright © 2020-2023  润新知