会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132358个问题

webdemo.zip

老师我这点击查询 直接浏览器直接报错了  麻烦老师帮我看下

Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
	java.lang.IllegalArgumentException: 在方法名称中发现无效的字符串, HTTP 方法名必须是有效的符号.
		at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:418)
		at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:260)
		at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
		at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
		at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
		at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
		at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
		at java.base/java.lang.Thread.run(Thread.java:834)
Sat Jul 24 17:38:22 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Sat Jul 24 17:38:33 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
org.apache.jasper.JasperException: /usermanager/viewUser.jsp (行.: [41], 列: [8]) According to TLD or attribute directive in tag file, attribute [items] does not accept any expressions
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:292)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:115)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1250)
	at org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:888)
	at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1544)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2441)
	at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2447)
	at org.apache.jasper.compiler.Node$Root.accept(Node.java:470)
	at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2389)
	at org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1857)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:224)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:386)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:362)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:346)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:605)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:400)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:712)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:459)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:384)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:312)
	at com.bjsxt.web.servlet.UserManagerServlet.findUser(UserManagerServlet.java:54)
	at com.bjsxt.web.servlet.UserManagerServlet.doPost(UserManagerServlet.java:31)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.bjsxt.web.filter.UserLoginFilter.doFilter(UserLoginFilter.java:29)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:834)


image.png

JAVA 全系列/第五阶段:JavaWeb开发/Web实战案例 1486楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解 1491楼
JAVA 全系列/第五阶段:JavaWeb开发/Servlet技术详解(旧) 1493楼

帮忙看一下,为什么会遍历了两次,

jsp代码:

<%--
  Ajax小案例
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <script src="js/jquery.js"></script>
    <script>

        $(function () {
            //获取页面数据
            getData();
        })
        //获取页面数据
        function getData() {
            $.getJSON("Users.do",{flag:"getData"},function (result) {
                showData(result);
            })
        }

        //遍历展示数据
        function showData(obj) {
            var str = "";
            $.each(obj,function () {
                str +=
                    "<tr align='center'>" +
                    "       <td id='"+this.userid+"'>"+this.userid+"<td/>" +
                    "       <td>"+this.username+"<td/>" +
                    "       <td>"+this.usersex+"<td/>" +
                    "       <td>"+this.userbirth+"<td/>" +
                    "       <td>" +
                    "           <a href='#' onclick='preUpda()'>选择更新<a/>" +"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +
                    "           <a href='#' onclick='delete("+this.userid+")'>删除数据<a/>" +
                    "       <td/>"
                    "<tr/>";

                $("#tbody").prepend(str);

            });
        }




    </script>
    <title>Title</title>
</head>
<body>
    <table align="center" border="1px" width="60%">
        <tr>
            <td>ID</td>
            <td><input type="text" name="userid" id="userid"></td>
            <td>用户名</td>
            <td><input type="text" name="username" id="username"></td>
        </tr>
        <tr>
            <td>性别</td>
            <td>
                <input type="radio" name="usersex" value="1" id="usersex_1">男
                <input type="radio" name="usersex" value="0" id="usersex_0">女
            </td>
            <td>生日</td>
            <td><input type="text" name="userbirth" id="userbirth"></td>
        </tr>
        <tr align="center">
            <td colspan="4">
                <input type="button" value="添加用户" id="add">
                <input type="button" value="更新用户" id="update">
            </td>
        </tr>
    </table>

    <hr/>

    <table align="center" width="60%" border="1px" id="mybody">
        <tr align="center">
            <td>ID</td><td></td>
            <td>姓名</td><td></td>
            <td>性别</td><td></td>
            <td>生日</td><td></td>
            <td>操作</td>
        </tr>
        <tbody id="tbody"></tbody>
    </table>

</body>
</html>

servlet代码

package com.bjsxt.servlet;

import com.bjsxt.commons.JsonUtils;
import com.bjsxt.pojo.User;
import com.bjsxt.pojo.Users;

import javax.servlet.ServletContext;
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 java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@WebServlet("/Users.do")
public class UsersServlet extends HttpServlet {

    //初始化数据,当作是数据库操作了
    @Override
    public void init() throws ServletException {
        Users users1 = new Users(1, "oldlu", "1", new Date());
        Users users2 = new Users(2, "Kavin", "0", new Date());
        Users users3 = new Users(3, "Tian", "0", new Date());
        List<Users> list = new ArrayList<>();
        list.add(users1);
        list.add(users2);
        list.add(users3);
        ServletContext servletContext = this.getServletContext();
        servletContext.setAttribute("list", list);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String flag = req.getParameter("flag");
        if (flag.equals("getData")){
            getDate(req, resp);
        }
    }

    private void getDate(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException{
        List<Users> list = (List<Users>) this.getServletContext().getAttribute("list");
        String s = JsonUtils.objectToJson(list);
        System.out.println(s);
        resp.setContentType("application/json");
        PrintWriter pw = resp.getWriter();
        pw.print(s);
        pw.flush();
        pw.close();

    }
}

展示结果:image.png


控制台,打印输出的json对象:

[{"userid":1,"username":"oldlu","usersex":"1","userbirth":"2020-10-09"},{"userid":2,"username":"Kavin","usersex":"0","userbirth":"2020-10-09"},{"userid":3,"username":"Tian","usersex":"0","userbirth":"2020-10-09"}]

确实是一个list没错

JAVA 全系列/第五阶段:JavaWeb开发/Ajax技术详解(旧) 1497楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637