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


报错.png

报错2.png

在登录界面输入正确的账号,密码一致提示“用户名或密码有误”。图片二为数据库中的账号密码信息。

webdemo.zip

压缩包为源码。

麻烦老师看下。

TKS

JAVA 全系列/第六阶段:JavaWeb开发/Web实战案例 901楼
JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 904楼

package com.bjsxt.servlet;

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;

@WebServlet("/data.do")
public class Demo6_dataServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String id = req.getParameter("id");
        String name =req.getParameter("name");
        PrintWriter pw =resp.getWriter();
        pw.print(id+" "+name);
        pw.flush();
        pw.close();
    }
}

JSP文件

<%--
  Created by IntelliJ IDEA.
  User: TR
  Date: 2021/6/22
  Time: 18:01
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>北京尚学堂</title>
    <script src="jQuery/jquery.js"></script>
    <script>
        function but() {
            var id =$("#userid").value();
            var name =$("#username").value();
            $.ajax({
                type:"get",
                url:"data.do",
                data:"id="+id+"   name="+name,
                /* 第二种方式
                data:{
                    id:userid,
                    name:username
                },
                */
                success:function (result) {
                    $("#span").html(result)
                }
            })
        }
    </script>
</head>
<body>
用户ID:<input type="text" id="userid"/><br/>
用户姓名:<input type="text" id="username"/><br/>
<span id="span"></span>
<input type="button" value="OK" onclick="but()"/>
</body>
</html>

老师,在java文件中的

        String id = req.getParameter("id");
        String name =req.getParameter("name");
两个req.getParameter括号中获取的id和name代表的是什么意思,是jsp中data中的id和name嘛?


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

servletdemo.zip

老师一直报错500没有找到原因

JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 907楼

package com.bjsxt.web.servlet;

import com.bjsxt.commons.Constants;
import com.bjsxt.exception.UserNotFoundException;
import com.bjsxt.pojo.Users;
import com.bjsxt.service.UserLoginServive;
import com.bjsxt.service.impl.UserLoginServiceImpl;

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;
import java.io.IOException;

/*
    处理用户请求登录
*/
@WebServlet("/login.do") 
public class UserLoginServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        String name = req.getParameter("username"); 
        String pwd =req.getParameter("userpwd");
        try{
            UserLoginServive userLoginServive = new UserLoginServiceImpl(); 
            Users users =userLoginServive.userLogin(name,pwd); 
            /*
            建立客户端与服务端的会话状态
            */
            HttpSession session =req.getSession();
            //会话状态建立
            session.setAttribute(Constants.USER_SESSION_KEY,users);//这里的 键 调用了Constants类中的常量, 值 是上面的users
            //跳转到首页,使用重定向的方式实现跳转
            resp.sendRedirect("main.jsp");
        }catch (UserNotFoundException u){
            req.setAttribute("msg",u.getMessage());
            req.getRequestDispatcher("login.jsp").forward(req,resp); //重新跳转到登录页面
        }catch (Exception e){
            resp.sendRedirect("error.jsp"); //如发生其他异常的时候,跳转到一个错误提示页面
        }
    }
}

老师,在写servlet层的时候,上面这段代码中的

            UserLoginServive userLoginServive = new UserLoginServiceImpl(); 
            Users users =userLoginServive.userLogin(name,pwd);

这两行代码的作用是什么?

用来判断用户信息是否存在的嘛?


JAVA 全系列/第六阶段:JavaWeb开发/Web实战案例 910楼
JAVA 全系列/第六阶段:JavaWeb开发/Ajax技术详解(旧) 911楼
JAVA 全系列/第六阶段:JavaWeb开发/Servlet技术详解(旧) 913楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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